LLM 學到文法了嗎?
這篇研究用線性 probe 讀取語言模型隱藏層,發現模型對「文法正確性」有獨立於字串機率的訊號,但在語意合理性上仍不如 likelihood。

這篇研究在看語言模型的隱藏層,發現它們能讀出比字串機率更接近文法正確性的訊號。
對很多開發者來說,語言模型給一個句子的分數高,常常就被當成「這句話比較像人話」的證據。但這篇論文要拆開兩件事:模型是不是只是在算字串機率,還是真的在內部學到了某種文法正確性訊號。
作者的答案是:有,但不是全部。從隱藏層抽出的線性 probe,確實能抓到一個和文法性相關的表示,而且這個表示不只在訓練情境有效,還能延伸到人類標註的文法判斷資料,以及其他語言。不過,這個訊號不是萬用解。當任務變成「語意是否合理」時,單看字串機率反而比較強。
這篇在解什麼痛點
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
語言模型很會產生流暢文字,但「流暢」不等於「文法正確」,「機率高」也不等於「句子合語法」。這是研究一開始就點出的問題。對人類來說,文法性和可接受度本來就不是同一件事;對模型來說,輸出分數更可能混了很多因素,包括字詞常見度、語意搭配、上下文關聯等等。

這會讓實務上常見的一個捷徑變得不可靠:把模型的 likelihood 當作文法分數。若你想拿 LLM 做文字過濾、句子評分、或是建立評測工具,就會碰到一個核心問題:模型到底有沒有真的學到文法,還是只是機率分佈剛好在某些案例上看起來像懂文法。
這篇論文想分辨的,就是這兩種可能性。它不是只看輸出分數,而是直接往模型內部看,檢查 hidden states 裡有沒有更直接的文法表示。
方法怎麼做
作者用的是一個很典型、也很務實的做法:線性 probe。簡單講,probe 就是一個輕量分類器,專門用來從模型的隱藏表示裡讀出某種資訊。這裡要讀出的資訊,就是文法正確性。
訓練資料來自自然語料,再透過 perturbation 產生合成的非文法句子。這樣就能得到一批成對的樣本:一邊是原本的文法句子,一邊是被改壞的版本。這種做法的好處很直接,不需要全部靠人工從頭標註,就能建立出可訓練 probe 的資料。
probe 的任務,是根據語言模型內部 activations,判斷這個句子是文法還是非文法。若一個簡單的線性模型就能把這個差異讀出來,通常代表該資訊已經以相當可用的形式存在於 hidden layers 裡。
接著,作者再把這個 probe 拿去測試其他情境,包括人類整理的 grammaticality judgment benchmarks,以及不同語言。這一步很重要,因為它不是只看在訓練資料上能不能分,而是看這個訊號能不能泛化。
也要先講清楚,這篇不是在宣稱模型真的「理解」文法,更不是在提出一套完整語法理論。它的主張比較窄:模型內部似乎有一個和文法性相關、而且不完全等同於字串機率的表示。
論文證明了什麼
最重要的結果,是這個 grammaticality probe 在人類標註的文法判斷基準上能泛化,而且比單純用語言模型的機率分數來判斷文法更好。換句話說,如果你的目標是分辨一句話是不是合語法,讀 hidden states 的 probe 會比直接看 likelihood 更有用。

但論文也刻意指出一個界線。當任務換成 semantic plausibility,也就是兩句都合語法,但其中一句比較合理、比較符合常識時,probe 的表現反而不如字串機率。這代表 probe 不是一個泛用的「好句子分數器」。它更像是在抓形式或句法層面的訊號,而 likelihood 仍然保留了更多和語意合理性有關的資訊。
這個對比很關鍵。因為它說明 probe 不是單純學到一個「越像人寫的越高分」的抽象分數,而是比較接近文法正確性本身。換句話說,模型內部的確存在某種和 syntax 或 form 有關的表示,只是這個表示並不能取代所有與語言品質相關的判斷。
論文也提到跨語言泛化。用英文訓練的 probe,對多種其他語言的文法基準,也比字串機率表現更好。這對多語系應用很有意思,因為它暗示這個訊號不完全被英文表面形式綁住。
另外一個值得注意的點,是 probe 分數和字串機率之間只有弱相關。這是支持作者主張的關鍵證據之一:文法性和 likelihood 在模型內部並不是同一條軸線。模型似乎有學到一部分獨立的文法訊號,只是這個訊號並不完整,也不等於模型整體的生成偏好。
不過,摘要沒有公開完整 benchmark 數字、資料集大小,或具體模型名稱,所以這些細節無法從原始摘要補出來。
對開發者有什麼影響
如果你在做 LLM 相關產品,這篇研究最直接的提醒是:不要把 likelihood 當成萬用代理指標。模型給出一個高分,可能反映的是很多東西的混合結果,不只是文法。這篇研究把這件事拆得更清楚:文法性和機率分數可以部分分離。
這對幾種工作流程特別有影響:
- 文法檢查與文字過濾:你可能會想要更接近 well-formedness 的訊號,而不是泛用流暢度。
- 評測設計:只看 likelihood 可能會把文法性和語意合理性混在一起。
- 多語應用:英文上學到的訊號,可能比想像中更能跨語言使用。
- 可解釋性分析:probe 可以幫你看模型 hidden states 內到底存了什麼資訊。
但限制也很明顯。這篇沒有證明 probe 是完美的文法偵測器,只是它在測試情境裡比 probability-based judgments 更好。它在 plausibility 任務上又輸給 likelihood,所以不能把它直接當成所有場景的替代方案。
還有一個實作上的保留:linear probe 只能告訴你某個資訊是否能從表示中被線性讀出,不能告訴你模型怎麼算出來,也不能保證不同架構、不同規模、不同訓練資料下都一樣穩。摘要裡也沒有說,這個結果對 perturbation 的設計有多敏感。
所以,這篇論文比較像是把一個常見假設戳破一點:LLM 的輸出機率不等於文法分數,但 hidden layers 裡確實藏著一個更接近文法性的訊號。對要做文字評分、句子過濾、或多語評測的人來說,這代表你可能得開始看內部表示,而不是只盯著 raw likelihood。
結論
這篇研究的核心訊息很清楚:預訓練語言模型的 hidden layers 裡,存在一個可被線性 probe 讀出的文法性訊號。這個訊號在文法判斷任務上,比直接看字串機率更有效,也能跨語言泛化;但在語意合理性判斷上,likelihood 仍然更有用。
換句話說,LLM 不是只會算機率。它們內部確實學到了一部分文法結構,只是這不代表你可以把所有語言品質問題都交給同一個分數處理。對開發者來說,這篇比較像是一個方法提醒:如果你在意的是文法,別只看輸出,去看模型裡面讀得到什麼。