CH·1從零打造 LLM/ 理解大型語言模型

Build a Large Language Model (From Scratch) · Chapter 1

理解大型語言模型Understanding large language models

在寫下任何一行程式之前,先把地圖攤開:LLM 到底是什麼?為什麼「預測下一個字」這麼樸素的任務,能長出 ChatGPT 這種等級的能力?transformer、GPT、預訓練、微調這些詞又是怎麼串在一起的?這一章沒有程式碼——它負責把整本書要走的路一次看清楚。頁面中的關鍵數字(175B 參數、$4.6M、3,000 億 token⋯)皆取自書中。

00

本章定位:整本書的鳥瞰圖

這是全書唯一「純概念」的一章:不寫程式,先建立正確的世界觀。之後每一章都是把本章的某一格放大實作:

input:會寫 Python 的你
(不需要 ML 博士學位)
→ 本書:從零打造一個 GPTSTAGE 1 打地基(ch2–4)· STAGE 2 預訓練(ch5)· STAGE 3 微調(ch6–7)→ output:能分類、能對話的
自己親手寫出的 LLM

本章的 7 個重點——會隨你往下讀自動打勾(也可以點擊跳到該節):

🔰 先建立心態

先把 LLM 除魅:它不是魔法,本質是一個把「預測下一個字」練到極致的深度神經網路。本章你只需要帶走一句話:簡單的訓練目標 × 巨大的規模 = 看似神奇的能力。之後六章,都是在把這句話一步步落實成程式碼。

暖身:本章的三個天文數字

「大型」語言模型的「大」不是形容詞,是可以量化的。先預告本章會反覆出現的三個數字(1.5 節有互動換算器):

# 以 GPT-3 為例(書中數值) 參數量 175,000,000,000(175B) # 「large」的第一層意思:模型規模 預訓練 token 量 ~300,000,000,000(3,000 億) # 第二層意思:資料規模 預訓練成本估計 $4,600,000(雲端算力) # 為什麼第 5 章要「借」OpenAI 的權重
本章讀法:每一節都對應上方 sticky 管線圖的一段——留意讀到哪一節時哪幾格亮起。讀完本章,你就把「📚 資料 → ✂️ Tokenize → ▦ Embedding → 🧱 架構 → 🏋️ 預訓練 → 🎯 微調 → 💬 應用」這條全書路線先走過一遍了。
1.1

What is an LLM?(什麼是大型語言模型?)

input:一串文字(前文)→LLM:深度神經網路transformer 架構 · 數百億個可調權重→output:「下一個 token 是誰」
的機率分佈

一句話定義:LLM 是一個被設計來理解、生成並回應類人文字的深度神經網路,在極大量的文字資料上訓練——有時涵蓋公開網路的一大部分。「large」是雙關:參數規模(動輒數百億個訓練中不斷調整的權重)與資料規模都空前地大。

而它學的任務樸素得驚人:next-word prediction——給前文、猜下一個字。這個任務刻意利用了語言天生的序列性,逼模型學會文字裡的脈絡、結構與關係。任務如此簡單、模型卻如此能幹,連許多研究者都感到意外——1.6 會回來拆解這件事。

🔰「理解」的免責聲明

本書說 LLM「理解」語言,指的是它能生成連貫、切題的文字,不代表它擁有人類式的意識或理解。另外,因為 LLM 會「生成」,它也被歸類為generative AI(GenAI)的一種。

LLM 住在 AI 版圖的哪裡?

點擊圈層(或下方按鈕),看每一層是什麼。重點:LLM 不是横空出世的新物種,它是 AI ⊃ ML ⊃ DL 這條演化路線的最內圈:

Artificial Intelligence · 人工智慧 Machine Learning · 機器學習 Deep Learning · 深度學習 LLM大型語言模型 GenAI生成式 AI

「從資料學規則」是什麼意思:垃圾郵件過濾器

書中用一個經典例子區分「機器學習」與「深度學習」——同樣是做 spam 分類,特徵是誰找的?切換對照:

把結論記成三句話:① LLM=把 next-word prediction 練到極致的深度神經網路;② large=「參數 × 資料」兩個規模;③ 它屬於深度學習——特徵自己學、不靠人工設計,而它用的網路架構叫 transformer(1.4 登場),能在預測時「選擇性注意」輸入的不同部分。
1.2

Applications of LLMs(LLM 能拿來做什麼)

input:幾乎任何
「讀文字」的任務
→同一個 LLMparsing + generating text→output:翻譯 / 分類 / 摘要
/ 程式碼 / 對話⋯

舊時代的 NLP 模型是「一個任務、一個模型」:分類器不會翻譯、翻譯器不會摘要。LLM 打破了這件事——一個模型、多樣任務。點一種應用看例子(例子為示意,任務分類依書中):

共同模式:只要任務能描述成「文字進、文字出」(parsing and generating text),LLM 幾乎都排得上用場。這也是為什麼本書只教你打造「會生成文字的模型」——就足以理解 ChatGPT 全家是怎麼運作的。
1.3

Stages of building and using LLMs(打造與使用 LLM 的階段)

能用 ChatGPT,為什麼還要自己造一個?書中給的理由很實際:

  • 理解機制與極限的最好方式:從零寫一遍,你才知道它哪裡強、哪裡會壞。這套知識也是預訓練/微調現成開源模型的必修課。
  • 客製模型可以贏過通用模型:為特定領域打造的 LLM——如金融的 BloombergGPT、醫療問答模型——在自己的領域可勝過 ChatGPT 這類通才。
  • 隱私與自主:敏感資料不必交給第三方;小型客製模型還能直接跑在筆電、手機上(Apple 正在探索的方向),降低延遲與伺服器成本,更新節奏完全自己掌控。
