跳到主要內容

【2026 最新】LLM 下一個 Token 預測器真的只是猜字?3 個實驗看懂預訓練、推論與 RLVR

最後更新: ·
LLM 下一個 Token 預測器 教學首圖

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

白話說:「考試是一題一題寫」不等於「平常只用一種教材學」,更不等於「這個學生能力的天花板已由答題格式決定」。

預訓練、推論與 RLVR 三種回饋迴圈示意圖
三個階段都會碰到 token 機率,但可見輸入、回饋時間與更新對象不同。

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.pypy experiment.pypython 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.4590.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 管的是系統允許它做什麼,兩者不能互相代替。

兩派說法,各自沒有證明什麼?

  1. 「只是下一個 token 預測器」沒有因此證明模型內部不會形成有用表徵,也沒有單靠這句話訂出能力上限。
  2. 「RLVR 看整段結果」沒有因此證明回答改成一次吐出整段;常見 causal 語言模型的策略仍可逐 token 分解。
  3. 「答案通過 verifier」沒有因此證明理由忠實、事實完整或任務規格本身正確。
  4. 「同一 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 個帶走重點

  1. 看到「下一個 token」,先問它在講訓練目標還是推論介面。
  2. 序列機率是條件機率的連乘,早期選擇會改變後續上下文。
  3. Temperature 控制分布集中度,不直接驗證真偽。
  4. 對本文討論的 causal LLM,RLVR 用可驗證結果提供訓練訊號,但不取消自回歸解碼。
  5. 訓練直接優化 verifier 寫進規格的訊號;未評分品質、幸運猜中與鑽漏洞都要另測。
  6. 模型能力、評測標準與 Agent 執行權限,是三個要分開設計的層次。

如果你想把這套心智模型進一步落到工作流程、評測與 Agent 實作,可以從 AlphaLab AI 專區繼續探索,或到 系統化課程建立自己的實作路線。

接著閱讀

左右滑動查看更多推薦

結語:保留機制,丟掉口號

現在再用「LLM 下一個 Token 預測器」描述本文討論的常見 causal 模型時,你不必急著站隊。把那句話拆回三層:預訓練看資料的下一步,推論承接自己的上一步,RLVR 再看整段結果拿幾分。這樣既不神化模型,也不會拿一個正確但不完整的機制描述,誤當成能力判決書。

最好的下一步,就是親手改實驗三:替 verifier 加一條「必須含有推導」的規則,再看「幸運猜中」的候選如何掉分。當你能清楚說出誰在餵輸入、何時給回饋、到底更新哪一層,這個心智模型才真正成為你的工具。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週最多三封:一封 Weekly 週報與最多兩封關鍵 Alpha Signal。

我們不會 spam,隨時可退訂。