「LLM 下一個 Token 預測器」常被濃縮成一句很有殺傷力的評論:大型語言模型不過是在猜下一個字。2026 年 9 月,一篇主張「next-token predictor 是錯誤心智模型」的文章,再次在 Hacker News 引發爭論。奇妙的是,正反兩邊常常都說對了一半,卻把「怎麼訓練」「怎麼產生答案」與「答案怎麼被評分」混成同一件事。
這篇專為沒有機器學習背景的讀者寫。我們不靠神祕比喻,也不要求 GPU 或 API Key;只用 Python 內建功能,帶你跑三個小實驗,真正看懂 LLM 下一個 Token 預測器這句話在哪裡精準、在哪裡會誤導,以及預訓練、推論與 RLVR 到底各自在改什麼。
先畫清範圍:下文的「LLM」專指採用 causal/autoregressive 解碼的語言模型,不主張所有研究型語言模型都用相同方式產生內容。
先說結論:別用一個動詞描述三個階段
常見 causal LLM 心智模型=逐 Token 產生的介面 × 不同階段的學習訊號。
- 預訓練問的是:「真實語料的下一個 token 是什麼?」
- 推論問的是:「接在模型自己已產生內容後,下一個 token 選什麼?」
- RLVR 後訓練問的是:「整段候選答案有沒有通過可驗證規則?」再用結果調整模型偏好的回答路徑。
所以,說常見的 causal/autoregressive LLM 會逐 token 產生內容,是正確的機制描述;拿這句話直接推論「它不可能規劃、推理或學會長程策略」,則不是已被前提證明的結論。反過來,RLVR 能以整段結果給分,也不代表這類模型在回答時已停止逐 token 解碼。
LLM 下一個 Token 預測器:一句話為何又對又不夠?
Token 不是固定等於一個中文字或一個英文單字,而是模型處理文字的片段。想先補齊這個基礎,可以讀 LLM 運作原理白話指南。在常見的 causal language model 中,每個新 token 的機率都以已接受的前綴為條件;新 token 加入前綴後,下一步再以更新後的前綴為條件。這就是自回歸推論。底層系統可以用推測解碼等方式加速,但不改變這個機率依賴關係。
但「下一個 token」至少可能指兩件事:一是預訓練使用的學習目標,二是回答時使用的產生方式。Google Research 的研究特別把兩者分開:模型可以在推論時自回歸,訓練時卻使用 teacher forcing;論文只在 path-star 規劃任務的特定模型設定下觀察到限制,不能外推成「所有 LLM 都不會規劃」。詳見 The Pitfalls of Next-Token Prediction。
白話說:「考試是一題一題寫」不等於「平常只用一種教材學」,更不等於「這個學生能力的天花板已由答題格式決定」。