工具說明:現今多數 LLM 用 PyTorch 深度學習框架實作,本書也是(附錄 A 有 PyTorch 速成)。

兩階段配方:pretraining → fine-tuning

打造 LLM 的通用流程只有兩大步。「pre」的意思是「先」——先在大而雜的資料上訓練出通用語言能力,再精修。點流程中任一節點看說明:

原始文字 raw text
網路 · 書 · Wikipedia(數兆詞)
→ 預訓練 pretraining
next-word · 自監督
→ 基礎模型
foundation model
→ 微調 fine-tuning
兩種口味

自監督:標籤就藏在文字裡

傳統監督式學習(回想 1.1 的垃圾郵件)要有人一筆筆標 label;但預訓練用的是 self-supervised learning(自監督)——模型自己從資料裡生出標籤。滑過下面句子的任何一個字,看標籤是怎麼「免費」出現的:

滑過上面的句子或任一列試試 →
🔰 為什麼「無標註」這麼革命性

傳統監督學習的瓶頸是標註成本——要雇人一筆筆標。而 next-word prediction 的標準答案就是句子裡的下一個字,「右移一格」就能自動生出標籤。於是整個網際網路瞬間變成現成教材,數兆詞的資料想用就用。這頁小互動是第 2 章(把「右移一格」寫成 data loader)與第 5 章(對著它算 loss)的預告片。

1.4

Introducing the transformer architecture(transformer 架構)

input:2017 論文
"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 的三個例子切換看:

名詞澄清(transformer ≠ LLM):不是所有 transformer 都是 LLM——transformer 也能做電腦視覺;也不是所有 LLM 都用 transformer——有基於 RNN、CNN 的路線(動機是計算效率,能否追上還待觀察)。本書中「LLM」一詞專指 GPT 這類 transformer-based 模型。
1.5

Utilizing large datasets(大資料到底有多大)

input:表 1.1
GPT-3 的預訓練資料配方
→按比例抽樣混合token=模型閱讀的基本單位(第 2 章拆解)→output:約 3,000 億 token
的訓練量

「大而多樣」的資料是 LLM 能力的另一半來源。書中表 1.1 列出 GPT-3(ChatGPT 初版的 base model)的預訓練資料配方。滑過長條看每個來源的細節,再切換視圖看一個有趣的落差:

合計 499B tokens | 實際訓練量 ~300B tokens
資料集哪裡來?GPT-3 的原始訓練資料並未公開,但公開替代品存在——例如 Dolma(3 兆 token 的開放語料庫,注意其中可能含受版權保護的內容)。後來的模型(如 Meta 的 LLaMA)還擴充了資料光譜:Arxiv 研究論文(92 GB)、StackExchange 程式問答(78 GB)。

規模換算器:把天文數字變成體感

3,000 億 token 是什麼概念?拖動閱讀速度滑桿感受一下(token 數約略等於「詞+標點」的數量):

# GPT-3 規模速覽(書中數值) 參數量 175B # 1,750 億個可調權重 訓練 token ~300B # ≈ 3,000,000 本 300 頁的小說(每本約 10 萬 token) 預訓練成本 ~$4.6M # 雲端算力估計 # 每個參數平均只分到 300B ÷ 175B ≈ 1.7 個 token 的訓練資料 # 對照:第 5 章教學用的資料集只有 5,145 tokens——GPT-3 訓練量的 5,800 萬分之一
你的閱讀速度 = 250 tokens/分鐘
💰 好消息:這筆帳單你不用付

許多預訓練完成的權重已開源。本書的策略:第 5 章先用小資料集實作預訓練(把機制搞懂),然後直接載入 OpenAI 公開的 GPT-2 權重——第 6、7 章的微調在一般筆電上就跑得動。$4.6M 的帳單,就這樣繞過去。

1.6

A closer look at the GPT architecture(GPT 架構)

input:前文
"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 的三輪迭代(機率為示意值):

這就是 ChatGPT 逐字吐字的原因——不是打字特效,模型真的「一次只算一個 token」。也因為每個新字都基於前面所有字(包括自己剛生成的),輸出才會前後連貫。
🔰 emergent behavior(湧現行為)

GPT 的訓練任務只有「接下一個字」,沒有人教它翻譯——但它會翻譯(還會拼字修正、分類、摘要)。這種「沒被明確訓練、卻自己出現」的能力叫emergent behavior:模型接觸大量多語資料後的自然結果。不必為每個任務養一個模型,「一個模型、多樣任務」——LLM 的價值主張正是來自這裡。順帶一提:更新的架構(如 Meta 的 Llama)仍是同一套概念加上小改動——把 GPT 學透,就拿到了看懂現代 LLM 的鑰匙。

1.7

Building a large language model(本書的三階段藍圖)

input:本章建立的概念地圖→3 個 STAGE · 9 個步驟書中圖 1.9 的路線=全書目錄→output:翻開第 2 章
開始寫程式

概念到齊了,攤開施工圖。本書把「從零打造 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 微調成分類器與助理。
✓

知識檢核

// 七題,作答後立即看解析

從零打造 LLM · 第 1 章互動教材 | 講解為原創文字,數值與圖表對應 Sebastian Raschka《Build a Large Language Model (From Scratch)》Ch.1 的內容,非原文翻譯
頁面中的計算皆為瀏覽器即時運算 · 快捷鍵 T 切換主題