一篇文章,怎麼變成模型的訓練題?
前面看的是已經能回答的模型 (Model):讀前文、計算機率 (Probability),再選出下一個 Token。現在往前追一步:訓練 (Training) 要讓模型反覆預測,再檢查它估得好不好。題目從哪裡來?又是誰提供檢查用的答案?
先不用請人替每一句出題。對「預測下一個 Token」這種練習,原文自己就能提供題目和檢查依據。
拿一句完整原文,暫時只讓模型看前面
假設訓練程式拿到一筆原文「今天下雨,帶傘」,已整理成四個 Token:
今天|下雨|,|帶傘
現在要預測第 2 個 Token。模型只看「今天」;訓練程式則知道,這筆原文接著寫的是「下雨」。
這裡有兩個不同角色:
- 模型根據可看的前文,計算下一個 Token 各有多少機率。
- 訓練程式拿原文的下一個 Token 作為目標 (Target),檢查模型給它的機率,再據此調整模型。
「下雨」是這筆原文的目標,不是「今天」唯一合理的接法,也不是模型自己剛才猜出的答案。換成原文「今天放晴,帶水」,同樣讓模型看「今天」,這一筆的目標就換成「放晴」。
往後移一格,同一句又能出一題
回到「今天下雨,帶傘」。要預測第 3 個 Token,就讓模型看「今天下雨」,用原文的「,」檢查。預測第 4 個,則讓它看「今天下雨,」,用「帶傘」檢查。
| 要預測的位置 | 模型可看的前文 | 訓練程式的目標 |
|---|---|---|
| 第 2 個 | 今天 | 下雨 |
| 第 3 個 | 今天下雨 | , |
| 第 4 個 | 今天下雨, | 帶傘 |
先猜:把位置從第 2 個改到第 4 個,前文和目標會各變成什麼? 再開練習,檢查剛才的想法。
先移動預測位置,看前文逐步增加、目標往後移;再保持第 2 個位置,只把原文換成放晴的句子。這裡只整理題目,不執行模型或訓練。
不會把待猜的答案也交給模型嗎?
訓練程式有完整原文,不代表模型在每個位置都能看完整原文。 預測第 2 個 Token 時,如果也能看見第 2 個和後面的文字,就成了照抄,無法練習根據前文預測。
表格逐題拆開,是為了看清楚這個限制。實際訓練可以把一串文字交進去,同時計算多個位置的預測,但限制每個位置能讀取哪些內容。例如用第 1 個位置的計算結果預測第 2 個 Token,這份計算只能使用第 1 個 Token,不能讀取後面的答案。這與表格的前文、目標對應相同,不必逐列單獨跑一次。
也留意:表格中的前文都來自原文。第二題不是把模型上一題可能猜錯的文字接回去;它仍使用「今天下雨」來練習。
有了題目,還沒開始學習
整理前文與目標,只是準備好訓練材料。還要讓模型預測、比較目標並更新參數 (Parameter),才是這裡說的學習。這也是原文能提供學習依據的一種自監督式學習 (Self-Supervised Learning):不必有人另外替每個位置填答案。
平常請模型續寫則不同:它要生成接下來的內容,通常沒有這筆原文的下一個 Token 可當場用來檢查。前面〈我傳一句話給 AI,到底發生了什麼?〉才會把選出的 Token 接回去,再生成下一個。
原文也可能寫錯;學習接續原文,不等於學會查證事實。 資料品質與未見資料的檢查,回看〈訓練時全答對,為什麼遇到新資料還是會錯?〉。
下一章〈模型怎麼從預測錯誤中學習?〉,會用「各位/各自」追一次實際更新:原文下一個 Token 的機率如何影響評分,評分又怎麼引導參數改變。
參考:Hugging Face:下一個 Token 的訓練與資料整理、Transformers:因果語言模型(2026-10-07 查核)。本章限於常見的下一個 Token 訓練;不同任務可以使用不同的輸入與目標。實作中的對齊可以由模型內部處理,不表示使用特定框架時都要手動移動標記。