cv.cm

AI · AI 基礎

大型語言模型(LLM)是怎麼運作的?

閱讀約 8 分鐘

簡答

大型語言模型是一種神經網路,訓練目標是根據前面所有的 token(文字的小片段)預測下一個 token。它回答你的時候,會先把提示詞切成 token,替每一個可能的下一個 token 打分數,選出一個接在文字後面,然後重複這個動作直到停止。再經過指令與人類回饋的額外訓練,這個預測器才變成好用的助理。

一句話說明:超會猜下一個字的模型

LLM 只會重複做一件事:看目前為止的文字,估計每個可能的下一段文字出現的機率,選出其中一個接上去,再看一次。一篇 300 字的回答,就是幾百次這樣的小步驟。

聽起來太簡單,似乎不可能寫出文章、程式碼和翻譯,力量其實來自規模。模型擁有數十億個參數(訓練時調整的數值),並用極大量的文字訓練過。要在這麼多文字上把下一個字猜準,它就必須學會文法、知識、推理的方式,以及程式碼的結構。

ChatGPT、Claude、Gemini、DeepSeek、Qwen 這類聊天助理,都是圍繞 LLM 打造的產品。產品在外面加上聊天介面、隱藏的系統提示詞、安全規則,通常還有網路搜尋之類的工具,核心仍是預測下一個 token。

你的訊息會經歷什麼:逐步拆解

以提示詞 The capital of France is 為例,模型會這樣處理:

  1. 斷詞(tokenize):文字被切成 token。用某個常見的斷詞器,這句會變成五個 token:The、capital、of、France、is(多數帶著前面的空格)。
  2. 嵌入(embed):每個 token 被換成一長串數字,也就是嵌入向量,讓意思相近的詞在這個空間裡彼此靠近。
  3. 注意(attend):嵌入向量穿過幾十層 Transformer。每一層的注意力步驟,都讓每個 token 回頭看前面的 token,並取用相關的資訊。
  4. 評分(score):最後一層為詞表中的每個 token 打分數,詞表常有 10 萬個以上的項目,分數再轉成機率。
  5. 取樣(sample):依照這些機率與取樣設定,選出一個 token。
  6. 重複(repeat):選出的 token 接到文字後面,整個流程再跑一次,預測下一個 token,直到模型輸出停止 token 或達到長度上限。

下一個 token 的機率大概像下表這樣,數字僅為示意,並非來自真實模型:

候選的下一個 token示意機率說明
Paris0.92預期的答案
a0.03可能接成 a city of ...
the0.02可能接成 the city of ...
located0.01文法正確但不常見
Lyon0.001是錯的,但仍有可能被抽中

這張表帶出兩個重點。第一,模型不是在查資料庫,而是在產生最可能的接續。第二,錯誤的 token 永遠有一點機率,這也是模型有時會說出錯誤內容的原因之一。

注意力機制:模型如何掌握語意

注意力是 2017 年發表的 Transformer 架構的核心概念。對每個 token,模型會計算在建構它的語意時,應該給前面每個 token 多少權重。

看這句:The trophy did not fit in the suitcase because it was too big. 要理解 it 指的是什麼,模型必須把它連到 trophy(獎盃),而不是 suitcase(行李箱)。把 big 換成 small,it 就變成指行李箱。注意力讓模型能根據周圍的字詞建立這種連結,並在許多層之間逐層修正理解。

因為注意力要拿每個 token 和前面的 token 比較,文字越長,運算成本就上升得越快。這就是每個模型都有上下文視窗(context window)的原因:模型一次最多能處理的 token 數量。

LLM 如何訓練:三個階段

原始的下一個 token 預測器還不是好用的助理。你問它問題,它可能接著再列一串問題,因為網路上的文字本來就長那樣。現代的助理會經過幾個階段的訓練。

階段訓練資料模型學到什麼成果
預訓練(pretraining)海量的公開文字與程式碼語言、知識、規律、推理方式能接續任何文字的基礎模型
指令微調(instruction tuning)人工撰寫的範例提示詞與優質回答遵循指令的格式會回答問題而不是胡亂延伸的模型
偏好調校(例如 RLHF)由人或模型對多個回答排序哪些回答比較討人喜歡:有用、誠實、安全風格一致、懂得拒絕的助理

