大型語言模型的運作方式——訓練與推論
大型語言模型的運作方式,畫在一張互動畫布上:預訓練、微調,以及逐個詞元產生每一個回應的那個迴圈。
大型語言模型就是一個放大到極致的下一個詞預測器:它由海量文字中學到統計模式,然後靠預測接下來會出現甚麼,一次一個詞元地生成回應。
大型語言模型的運作方式——訓練與推論
The interactive FlowJam canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.
How to read this visual
- 先讀「訓練」那一欄——它解釋模型的能力從何而來——然後才讀「推論」那一欄,看這份能力如何被使用。
- 回饋迴圈是關鍵的一著:「繼續生成?」的「是」那條分支指回注意力層,而「停止」那條分支則往下流向已解碼的文字。
- 推論那三列就是一條管線:輸入變成詞元,詞元變成預測,預測變成輸出。
訓練:模型從何而來
「在海量文字上進行預訓練」是根基——模型被暴露在一個極其龐大的語料庫之中,只受訓於一項任務:預測一個被遮去的詞。單憑這一個目標,它就學會了文法、事實與推理的模式。「模型學到詞與詞之間的統計模式」把這種學習的本質說得明明白白,而「微調令模型適應某一項特定任務」就是那一下引導——一個較小、經過篩選的資料集,把行為改向想要的風格或領域。
推論:把輸入變成輸出
「提示詞被切成一個個詞元」與「詞元變成數值化的嵌入向量」是輸入的那一半:文字被拆成細小的單位,再轉換成模型可以運算的向量。「注意力層衡量哪些詞要放在一起看」就是令上下文產生力量的機制——bank 一詞放在 river 旁邊與放在 money 旁邊讀出來並不一樣,因為注意力讓每一個詞元都可以考慮其他所有詞元。
生成的迴圈
「模型預測最有可能的下一個詞元」是生成這個動作的最小單位。「繼續生成?」把迴圈畫得明明白白:每一次預測都會被餵回去成為新的輸入,而這正是回應為甚麼是一次一個詞元砌出來,而不是整篇寫成的原因。「詞元被解碼回可讀的文字」與「回應交回給用戶」完成整條管線——用戶看到的輸出,就是那個迴圈解碼之後的尾巴。
Key relationships and takeaways
- LLM 是一個下一個詞元的預測器,不是一套答案檢索系統——每一個回應都是一連串單一詞元的預測串成的。
- 預訓練提供能力;微調與提示詞把它導向某一項任務。
- 模型思考時的單位是詞元,不是字元,也不是完整的詞。
- 注意力讓上下文重塑意思,而這正是同樣的字詞在不同句子裡有不同意思的原因。
- 生成是遞迴的:每一個輸出的詞元都成為新的輸入,而這正是回應可以又長、又連貫、又以同樣的自信說錯的原因。
When to use this visual
- 向非技術的聽眾解釋 LLM 實際上在做甚麼,以及它為甚麼會很有自信地說錯。
- 讓產品團隊分清訓練、微調與提示詞三者的分別,好讓他們可以推敲模型的行為。
- 以逐個詞元的機制,為一場關於詞元上限、成本與延遲的討論定下基礎。
運作方式
註明你所倚賴的訓練階段
在預訓練那個方框上,寫下你使用的模型系列,以及它是開放權重還是封閉權重;在微調那一步,寫下你是真的有做微調,還是改用提示詞。
加上系統提示詞
在提示詞被切成詞元之前插入一步,把系統指示注入進去,因為對大部分用戶來說,行為實際上就是在那裡被塑造的。
畫出安全與護欄那一層
在預測迴圈與輸出之間加上審核那一步,並以明確的封鎖或改寫作結,以反映生產環境的系統實際如何為生成設下關卡。
追蹤詞元
在分詞那一步標註你的模型實際的詞元預算,並在解碼那一步標註串流輸出——邊生成邊顯示的那一種。
常見問題
甚麼是大型語言模型?
大型語言模型(LLM)是一個神經網絡,以極大的規模受訓於預測一個序列裡的下一個詞。單憑這一個目標,它就學到足夠的文法、事實、推理與風格,可以生成流暢的文字。這個名稱描述的正是機制本身:它很大(數以十億計的參數)、以語言訓練,而且本質上是一個下一個詞元的預測器。
為甚麼 LLM 一次只生成一個詞元?
因為它唯一的操作,就是在已有的一切之上預測最有可能的下一個詞元。每完成一次預測,那個詞元就會加進輸入,然後過程重複——也就是這張圖解裡「繼續生成?」那個迴圈。這種遞迴的設計令模型可以產生任意長度的文字,同時也是輸出會偏離或者重複的原因:每一步都只看得見它自己已經生成的那些詞元。
預訓練與微調有甚麼分別?
預訓練是規模龐大的最初階段:模型由數以 TB 計的文字中學到一般的語言模式,這給了它原始的能力。微調則是之後一個較小的階段,用經過篩選的資料針對某一項任務或某一種風格,改變這個已預訓練的模型的行為。大部分 LLM 的用戶從來不做微調——他們用提示詞,在推論的時候引導同一個模型。
為甚麼 LLM 有時會很有自信地給出錯的答案?
因為模型優化的目標是產生看似合理的文字,而不是真確。它沒有內部的資料庫,也沒有正確性檢查器;它產生的是最貼合它訓練模式的那一段接續。當那個模式剛好是一句聽起來很合理的斷言,它就會很有自信地說出來。這也是這張圖解把模型描述為預測器而不是檢索器的原因——這一點誠實的告誡是機制本身的性質,不是單靠擴大規模就會修補的錯誤。
用 QueryChart(FlowJam)編輯這張圖解
把上面這張 LLM 畫布開啟為你自己的圖表——把各個階段改名為你的管線,並註明你所使用的模型。