大量文字,怎麼變成一個可以使用的 LLM?
上一章把 AI 系統分成資料、模型與服務。接著把鏡頭移到其中一段:如果還沒有現成的語言模型,怎麼從一批文字做出能生成文字的模型?做完之後,又要留下什麼,別人才用得起來?
這章先走完整路線。讀者只需知道:模型 (Model) 裡有可調整的數值,訓練 (Training) 會根據資料調整它們。內部算式留在深入章節。
先看終點:我們要做出什麼?
以常見生成式大型語言模型 (Large Language Model, LLM) 為例,目標是建立一個能根據目前文字,逐步產生後續文字的計算系統。
完成後要留下的,不只是原始文章。要有負責計算的程式、計算結構的設定,以及經過訓練的數值。 使用時再把這些配套載入,交給它這次的文字。聊天介面則是再往外一層的產品。
1. 準備文字,也決定要怎麼檢查
假設我們想做一個能接續一般文字的模型,先取得適合使用的文字材料,整理格式、品質與重複內容。這一步會影響它能接觸到什麼。
接著把資料的用途分開:一部分供訓練調整數值,另一些保留下來檢查新例子的表現。訓練中可用驗證資料 (Validation Data) 調整做法;最後另用測試資料 (Test Data) 檢查,不把測試答案拿回去反覆調整。
這一步交出的是可用的材料與檢查方式,還不是已經能生成文字的模型。
2. 人先安排它怎麼算,程式再建立起點
文字要先經過切分器 (Tokenizer),變成模型能運算的序列。人選定計算結構:例如哪些運算要接在一起、重複幾層、各部分多大。這叫模型架構 (Model Architecture)。
程式依架構建立網路,給參數 (Parameter) 起始值,稱為初始化 (Initialization)。從零建立時,這些數值尚未經這次訓練調整;光有網路程式,還沒有從那批文字取得能力。
| 材料 | 在做什麼? |
|---|---|
| 切分器 | 把文字準備成相容的運算輸入 |
| 架構與程式 | 指定並執行計算形式 |
| 參數 | 放在計算裡、之後可以調整的數值 |
不需要這裡就學會設計網路。先分清楚:程式決定如何執行計算,訓練會調整其中的數值。
3. 反覆練習預測文字
例如原文是「今天下雨,出門記得帶傘」。訓練程式可把前面的內容當輸入,把原文接下來的內容當預測目標。文字本身就能提供這種練習,不必讓人另外寫出每一句的標準答案。
模型先計算預測,程式拿預測和原文比較,再調整內部數值。換一批材料,繼續同樣的過程。這段建立基本能力的訓練叫預訓練 (Pretraining)。
文章是練習材料;經這些練習調整的數值,才是這一段留下的主要產物。 模型可能記住部分訓練內容,但每次使用並不是都去原文資料庫找一段答案。大量資料與訓練也不保證每次都答對。
〈模型怎麼從預測錯誤中學習?〉拆開的,正是這條大流程裡的一次更新;這裡先知道它會反覆發生即可。
4. 能接續文字,如何再調整成適合聊天的回應?
會接文字,不代表已經符合聊天產品的要求。可以再提供「問題或指令 → 示範回答」等資料,讓訓練程式繼續調整模型,朝想要的回應方式靠近。也可以用偏好回饋等其他方法。
這些建立基本能力之後的調整,統稱後訓練 (Post-Training)。微調 (Fine-Tuning) 則是在已有模型上繼續訓練的一種做法;本例的指令示範訓練是一個代表性路徑。不同模型不一定採同一套做法。
有沒有執行參數更新,是這裡的關鍵。 只在這次問題裡加一句「請簡短回答」,會改變本次輸入,並不等於上述訓練。
檢查不只在最後才發生:不同訓練階段都要看表現,必要時修正材料或做法,再檢查。基本文字預測模型也能生成文字;後訓練不是讓它第一次能生成的開關,更不是保證正確的開關。
5. 完成後保存什麼,使用時又載入什麼?
把學到的數值保存起來,常稱為模型權重 (Weight)。權重需要搭配計算結構、程式與相容的切分方式,才能在使用環境重建同樣的計算。
| 留下的配套 | 為什麼需要? |
|---|---|
| 權重檔案 | 保存這個版本的已訓練數值 |
| 結構設定 | 讓程式知道怎麼建立相容網路 |
| 相容切分器與設定 | 讓文字和模型接受的編號對得上 |
| 使用模型的程式 | 載入這些配套,執行這次的計算 |
實際檔案格式依實作而異。這裡先把它們想成「一個模型版本與它需要的配套」,不把權重檔當成包含所有能力與程式的單一萬用檔。
載入模型後,把這次文字交給它,逐步產生後續內容,這是推論 (Inference)。本章的使用路徑不更新參數;程式重新啟動後,可以再讀入保存好的版本,不必從頭訓練。
若要變成聊天服務,還需接上介面、整理對話、處理請求等程式。〈AI 的能力怎麼來,又怎麼變成可以使用的服務?〉把這一層放回整張圖。
先選「從零建立」,點每一步看材料與產物。再改成「使用現成模型」:哪些步驟不必由你重新做?回到從零路徑,切換是否加入後續訓練,比較多了哪段工作。這是流程示意,不執行真實訓練或生成。
直接用現成模型,省下的是誰的工作?
使用現成模型時,模型提供者已先完成建立與訓練,你取得它的可用版本,確認是否適合任務,再載入使用。畫面上的流程變短,表示那些製作工作不由你重做;不表示模型從來沒有受過訓練。
也可以透過 API 使用提供者的推論服務:載入與執行交給對方,你的程式傳送輸入並接收結果。若要更新模型,也可能在現成模型上繼續訓練;這和直接使用是不同的路徑。
| 你要做的事 | 主要工作 |
|---|---|
| 從零建立 | 自己準備材料、架構、訓練與檢查,保存可用版本 |
| 直接使用現成模型 | 取得並檢查適用性,載入或呼叫服務做推論 |
| 在現成模型上繼續訓練 | 從既有數值出發,用新的訓練資料進一步調整與檢查 |
這章以常見生成式 LLM 說明代表性流程,沒有涵蓋所有模型配方、分散式訓練或硬體配置,也沒有實際製作商用 LLM。接著讀〈模型到底是什麼?從資料學習,究竟改了什麼?〉,把大流程中的「調整數值」用小例子拆開。
參考:Hugging Face 從零訓練語言模型、Transformer 的訓練與使用、監督式微調、模型保存與載入(2026-10-04 查核)。