InstructGPT 的研究顯示,用這種方式訓練的較小模型,比只做過預訓練的大得多的模型更受使用者青睞。撰文當下,許多模型還會接受額外訓練,學會先逐步思考再回答,產品中常以思考模式或推理模式呈現。

訓練在發布前進行一次,成本極高。你和模型聊天時,它的參數並不會改變,也不會當場從對話中學習,不過供應商若政策允許,可能會用對話訓練之後的版本。

會改變答案的取樣設定

同一句提示詞可能得到不同的答案,因為模型是從機率分布中取樣。使用 API 時,你可以控制取樣的方式,實際範圍與預設值依供應商而異。

設定作用何時調整
temperature數值低時,機率最高的選項更容易被選中;數值高時,機率被攤平,變化更多擷取資料與寫程式調低,腦力激盪調高
top_p只從機率加總達到 p 的最小 token 集合中取樣通常調整它或 temperature 其中之一就好,不要兩個都改
max_tokens限制輸出長度回答在句子中間被截斷時調高
停止序列出現就結束生成的文字結構化輸出、範本
系統提示詞放在對話之前的隱藏指令一次設好角色、語氣、格式與規則

低 temperature 能讓答案更穩定,但不會讓答案更正確。如果最可能的接續本身就是錯的,低 temperature 只會讓模型每次都錯。

LLM 做不到的事

只要記得它的運作機制,許多令人意外的失誤就說得通了:

  • 它們看不到字母。模型看到的是 token,所以 strawberry 這個字可能被拆成 st、raw、berry 三塊,數字母或把單字倒過來寫因此很困難。
  • 它們自己不會記得過去的對話。應用程式裡的記憶功能,是把筆記存起來,再塞進提示詞裡。
  • 除非應用程式把搜尋結果或文件放進上下文,否則它們不知道最近發生的事。
  • 它們不會查證事實。下一個 token 預測的過程中,沒有任何一步會把輸出和現實對照,所以流暢的文字也可能是錯的。
  • 除非呼叫工具,否則它們不會執行程式碼,也無法做精確運算。純文字的長乘法很容易出錯。

好的產品會用工具補上這些缺口:計算機、程式碼執行器、網路搜尋,或是從你自己的文件中檢索。知道缺口在哪裡,就知道什麼時候該要求使用工具,或自己檢查答案。

從 LLM 原理得到的實用技巧

  • 把素材放進提示詞。想問某份文件的內容,就貼上相關段落。模型對看得到的文字,推理起來比對訓練時留下的模糊記憶好得多。
  • 把輸出要求講清楚。說明格式、長度、讀者和語言,否則模型會用最典型的選擇填補空白。
  • 困難的問題請它列出步驟。寫出中間過程,能讓模型在做出結論前有更多 token 可以運用。
  • 新任務開新對話。舊的、不相關的訊息仍留在上下文裡,可能把答案帶偏。
  • 人名、數字、引述和連結要自己查證,這些是最容易被捏造的細節。

常見問題

大型語言模型真的理解自己說的話嗎?

它們會建立豐富的內部語意表示,讓它們在許多情況下能回答、翻譯與推理。但它們沒有經驗或目標,也可能在人類覺得顯而易見的簡單任務上失敗,所以這算不算理解,至今仍有爭論。

為什麼 AI 對同一個問題會給不同的答案?

模型是從機率分布中取樣下一個 token,答案開頭的小小隨機選擇,會讓後面的措辭越走越不同。調低 temperature 可以讓答案更容易重現。

GPT 是什麼的縮寫?

GPT 是 Generative Pre-trained Transformer(生成式預訓練 Transformer)的縮寫:一種用大量文字預訓練、能生成文字的 Transformer 模型。

LLM 會連上網路嗎?

模型本身不會,它只知道截止日期前的訓練資料。有些應用程式加上網路搜尋工具,把結果貼進上下文,所以才能談到最近發生的事。

LLM 的參數是什麼?

參數是神經網路內部的一個數值,由訓練來調整。模型有數十億個參數,合起來編碼了模型學到的一切。參數越多能容納的規律越多,但執行成本也越高。

全部 AI 教學