因果語言模型、自回歸語言模型、僅解碼器語言模型都是同一類模型
flyfish
因果語言模型(causal Language Models)
自回歸語言模型(autoregressive language models)
僅解碼器語言模型(decoder-only language models)
這三個詞雖然說的是同一類模型,但為啥會有三個名字?其實是因為研究者從不同角度給它起的——有的從數學邏輯,有的從生成方式,有的從模型結構。
因果語言模型
早年間(2010年以前),研究語言模型的人就發現:生成句子時,后面的詞只能由前面的詞決定(比如“我吃飯”里,“飯”只能跟著“吃”后面)。這就像“因果關系”——前面是“因”,后面是“果”,沒法反過來。但那時候沒明確叫“因果”,只是默默按這個邏輯做模型。
2017年,有篇很重要的論文(《Attention Is All You Need》)提出了“Transformer”這個模型框架。里面有個關鍵技術:給模型加了個“擋板”(專業叫“因果掩碼”),讓模型算詞的時候,只能看到前面的詞,看不到后面的。比如算“飯”的時候,只能看到“我”和“吃”,后面的詞哪怕已經寫好了,也故意擋著不讓看。這一下就把“前面決定后面”這個模糊的邏輯,變成了模型里實實在在的規則。
后來GPT系列火了,大家需要一個詞來形容這種“只能看前面”的模型。2019年,OpenAI在論文里第一次明確用了“因果語言模型”這個說法,意思就是“模型學的是‘根據前面的詞猜下一個詞’”。這名字就慢慢傳開了。
主要是研究理論的時候用。比如討論“模型是怎么算概率的”:有的模型能看前后所有詞(比如BERT),算的是“某個詞在整句話里的概率”;而因果模型只能看前面,算的是“某個詞在前面詞之后的概率”。又比如解釋“為啥模型訓練時能一批處理好多詞,生成時卻得一個一個來”——因為“因果”規則要求必須按順序,前面的沒確定,后面的就沒法算。
自回歸語言模型
為啥叫“自回歸”?因為“自己生成的詞,自己接著往下說”
這個詞的老家在統計學,幾十年前就有了。比如預測明天的氣溫,不用看濕度、風力,就用過去7天的氣溫來猜——這就叫“自回歸”:“自”是“自己的過去”,“回歸”是“用過去猜未來”。
“自” 與 “回歸” 的數學溯源
-
“自”(Auto-):自我引用,用自身歷史預測未來
希臘語前綴 “auto-”,意為 “自我”(self)。在自回歸模型中,“自” 特指用變量自身的歷史值作為預測依據。
預測明天的氣溫,不依賴外部因素(如濕度、氣壓),僅根據過去 7 天的氣溫值。 -
“回歸”(Regression):向均值靠攏的統計關系
19 世紀英國統計學家高爾頓(Francis Galton)提出 “回歸均值”(regression toward the mean),指身高異常的父母,子女身高更可能接近平均水平。
在現代統計學中,“回歸” 泛指通過已知變量預測目標變量的函數關系(如線性回歸 y=wx+b)。
后來這個思路被用到了語言模型上。2010年左右,RNN這類模型火了,它們生成句子的邏輯就是“接龍”:先用“我”猜“吃”,再用“我吃”猜“飯”,再用“我吃飯”猜“了”……每一步都用自己剛生成的詞當素材,接著往下說。這種“自己生成的內容再當輸入”的方式,就被叫做“自回歸生成”。
早期的生成模型(比如翻譯模型)基本都這么干。直到后來出現了“非自回歸模型”(比如一次性生成一整句話),大家才更明確地用“自回歸”來稱呼這種“接龍式”的生成方式。不過要注意:早期的自回歸模型可能偶爾會“偷看”后面的詞(沒加那個“擋板”),直到Transformer加了“因果掩碼”,才讓“自回歸”和“只能看前面”嚴格綁在了一起。
主要是說生成算法的時候用。比如討論“怎么讓模型生成的句子更靠譜”:可以一次保留幾個候選(beam search),或者隨機選一個(采樣)——這些方法都只適合自回歸模型,因為它們都是“一個一個詞生成”的。又比如比較模型訓練效率:自回歸模型得算每個詞的“猜對概率”,而非自回歸模型算的是“整句話對不對”,這時候就會用“自回歸”來區分。
僅解碼器語言模型
Transformer框架,它原本有兩個核心零件:
- 編碼器:能同時看一句話的前后所有詞(比如讀“我喜歡蘋果”,“蘋果”能看到“我”和“喜歡”),適合理解句子意思;
- 解碼器:只能看前面的詞(比如讀“我喜歡蘋果”,“蘋果”只能看到“我”和“喜歡”),原本是配合編碼器用的(比如翻譯時,編碼器先理解原文,解碼器再生成譯文)。
2018年,OpenAI做了個大膽嘗試:他們搞了個叫GPT-1的模型,直接把編碼器扔了,只留了解碼器。結果發現,就靠這一半零件,不僅能生成句子,還能理解意思,而且參數更少、更高效。
后來模型越來越多:有只用編碼器的(比如BERT),有編碼器解碼器都用的(比如T5),還有像GPT-1這樣只留解碼器的。為了區分這三種,大家就給GPT這類模型起了個名:“僅解碼器語言模型”。
選模型、聊工程實現的時候用。比如:
分類模型時會說:“BERT是編碼器模型,T5是編碼器-解碼器模型,GPT是僅解碼器模型”;
分析性能時會說:“僅解碼器模型參數更集中(全堆在解碼器上),處理長文本更厲害(不會被后面的詞干擾),訓練時隨便給一堆文章就行(不用成對的原文和譯文)”;
部署模型時會說:“聊天機器人用僅解碼器模型更快,因為不用先讓編碼器處理輸入,直接就能從一句話開始生成”。
這三個詞并存是因為研究者關心的點不一樣:
“因果語言模型”是從數學邏輯角度說的:強調“前面決定后面”的規則;
“自回歸語言模型”是從生成方式角度說的:強調“接龍式生成”的過程;
“僅解碼器語言模型”是從模型結構角度說的:強調“只留了解碼器”的零件。
關鍵時間線捋一捋
- 2010年左右:RNN語言模型火了,已經在用“自回歸”的方式生成,但“因果”只是默默遵守的規則,還沒有“僅解碼器”這個說法;
- 2017年:Transformer論文提出“因果掩碼”,解碼器第一次有了嚴格“只看前面”的能力,但解碼器還得配合編碼器用;
- 2018年:GPT-1第一次只用了解碼器,“僅解碼器模型”誕生,OpenAI開始在論文里提“因果語言模型”的訓練目標;
- 2019年:BERT(編碼器模型)和GPT(僅解碼器模型)對比火了,“僅解碼器”這個詞開始傳開,也就更清楚“自回歸”和“非自回歸”的區別;
- 2023年:GPT-4這類僅解碼器模型成了主流,能處理超長文本,證明了這種結構的優勢,三個詞也成了常用詞。