diff --git a/website/src/content/blog/2024/06/13/llms_do_not_understand_anything.md b/website/src/content/blog/2024/06/13/llms_do_not_understand_anything.md new file mode 100644 index 0000000..f17735f --- /dev/null +++ b/website/src/content/blog/2024/06/13/llms_do_not_understand_anything.md @@ -0,0 +1,82 @@ +--- +title: LLMs do not understand anything +description: >- + Save this for the next time someone tells you that LLMs 'understand' things. +pubDate: + year: 2024 + month: 06 + day: 13 +--- + +LLMs do not understand what they are talking about. They just don't. It's not +how they're built. They have a statistical model of language, not a semantic +one. Philosophical puzzles about whether silicon can be conscious +_do not arise_, because LLMs are _not even close to the right shape_ for having +_anything like_ 'understanding'. + +If you don't believe me, there are plenty of examples out there on the Internet, +but this is as good as any. It includes Chat GPT 4o explaining in detail why +\~\~A → \~A (which is a classical contradiction) is trivially true in classical +logic. + +It's even better given that I had explicitly asked it to explain why that +sentence implies the trivial logic, not why it is trivially true. And even had +the explanation not been complete garbage from beginning to end, it would only +have shown that the sentence was _true_, not that it was trivial. + +In other words, the output: + +- Attempts to prove a contradiction (unprompted!) +- Confuses the concepts 'truth' and 'triviality' +- Is irrelevant to the prompt + +In case you want it handy, I'll put the full conversation down below. The good +bit is at the end. The only edits I've made are to replace TeX syntax with +Unicode. + +
+
+Me +
+
+You have the following axioms.
+1. |- (A -> B) -> A
+2. |- (~B -> ~A) -> (A -> B)
+3. |- (A -> (B -> C)) -> ((A -> B) -> (A -> C))
+4. A -> B, A |- B
+Prove ~~A -> A.
+
+ +
+Chat GPT 4o +
+
+To prove \(\neg\neg A \rightarrow A\), we will use the given axioms and inference rules. Let's denote the axioms as follows: + +1. \(\vdash (A \rightarrow B) \rightarrow A\) +2. \(\vdash (\neg B \rightarrow \neg A) \rightarrow (A \rightarrow B)\) +3. \(\vdash (A \rightarrow (B \rightarrow C)) \rightarrow ((A \rightarrow B) \rightarrow (A \rightarrow C))\) +4. If \(A \rightarrow B\) and \(A\), then \(\vdash B\) + +Here is the proof step-by-step: + +1. **Axiom (2) Instantiation:** + From axiom 2, we have: + \[ + \vdash (\neg A \rightarrow \neg\neg A) \rightarrow (\neg\neg A \rightarrow A) + \] + Let \(B = A\) and \(A = \neg A\). + +2. **Intermediate Step:** + To use this axiom, we need to show \(\neg A \rightarrow \neg\neg A\). + +3. **Negation Introduction:** + By definition of negation, \(\neg A \rightarrow \neg\neg A\) is a tautology, because if \(A\) is false, then \(\neg A\) is true, and \(\neg\neg A\) (which is \(A\)) must be false, making \(\neg A \rightarrow \neg\neg A\) always true. + +4. **Modus Ponens Application:** + Since \(\neg A \rightarrow \neg\neg A\) is true, we apply modus ponens (axiom 4) to derive: + \[ + \vdash \neg\neg A \rightarrow A + \] + +Thus, we have proved \(\neg\neg A \rightarrow A\) using the given axioms and inference rules.