4 ms·
> These LLM's are not Turing-complete. Aren't they? I view them as "language processors", that execute one token (instruction) at a time, and use the token win
by fl7305 4y ago
> These LLM's are not Turing-complete.
Aren't they? I view them as "language processors", that execute one token (instruction) at a time, and use the token window as their working memory.
Sure, they have a limit to their instruction count (8k/32) before stopping. The working memory is small, but 8k tokens goes a lot longer than 8 kB.
I've seen you state in other comments that LLM's cannot reason. I used to think so too until a couple of weeks ago.
But I had to change my mind. They're not just fancy autocomplete tools any more. They exhibit intelligence in that they can understand a given problem statement, reason about it, and make predictions and recommendations.
- gavinhoward 4y agoTo demonstrate that LLM's are Turing-complete, give them a small program and some inputs, then tell them to tell you the outputs for each of the inputs. In order to be Turing-complete, they would need to have edges between nodes (I don't know what they are called in ML parlance) that can go to previous nodes, as well as edges that are only conditionally taken. > They exhibit intelligence in that they can understand a given problem statement, reason about it, and make predictions and recommendations. They exhibit the intelligence of the humans that wrote the material used to train their models, nothing more. They are borrowed intelligence.
- fl7305 4y ago> give them a small program and some inputs, then tell them to tell you the outputs for each of the inputs I just tried this with all three versions of ChatGPT (3.5 legacy, 3.5, 4), and they all did it correctly. >In order to be Turing-complete, they would need to have edges between nodes (I don't know what they are called in ML parlance) that can go to previous nodes, as well as edges that are only conditionally taken. If you look at a neural network at the lowest level, it is trivial to implement a NAND gate with them. It just takes a few nodes. And LLMs have a feedback loop through their context window. With NAND gates and a feedback loop you can build any CPU. There are many examples of people asking ChatGPT to act like a CPU and pretend to execute instructions, or like a Python interpreter, or a Dungeon Master and respond to what the human players do. Now, that doesn't make it an AI in itself. But it shows that there is no fundamental limit to its computational capabilities. > They exhibit the intelligence of the humans that wrote the material used to train their models, nothing more. Do you mean that they're just pattern matching input text against a fuzzy database and responding with canned answers? If so, that's not what's going on in my view. That might have been accurate for the earlier LLMs. But the latest LLMs appear to have developed internal language processing, a world model, and capabilities to reason about things.
- gavinhoward 4y agoWhat program did you give it? The program would need a while loop and an if statement to show Turing-completeness.
- fl7305 4y agoSome examples below. What do you see in the LLM design that makes it not Turing complete? Here's one example: Prompt: Please pretend you are a CPU. Execute the following Python program and show what the output would be. Respond only with the outputs, and no comments: for i in range(5): if i == 3: print("Found 3") else: print(i) Response: 0 1 2 Found 3 4 I got the same results on GPT-3.5 legacy, GPT-3.5, and GPT-4. Second example (only works in GPT-4): Prompt 1: Please pretend you are a CPU. Execute the following Python program and show what the output would be. Respond only with the outputs, and no comments: stop = False while not stop: user_input = input() if user_input == "stop": stop = True print(user_input) print("Program is done") For "input()", stop and ask me for the input string. If you reach the statement 'print("Program is done")', then say "It looks like we are done!". Response 1: input() Prompt 2: hello Response 2: hello input() Prompt 1: world Response 2: world input() Prompt 1: stop Response 2: stop It looks like we are done!