一份簡單到離譜的工作
當你和 ChatGPT 這類系統對話時,會覺得自己在和某個真正理解你的東西交談。但掀開引擎蓋,裡面的發動機只在做一件固執而狹窄的事:給定到目前為止的文字,預測接下來該出現什麼。僅此而已。大型語言模型(LLM)的本質,就是一台極其精巧的「猜下一塊」機器,被訓練到猜得好得驚人。
這正是你早先學過的語言建模目標,只是規模遠遠超出了以往任何嘗試。把模型放在海量文字上訓練:反覆遮住下一塊、讓它來猜,猜對就給獎勵。如此重複數十億次,它就不再只是鸚鵡學舌——它開始捕捉語法、事實、慣用語、程式碼模式,以及論證的節奏,而這一切都只是它在一個預測遊戲裡越來越擅長的「副產品」。
詞元:它所預測的「塊」
LLM 預測的那個「塊」,既不是單字也不是字母——而是一個詞元(token)。透過分詞,文字被切成常見的小塊:完整的短詞、詞的片段、標點、空格。現代系統使用位元組對編碼,它直接從資料中學出自己的詞表,於是高頻詞保持完整,而罕見詞被拆成可複用的零件。「Unhappiness」可能被切成「un」「happ」「iness」;一個表情符號可能就是一個詞元;一個很長的德語複合詞則可能是好幾個。
為什麼要費勁選這個奇怪的折中?只用字母會讓序列長得讓人崩潰;只用完整單字又會讓詞表爆炸,並且模型一遇到沒見過的詞就束手無策。詞元正是務實的折中——一份固定的詞表(常見 5 萬到 20 萬條),透過拼接零件,幾乎能拼出任何東西,包括拼字錯誤和全新的詞。每個詞元都對應一個嵌入向量,即一個被學習出來的向量,這才是網路真正讀入的數字形式。
參數,以及「大」到底大在哪
那麼模型究竟存下了什麼?它的知識藏在它的[[parameter|參數]]裡——也就是網路內部的權重和偏置,和你在前面階梯裡調過的那種旋鈕一樣,只是數量多得多。早期的經典模型有幾千個;今天的 LLM 則有數十億到上千億個。模型名字裡的「7B」「70B」就是參數量。每一個參數都是一個數字,在訓練中被一點點撥動,好讓下一個詞元的猜測更準一點。
這些參數被組織進一種Transformer 架構——正是這種設計讓如此規模成為可能。它的關鍵招式是自注意力:讓每個詞元回頭看其他每一個詞元,並判斷在預測下一個詞元時哪些更要緊。把幾十層這樣的注意力層疊起來,再配上足夠的參數和足夠的文字,你就得到了一個基礎模型:一個通用的底座,只訓練一次,便可複用於翻譯、寫程式、問答,以及上百種沒人專門訓練過它的任務。
input: "The capital of France is"
tokens -> [The][ capital][ of][ France][ is]
model -> probability over the whole vocabulary:
" Paris" 0.71
" the" 0.06
" a" 0.04
... (tens of thousands more)
pick one, append it, feed it all back in, repeat注意模型吐出的是什麼:不是一個詞,而是詞表中每個詞元各自的一個機率,由最後一層 softmax 產生。於是「生成」就是一個迴圈——取樣出一個詞元,把它黏到輸入末尾,再把整段重新跑一遍。這種逐步、從左到右的迴圈叫作自迴歸解碼,這也正是 LLM 寫字方式的由來:一次一個詞元,每一個都以它此前說過的全部內容為條件。
從原始預測器到得力助手
剛訓練好的基礎模型是個出色的「文字續寫器」,而不是助手。你向它提一個問題,它可能接著拋出十個問題——因為在它的訓練資料裡,問題常常成串出現。要把它變成有用的東西,需要在那一巨大的第一階段(在海量文字上做的預訓練)之上,再加兩個階段。
- 預訓練:閱讀網際網路、書籍和程式碼的一大片切片,學習下一個詞元的預測。幾乎所有的知識與能力都在這裡被吸收——幾乎所有的成本與能耗也都花在這裡。
- 在指令上微調:給它看大量「請求 + 優質回應」的範例,讓它學會助手的格式——回答問題、遵循指令。
- 偏好對齊(RLHF 及其同類):讓人類對相互競爭的多個答案排序,再把模型推向人們更偏愛的那一類——更有幫助、更少有害、更不易被誘導去胡說。
第三個階段——RLHF(基於人類回饋的強化學習)——正是讓 ChatGPT 這類系統顯得配合、且「大致安全」的那層拋光。但要誠實地看清它是什麼:它是在預測器之上訓練出的一層品味與禮貌,而不是對「正確性」的保證。RLHF 教會模型人們喜歡哪種答案,卻沒教它什麼是真的。一個聽上去很貼心、卻自信滿滿地錯著的答案,完全可能一路放行。
規模能換來什麼——又換不來什麼
過去十年裡真正令人意外的發現是:當你加上更多參數、更多資料、更多算力時,模型會以一種平滑、近乎有規律可循的方式變好。這些縮放定律正是各大實驗室不斷把模型做大的原因。規模買來的是:流暢、廣博的知識,以及只憑提示裡幾個示例就能上手一項任務的能力——上下文學習,模型當場臨時適應,而不改動任何參數。
你也會聽到湧現能力——某些技能似乎只有越過特定規模才會被「點亮」。請謹慎對待這個詞。其中有些「湧現」是真實的,但很大一部分是嚴苛的「全有或全無」評分造成的假象:一個本在逐步進步的模型,僅僅因為測試只認滿分答案,看起來就像從零一躍成神。能力在生長,卻很少瞬移。並不存在某個魔法閾值,讓模型在那一刻「醒來」。
而規模換不來的東西,同樣重要。它換不來真實性:同一台機器能流暢地陳述事實,也會以同樣的流暢編造一條假引文、一部不存在的法律——也就是幻覺——因為它最佳化的是「看起來合理的續寫」,而不是「經過核實的續寫」。它換不來對任意新問題的真正推理,換不來訓練截止之後發生的事件的即時知識,也換不來任何內在目標。它更換不來通用智慧:一個更大的下一個詞元預測器,是一件更強的窄域工具,而不是一個即將「醒來」的心智。