你有沒有想過,你在寫一封信之前,腦中浮現的其實不是「第一個字」,而是「我想表達的意思」?你可能會先想到「我想跟他道歉」這個概念,然後才把這個概念,一個字一個字地翻譯成「很」「抱」「歉」「,」「上」「次」……。
但現在的語言模型(LLM),包括 GPT、Llama 這些我們熟悉的模型,訓練方式幾乎都是反過來的:它們只被教會做一件事——「猜下一個字」(Next Token Prediction, NTP)。看過前面所有字之後,猜下一個字最可能是什麼。這個方法很有效,撐起了整個生成式 AI 的浪潮,但它有個先天限制:模型永遠是「走一步算一步」,沒有被明確要求先想好「這段話整體要表達什麼概念」,再往下寫。
最近一篇技術報告《NCP-ArchPreview》,提出了一個有趣的補丁:除了讓模型繼續學「猜下一個字」,同時再教它一項新技能——「猜下一個概念」(Next Concept Prediction, NCP)。
NCP 怎麼運作
具體怎麼做?研究團隊先把模型自己內部的隱藏狀態(hidden states),用一種叫「乘積量化」(product quantization)的技術,壓縮、歸類成一份「概念詞彙表」——你可以把它想成,把無限多種「意思相近的一段話」都歸到同一個代碼裡,就像把「很抱歉」「真的很不好意思」都貼上同一張「道歉」標籤。接著,模型多了一個專門的「概念模組」(Concept Module),負責在生成過程中,不斷預測「接下來的概念會是什麼」,再把這個概念預測,回頭「餵」給逐字生成的流程,當作提示或引導。整個訓練是「猜字」跟「猜概念」兩個目標一起聯合訓練,不是先後分開做。
結果令人驚訝。研究團隊把這個架構做到 89 億參數,餵了 5.73 兆個 token 去訓練,是目前規模最大的「潛在空間語言模型」實驗。而它只用了對照組(OLMo-3-7B)51.3% 的訓練量,就達到了跟對照組一樣的訓練損失(pretraining loss)。等到訓練完整跑完,下游任務的平均表現又超越對照組 2.45 分,其中數學能力測驗 GSM8K 更是大幅領先 5.99 分——一個原本被認為「猜字」模型很難補強的能力。
意外的兩個驚喜
更有意思的是兩個附帶的驚喜。第一,那個負責概念詞彙表的量化模組,參數量其實很小,只有 1700 萬,團隊發現只要單獨微調這一小塊,就能讓模型快速適應新領域,等於是找到了一個「輕量級微調」的新接口,而不用動到整個 89 億參數。第二,把這些概念表示注入到另一套用來加速生成的「投機解碼」(speculative decoding)機制裡,平均每次生成能一次接受的字數(mean accepted length)還提升了 4.17%,幾乎是額外賺到的效能。
延伸思考
這篇研究讓我聯想到人類的「系統一、系統二」思考架構:系統一負責直覺反應(逐字接龍),系統二負責規劃全局(先想概念再落筆)。過去 LLM 幾乎全靠系統一硬撐,而 NCP 這類方法等於是替模型補上了一層輕量的系統二。如果這個方向持續驗證有效,未來我們可能會看到更多模型把「概念層」當成標準配備——不只是為了效能,也可能成為理解模型「在想什麼」、甚至操控生成方向的新把手,對可解釋性、可控生成都是值得期待的切入點。
回應
還沒有回應,成為第一個留言的人吧。