LLM 下一個 Token 預測器的三個迴圈:預訓練、推論、RLVR
① 預訓練:答案在課本裡,模型練習把它猜出來
預訓練通常把真實文本切成 token,讓模型在每個位置根據真實前綴預測下一個 token。這叫 teacher forcing:即使模型某處本來會猜錯,訓練下一個位置時仍餵入資料中的正確 token。PyTorch 的 teacher forcing 教學也用「上一個真實目標」與「模型上一個預測」來區分兩種輸入。
概念上的損失是把每一步正確 token 的負對數機率加總:L = -Σ log p(真實 token|真實前綴)。實作上,Transformer 可藉 causal mask 一次平行計算許多位置;「迴圈」是理解資料依賴的圖,不代表 GPU 必須逐字排隊訓練。想看完整學習流程,可接著讀 AI 模型怎麼學習。
② 推論:模型必須吃下自己剛才的選擇
真正回答問題時沒有標準答案在旁邊提示。模型選出的 token 會變成下一步前綴,序列機率可寫成 p(y₁…yT|prompt)=Π p(yt|prompt,y<t)。Hugging Face 的 文字產生文件也把 greedy decoding 與 sampling 分開:前者每步選高分候選,後者依調整後的分布抽樣。
白話說:這像走迷宮。每一步都會改變下一個岔路口;前面轉錯彎,後面即使每一步都很合理,也只能在錯的支線裡繼續。
③ RLVR:先交整份答案,再用可驗證結果打分
RLVR 是 reinforcement learning with verifiable rewards,常譯為「可驗證獎勵強化學習」。Ai2 的 Tülu 3 技術說明以數學答案或指令限制的驗證函式,取代另一個學習型 reward model 來給訊號。以 GRPO 為例,會對同一題取樣多個完整回答,再依群組相對 reward 計算訓練訊號;PPO 等 RLVR 配方並不相同。
實際演算法還會處理基準線、重要性權重、裁切或 KL 約束等細節;不同方法並不相同。關鍵只在於:reward 可以看完整結果,回答本身仍可由逐 token 機率構成。若想了解後訓練還有哪些旋鈕,可讀 Post-training Scaling Law 新手指南。
開始前:三個實驗都只需 Python
在 macOS/Linux 終端機執行 python3 --version;Windows PowerShell 執行 py --version,也可能是 python --version。確認為 Python 3.6 以上後,把每段程式獨立存成 experiment.py,再分別執行 python3 experiment.py、py experiment.py 或 python experiment.py。它們是機制玩具,不是假裝縮小版的真實大模型,也不模擬任何特定 RLVR 優化器。
實驗一:下一個 Token 的機率如何累積成整段答案?
問題:模型每次只選一步,整段答案的機率從哪來?把每一步的條件機率相乘就知道。
paths = {
"巴黎 → 是 → 法國首都": [0.60, 0.90, 0.85],
"里昂 → 是 → 法國首都": [0.40, 0.95, 0.95],
}
for text, token_probs in paths.items():
sequence_prob = 1.0
for p in token_probs:
sequence_prob *= p
print(f"{text}: {sequence_prob:.3f}")
你會得到 0.459 與 0.361。第二條路後兩步都更有把握,仍無法抹掉第一步已走向「里昂」的事實。這不是在說模型永遠不能自我修正;若上下文允許,它可以後續寫出「更正」。這個玩具只示範標準自回歸產生的一項數學關係:已輸出的 token 會成為後續條件,不會被同一步計算偷偷改寫。
你學到的判斷:看到前言答非所問、格式一開始就偏掉,繼續生成更多 token 不一定能救回來。Agent 可在關鍵節點檢查結構、重試或回到上一步,而不是只把最大輸出長度調高。
實驗二:同一個 Prompt,為何會走出不同路線?
問題:模型已有一組分數,temperature 到底改了什麼?下面固定同一組 logits(模型尚未正規化的分數)與亂數種子,只改溫度。
import math
import random
choices = ["先列假設", "直接作答", "先查資料"]
logits = [2.0, 1.0, 0.0]
def sample_many(temperature):
scaled = [x / temperature for x in logits]
weights = [math.exp(x) for x in scaled]
probs = [w / sum(weights) for w in weights]
random.seed(0)
routes = random.choices(choices, weights=probs, k=12)
return [round(p, 3) for p in probs], routes
for t in (0.5, 1.5):
probs, routes = sample_many(t)
print(f"T={t}: {probs}")
print(routes)
低溫會讓原本最高分的「先列假設」更集中;高溫會把機率攤平,另外兩條路更常被抽到。輸出清單可因 Python 版本的抽樣實作略有呈現差異,但機率會固定為約 [0.867, 0.117, 0.016] 與 [0.563, 0.289, 0.148]。
你學到的判斷:temperature 是分布旋鈕,不是真實度旋鈕。降低它通常讓輸出更集中,卻不會把一個高機率的錯誤知識變成正確;提高它適合探索多個候選,但候選仍要另行驗證。不同產品還可能搭配 top-p、固定種子或專屬解碼邏輯,不能只靠一個數字推斷行為。
實驗三:Verifier 如何改變整段答案的相對機率?
問題:如果訓練訊號只看最終答案,會發生什麼?我們用一個概念性重加權 新權重 = 舊機率 × exp(重加權強度 × reward),刻意保留一個「猜中答案、理由卻不完整」的候選。
import math
candidates = [
{"text": "2+2=4,並列出推導", "p": 0.50, "answer": "4"},
{"text": "2+2=5", "p": 0.30, "answer": "5"},
{"text": "答案猜 4,無推導", "p": 0.20, "answer": "4"},
]
eta = 1.5
weights = []
for item in candidates:
reward = 1 if item["answer"] == "4" else 0
weights.append(item["p"] * math.exp(eta * reward))
total = sum(weights)
for item, weight in zip(candidates, weights):
print(item["text"], "→", round(weight / total, 3))
新分布約是 0.652、0.087、0.261。正確且有推導的候選上升,但「幸運猜中」也上升。這裡把它當作三個離散候選上的概念性指數重加權;它不是 GRPO 或 PPO 的實際參數更新流程。真實語言模型訓練如何使用序列/token log-probability、advantage、裁切與 KL,依演算法而異。
OpenAI 的 reinforcement fine-tuning 指南同樣提醒:如果 grader 只看最後結果,碰巧猜中也可能拿高分。你學到的判斷:訓練直接優化的是 grader 能評分的訊號;未被評分的品質不保證隨之提升。要的是可追溯推導,就得把格式、證據或中間檢查也納入驗收,並測試代理誤差與鑽漏洞,而不是把「答案對」當成「過程一定可靠」。
把 LLM 下一個 Token 預測器心智模型用回四個真實問題
1. Hallucination:流暢不是資料庫查證
預訓練讓模型學會延續語料中的模式,卻不等於每句訓練文本都有真偽標籤。OpenAI 的 hallucination 研究把「不確定時猜測仍可能在評測得分」列為問題之一。因此,降低 temperature 只能改變抽樣集中度,不能單獨建立事實來源。需要可查證資訊時,應搭配 RAG 先查資料再回答、引用原文與「找不到就停止」的驗收規則。
2. Temperature:探索與一致性,不是笨與聰明
要發想十種標題,可以提高多樣性並保留多條候選;要輸出固定 JSON,可以降低隨機性,再加 schema 驗證。選擇應由任務決定:先產生多路,再用獨立規則篩選,通常比把某個 temperature 當成萬用正確值更可控。
3. Verifier:越客觀可判定,訊號越乾淨
程式是否通過測試、數學答案是否相符、JSON 是否符合 schema,都有相對明確的機器驗證方式;「這首詩是否感人」則很難壓成唯一正解。RLVR 不是不能碰主觀任務,而是 verifier 的代理誤差會更需要被看見。建立評測時,可用 AI Evals 七步指南把成功條件、失敗樣本與回歸測試分開。
4. Agent Guardrail:別把模型訓練當成執行權限
即使模型更會解題,Agent 仍可能在錯誤前提下呼叫工具。實務上要把模型外層的 Agent Harness也設計好:限制可用工具、在高風險操作前要求批准、驗證工具輸入、設定停止條件,並保留可追查紀錄。RLVR 改的是策略偏好;guardrail 管的是系統允許它做什麼,兩者不能互相代替。
兩派說法,各自沒有證明什麼?
- 「只是下一個 token 預測器」沒有因此證明模型內部不會形成有用表徵,也沒有單靠這句話訂出能力上限。
- 「RLVR 看整段結果」沒有因此證明回答改成一次吐出整段;常見 causal 語言模型的策略仍可逐 token 分解。
- 「答案通過 verifier」沒有因此證明理由忠實、事實完整或任務規格本身正確。
- 「同一 prompt 能採樣多條路」沒有因此證明每條路都是深思熟慮;它先示範的是分布存在多個可選序列。
好的心智模型不是選一派口號,而是先問:你現在描述的是訓練資料、產生過程、評分器,還是整個含工具的系統?
常見問題 FAQ
1. LLM 就是下一個 Token 預測器嗎?
是,但這是局部描述。它準確描述常見 causal LLM 的預訓練目標與自回歸產生介面,不能單獨概括後訓練訊號、工具使用、外部記憶與整套 Agent 系統。
2. 做過 RLVR 後,模型就不再逐 Token 產生嗎?
不是。對本文討論的 causal LLM 而言,reward 可以在完整回答後才給,訓練更新仍能作用在構成該回答的 token 機率;部署時也仍可自回歸解碼。
3. Teacher forcing 代表模型訓練時一次只看一個字嗎?
不代表。它描述每個預測位置使用真實前綴;Transformer 可用 causal mask 平行計算多個位置,但每個位置仍不能偷看右側答案。
4. Temperature 設成最低就不會 hallucinate 嗎?
不能保證。低溫讓分布更集中;若最高機率候選本來就錯,它只會更穩定地選錯。事實任務仍需要可靠資料與驗證。
5. 同一問題多取樣幾次,就等於模型在推理嗎?
不一定。多路取樣可提高「至少一個候選成功」的機率;若要提高最終選定答案的成功率,通常還需要合適的比較、驗證或搜尋流程。
6. RLVR 和 RLHF 是同一件事嗎?
不是同義詞。RLVR 強調可由程式或規則驗證的 reward;RLHF 通常從人類偏好資料學習 reward 或偏好訊號。具體訓練配方可能組合多個階段,邊界也要看實作。
7. Verifier 適合所有任務嗎?
不適合用同一把尺。有明確答案、測試或格式的任務較容易驗證;主觀、開放或涉及隱含價值的任務,需要多維度評分與人工抽查。
8. 這三個玩具實驗能代表真實 LLM 嗎?
不能代表規模與完整演算法。它們只示範三個機制與數學關係:序列機率相乘、sampling 改變路徑、結果 reward 重排偏好。這正是玩具實驗的用途。
給新手的 6 個帶走重點
- 看到「下一個 token」,先問它在講訓練目標還是推論介面。
- 序列機率是條件機率的連乘,早期選擇會改變後續上下文。
- Temperature 控制分布集中度,不直接驗證真偽。
- 對本文討論的 causal LLM,RLVR 用可驗證結果提供訓練訊號,但不取消自回歸解碼。
- 訓練直接優化 verifier 寫進規格的訊號;未評分品質、幸運猜中與鑽漏洞都要另測。
- 模型能力、評測標準與 Agent 執行權限,是三個要分開設計的層次。
如果你想把這套心智模型進一步落到工作流程、評測與 Agent 實作,可以從 AlphaLab AI 專區繼續探索,或到 系統化課程建立自己的實作路線。
接著閱讀
左右滑動查看更多推薦
結語:保留機制,丟掉口號
現在再用「LLM 下一個 Token 預測器」描述本文討論的常見 causal 模型時,你不必急著站隊。把那句話拆回三層:預訓練看資料的下一步,推論承接自己的上一步,RLVR 再看整段結果拿幾分。這樣既不神化模型,也不會拿一個正確但不完整的機制描述,誤當成能力判決書。
最好的下一步,就是親手改實驗三:替 verifier 加一條「必須含有推導」的規則,再看「幸運猜中」的候選如何掉分。當你能清楚說出誰在餵輸入、何時給回饋、到底更新哪一層,這個心智模型才真正成為你的工具。






