Build a Large Language Model (From Scratch) · Chapter 1
理解大型語言模型Understanding large language models
在寫下任何一行程式之前,先把地圖攤開:LLM 到底是什麼?為什麼「預測下一個字」這麼樸素的任務,能長出 ChatGPT 這種等級的能力?transformer、GPT、預訓練、微調這些詞又是怎麼串在一起的?這一章沒有程式碼——它負責把整本書要走的路一次看清楚。頁面中的關鍵數字(175B 參數、$4.6M、3,000 億 token⋯)皆取自書中。
本章定位:整本書的鳥瞰圖
這是全書唯一「純概念」的一章:不寫程式,先建立正確的世界觀。之後每一章都是把本章的某一格放大實作:
(不需要 ML 博士學位)→ 本書:從零打造一個 GPTSTAGE 1 打地基(ch2–4)· STAGE 2 預訓練(ch5)· STAGE 3 微調(ch6–7)→ output:能分類、能對話的
自己親手寫出的 LLM
本章的 7 個重點——會隨你往下讀自動打勾(也可以點擊跳到該節):
先把 LLM 除魅:它不是魔法,本質是一個把「預測下一個字」練到極致的深度神經網路。本章你只需要帶走一句話:簡單的訓練目標 × 巨大的規模 = 看似神奇的能力。之後六章,都是在把這句話一步步落實成程式碼。
暖身:本章的三個天文數字
「大型」語言模型的「大」不是形容詞,是可以量化的。先預告本章會反覆出現的三個數字(1.5 節有互動換算器):
What is an LLM?(什麼是大型語言模型?)
的機率分佈
一句話定義:LLM 是一個被設計來理解、生成並回應類人文字的深度神經網路,在極大量的文字資料上訓練——有時涵蓋公開網路的一大部分。「large」是雙關:參數規模(動輒數百億個訓練中不斷調整的權重)與資料規模都空前地大。
而它學的任務樸素得驚人:next-word prediction——給前文、猜下一個字。這個任務刻意利用了語言天生的序列性,逼模型學會文字裡的脈絡、結構與關係。任務如此簡單、模型卻如此能幹,連許多研究者都感到意外——1.6 會回來拆解這件事。
本書說 LLM「理解」語言,指的是它能生成連貫、切題的文字,不代表它擁有人類式的意識或理解。另外,因為 LLM 會「生成」,它也被歸類為generative AI(GenAI)的一種。
LLM 住在 AI 版圖的哪裡?
點擊圈層(或下方按鈕),看每一層是什麼。重點:LLM 不是横空出世的新物種,它是 AI ⊃ ML ⊃ DL 這條演化路線的最內圈:
「從資料學規則」是什麼意思:垃圾郵件過濾器
書中用一個經典例子區分「機器學習」與「深度學習」——同樣是做 spam 分類,特徵是誰找的?切換對照:
Applications of LLMs(LLM 能拿來做什麼)
「讀文字」的任務→同一個 LLMparsing + generating text→output:翻譯 / 分類 / 摘要
/ 程式碼 / 對話⋯
舊時代的 NLP 模型是「一個任務、一個模型」:分類器不會翻譯、翻譯器不會摘要。LLM 打破了這件事——一個模型、多樣任務。點一種應用看例子(例子為示意,任務分類依書中):
Stages of building and using LLMs(打造與使用 LLM 的階段)
能用 ChatGPT,為什麼還要自己造一個?書中給的理由很實際:
- 理解機制與極限的最好方式:從零寫一遍,你才知道它哪裡強、哪裡會壞。這套知識也是預訓練/微調現成開源模型的必修課。
- 客製模型可以贏過通用模型:為特定領域打造的 LLM——如金融的 BloombergGPT、醫療問答模型——在自己的領域可勝過 ChatGPT 這類通才。
- 隱私與自主:敏感資料不必交給第三方;小型客製模型還能直接跑在筆電、手機上(Apple 正在探索的方向),降低延遲與伺服器成本,更新節奏完全自己掌控。
兩階段配方:pretraining → fine-tuning
打造 LLM 的通用流程只有兩大步。「pre」的意思是「先」——先在大而雜的資料上訓練出通用語言能力,再精修。點流程中任一節點看說明:
網路 · 書 · Wikipedia(數兆詞)→ 預訓練 pretraining
next-word · 自監督→ 基礎模型
foundation model→ 微調 fine-tuning
兩種口味
自監督:標籤就藏在文字裡
傳統監督式學習(回想 1.1 的垃圾郵件)要有人一筆筆標 label;但預訓練用的是 self-supervised learning(自監督)——模型自己從資料裡生出標籤。滑過下面句子的任何一個字,看標籤是怎麼「免費」出現的:
傳統監督學習的瓶頸是標註成本——要雇人一筆筆標。而 next-word prediction 的標準答案就是句子裡的下一個字,「右移一格」就能自動生出標籤。於是整個網際網路瞬間變成現成教材,數兆詞的資料想用就用。這頁小互動是第 2 章(把「右移一格」寫成 data loader)與第 5 章(對著它算 loss)的預告片。
Introducing the transformer architecture(transformer 架構)
"Attention Is All You Need"→transformer=encoder + decoder核心零件:self-attention(第 3 章手刻)→output:兩條後代路線
BERT(encoder)/ GPT(decoder)
現代 LLM 幾乎都站在 transformer 上。它出自 2017 年的論文《Attention Is All You Need》,原本是為機器翻譯設計的(英→德、英→法),由兩個子模組組成:encoder 把輸入句子編碼成一串「捕捉了上下文資訊」的向量;decoder 讀著這些向量,一次一個字地生成輸出。
靈魂零件是 self-attention:讓序列中的 token 彼此衡量重要性,模型因此能在預測時「選擇性注意」輸入的不同部分、抓住長距離的依賴關係。機制細節書中刻意先不展開——第 3 章會從零實作。切換三種形態對照:
不用重新訓練,就能換任務:zero-shot 與 few-shot
GPT 這型模型雖然只被訓練來「接話」,卻展現出驚人的彈性——不改一根權重就能做各種新任務。用書中圖 1.6 的三個例子切換看:
Utilizing large datasets(大資料到底有多大)
GPT-3 的預訓練資料配方→按比例抽樣混合token=模型閱讀的基本單位(第 2 章拆解)→output:約 3,000 億 token
的訓練量
「大而多樣」的資料是 LLM 能力的另一半來源。書中表 1.1 列出 GPT-3(ChatGPT 初版的 base model)的預訓練資料配方。滑過長條看每個來源的細節,再切換視圖看一個有趣的落差:
規模換算器:把天文數字變成體感
3,000 億 token 是什麼概念?拖動閱讀速度滑桿感受一下(token 數約略等於「詞+標點」的數量):
許多預訓練完成的權重已開源。本書的策略:第 5 章先用小資料集實作預訓練(把機制搞懂),然後直接載入 OpenAI 公開的 GPT-2 權重——第 6、7 章的微調在一般筆電上就跑得動。$4.6M 的帳單,就這樣繞過去。
A closer look at the GPT architecture(GPT 架構)
"This is an"→GPT=只留 decoder單向(左→右)· GPT-3 疊 96 層→output:下一個字 "example"
→ 接回輸入,再來一輪 ↻
GPT 的出身:OpenAI 的 Radford 等人在論文《Improving Language Understanding by Generative Pre-Training》中首次提出;GPT-3 是同一套想法的放大版(更多參數、更大資料,2020 年發表)。而 ChatGPT 初版背後的模型,就是把 GPT-3 用 InstructGPT 論文的方法在大型指令資料集上微調而來——1.3 那條「預訓練 → 微調」流程的真實案例。
相比 1.4 的原始 transformer(encoder 與 decoder 各重複 6 次),GPT 把架構簡化成只留 decoder,但疊得深得多:GPT-3 有 96 層 transformer 層、共 175B 參數。訓練任務就只有 next-word prediction——一種自監督(self-supervised)的「自我標註」:用句子裡的下一個字當標籤,標籤「隨讀隨生」。
自回歸:自己的輸出,餵給自己
decoder 一次只生成一個字,生完就把它接回輸入再算下一個——所以 GPT 這型模型稱為 autoregressive(自回歸)模型。按「下一步」走一遍書中圖 1.8 的三輪迭代(機率為示意值):
GPT 的訓練任務只有「接下一個字」,沒有人教它翻譯——但它會翻譯(還會拼字修正、分類、摘要)。這種「沒被明確訓練、卻自己出現」的能力叫emergent behavior:模型接觸大量多語資料後的自然結果。不必為每個任務養一個模型,「一個模型、多樣任務」——LLM 的價值主張正是來自這裡。順帶一提:更新的架構(如 Meta 的 Llama)仍是同一套概念加上小改動——把 GPT 學透,就拿到了看懂現代 LLM 的鑰匙。
Building a large language model(本書的三階段藍圖)
開始寫程式
概念到齊了,攤開施工圖。本書把「從零打造 GPT」拆成三個階段——點選查看每個階段的步驟與對應章節:
地圖看完了。下一章開始動手做第一件事:把文字切成模型讀得懂的 token——也就是 sticky 管線圖的第二格 ✂️。
本章小結
- LLM 是什麼:在海量文字上以 next-word prediction 訓練的深度神經網路;「large」指參數量與資料量兩種規模。座標:AI ⊃ ML ⊃ DL ⊃ LLM,且因會生成而屬於 GenAI。
- 預訓練是自監督:標籤就是文字裡的下一個字(右移一格),不需人工標註——所以數兆詞的原始文字都能當教材。
- 兩步訓練:先在無標註大語料上預訓練成 foundation model,再用小的標註資料微調——instruction fine-tuning(→ 助理)與 classification fine-tuning(→ 分類器)兩大類。
- transformer(2017,為翻譯而生)=encoder(讀懂輸入)+ decoder(逐字生成);核心是 attention——生成每個字時能選擇性回看整段輸入。
- BERT vs GPT:BERT 取 encoder 做克漏字(masked word prediction)、擅長理解;GPT 取 decoder 做接龍、擅長生成。GPT-3:96 層、175B 參數、訓練 ~300B tokens、成本估計 $4.6M。
- 自回歸與湧現:GPT 一次生成一個 token、輸出接回輸入(autoregressive);zero-shot/few-shot 與翻譯等能力是 emergent behavior。
- 三階段藍圖:ch2–4 打地基(資料、attention、架構)→ ch5 預訓練+載入開源權重 → ch6–7 微調成分類器與助理。
知識檢核
// 七題,作答後立即看解析
頁面中的計算皆為瀏覽器即時運算 · 快捷鍵 T 切換主題