十八份文件加兩頁索引,涵蓋從架構到維運的完整鏈路。前六份是基礎層(五個階段各一份),中間八份是深入層——掛在基礎層底下的機制說明,不是新階段:七之於部署,八、十、十一、十三之於應用,十四之於八(Agent 的落地半邊),九之於評估,十二之於訓練與對齊。文件十五是一條貫穿全部的實作路徑。最後三份是實務層——前面每一份都有一個沒說出來的假設,這三份各拆掉一個:十六假設語料是英文的,十七假設模型跑在別人的機器上,十八假設任務不是寫程式。內容以**「學完能做什麼決定」**為篩選標準——答不出這一題的段落一律不收。
十八份全部採教科書體例:每個分頁固定有「學習目標/範例/分頁小結/自我檢核」四種區塊。全書共 108 組學習目標、190 個可自行核對的計算範例、108 則分頁小結、329 題自我檢核。
檔案結構:主頁 index.html 在最外層,十八份文件與查表頁在 docs/,可以直接跑的練習在 examples/,維護用的檢查工具在 tools/。
純靜態單檔 HTML,無相依套件、無外部請求。分頁切換、五個互動計算器(顯存/投機解碼/自架損益平衡/樣本數/視覺 token 預算)、79 張手寫 SVG 圖與五段可播放的動畫全部內嵌,離線直接開也完整可用。
| 文件 | 內容 | 學完能做什麼決定 | |
|---|---|---|---|
| — | 索引 · 知識地圖 | 依賴圖 · 十八份文件 · 本書體例 · 四條路線 | 決定從哪一份開始、走哪條路線 |
| — | 查表 · 症狀與主題 | 148 條症狀查表 · 297 項主題清單 · 刻意不收的 | 遇到問題時知道往哪查 |
| 一 | 架構 | Transformer 逐層拆解 · 輸出與推論 · Mamba/SSM · 正面比較 · MoE/MTP | 半小時內定位一個新架構;推估記憶體與延遲 |
| 二 | 訓練與對齊 | 預訓練 · SFT 與 RLHF · DPO/RLVR 獨立成頁 · Scaling · 分散式訓練(DP/ZeRO/TP/PP 四種切法、讀懂 TP=8, PP=4, DP=16) |
解釋模型為什麼那樣回答;判斷該微調還是換 prompt;把一行平行配置換算成多少卡、多少錢、多久 |
| 三 | 部署與最佳化 | 顯存計算器 · 量化 · 微調決策樹 · 框架選型 · 邊緣 · 微調實作 · 測試時計算 · 壓測與容量規劃(Little's Law) | 給一張卡算出能跑多大、開幾個併發;要幾張卡才撐得住尖峰 |
| 四 | 應用與評估 | RAG · 結構化輸出與 agent · 評估方法論 · 多模態 · 安全 · 多輪與記憶 | 品質問題該往檢索還是生成修;設計會一致的題庫 |
| 五 | 資料工程 | 品質漏斗 · 去重與污染 · 合成資料 · 標註 · embedding · 合規與風險分級 · 治理文件(模型卡、稽核軌跡、EU AI Act 四級) | 分辨分數變化是模型還是資料造成;判斷你的系統落在哪一級、要留哪些文件 |
| 六 | 上線與維運 | 四類監控 · trace · 三個版本號 · 灰度 · 成本 · 事故 · 韌性 · prompt 當程式碼 · 多租戶分帳 · FinOps 與能耗 | 設計發布流程;知道品質出問題時查的順序;把帳單除成單位經濟,並回答「一年排多少碳」 |
| 七 | 推論最佳化深入 | K-quant 塊結構 · imatrix · EXL2 · W8A8/FP8/NVFP4 · MLA 與 KV 量化 · 投機解碼 · 擴散起草 · 起草器四世代(MTP/EAGLE-3/DFlash/DSpark/DFlash2,含對照動畫) | 判斷該壓權重還是壓 KV;估算投機解碼值不值得上;看懂起草器取什麼特徵、KV 什麼時候注入 |
| 八 | Agent 工程 | 代理迴圈與工具粒度 · 脈絡工程(compaction/外部化/cache 邊界)· 多代理與 token 放大 · 自架 vs API 損益平衡 | 該用 workflow 還是 agent;compaction 保留什麼、要不要拆多代理;算出上線後的月成本量級 |
| 九 | 量測與實驗設計 | 讀懂公開評測(榜單、Elo、污染)· 雜訊三來源 · 樣本數與檢定力(含計算器)· 多重比較與題庫過擬合 · SRM 與偷看資料的代價 · 判準漂移 · 人類上限與 κ | 一個分數差距值不值得追;實驗要跑幾天或根本做不到;一張榜單能不能當決策依據 |
| 十 | 多模態深入 | 視覺編碼器的天花板 · 四種接頭的 token 數對照圖 · 解析度策略與 token 預算計算器 · OCR-free vs assisted · 表格的位移錯誤 · 影片幀取樣 · 音訊串接 vs 端到端 | 一張圖/一段影片花多少 token;加解析度、開池化、還是走 OCR |
| 十一 | 檢索深入 | HNSW 三個參數各換什麼 · 索引記憶體帳 · chunk 四旋鈕 · 父子塊 · RRF 逐項計算 · rerank 延遲帳 · 長 context 三筆帳 · 語意快取 · 時效與版本 | 什麼規模才要向量資料庫;chunk 怎麼對照而不過擬合;rerank 值不值得 |
| 十二 | 後訓練深入 | 低秩假設的邊界 · PEFT 家族 · Bradley-Terry 與 KL · PPO → GRPO → RLVR 顯存階梯 · DPO 推導與長度偏誤 · 四種失效與護欄題庫 | r 設多少、何時低秩不夠;SFT/DPO/RLVR/全參數選哪條 |
| 十三 | 不確定性與棄答 | 四種信心訊號 · ECE 與溫度校準 · margin 抓歧義 · 棄答門檻由代價比反推 · 降級/反問/轉人工與佇列算式 · cascade 經濟學 | 門檻切在哪、棄答之後交給誰、佇列要幾個人;判斷 cascade 值不值得 |
| 十四 | Agent 落地 | 文件八的下半:軌跡評估與 pass^k · 權限與致命三角 · MCP · harness 六職責、工具輸出預算、續跑 · 批准疲勞、四種失效、重播測試 | harness 的批准模式與中斷條件;agent 出錯時查哪一段軌跡 |
| 十五 | 實作路徑 | 六個里程碑:能跑 → 能量 → 能改 → 能上線 → 能養 → 能換。每個指定產出物、驗收標準、該讀哪一節、常見卡點 | 第一次做這類系統,從這裡開始——它回答「我現在該打開終端機做什麼」 |
| 十六 | 中文與多語系統 | token 帳單(中文一個字幾個 token,含切分動畫)· 中文檢索的斷詞與同義 · 中文評測與題庫 · 繁簡、全半形與輸出格式 | 中文場景的成本與 context 上限怎麼重算;中文題庫和英文題庫差在哪 |
| 十七 | 端側與本地部署 | 四個成立的理由(省錢不在其中:十年才打平)· GGUF/ONNX · 量化等級與 KV cache 的真實佔用 · tok/s ≈ 頻寬 ÷ 模型大小 · prefill 的交叉點 · 整合式記憶體 · 端側沒有回滾 · 裝置分級 | 判斷該不該放到端上;從頻寬回推模型尺寸上限;設計分級與雲端後備的覆蓋率 |
| 十八 | 程式碼任務與工程 agent | 五種任務用驗證成本排序 · 補全接受率為什麼誤導 · 讀懂 SWE-bench 的四個必問 · 污染的下界 · repo 4.2M token vs 需要的 0.34% · 符號索引 · 13.5% 的通過是靠改測試 · 審查負荷 3.2 倍 | 把「導入 AI 寫程式」拆成五種分別評估;建自己的三十題;訂迴圈放棄條件與分級審查 |
遇到具體問題——直接開 查表頁。148 條常見症狀,每條給「先查什麼(依序)」和該去哪一份。那一欄裡幾乎沒有一項是「換更好的模型」,這是刻意的。
第一次做——直接走 文件十五 · 實作路徑,邊做邊查,比先讀完再做快得多。
想先動手——examples/ 是一份跑得動的縮小版:20 條的假人資規章、M1 到 M6 各一支腳本,只用 Python 標準函式庫,不需要 API key、GPU 或網路。五分鐘走完全程,附 24 道練習。
要系統性學——不必按順序讀完十八份,看目標挑一條走(知識地圖第 03 節有完整版):
| 目標 | 路線 | 時間 |
|---|---|---|
| 第一次做,想直接動手 | 十五(照著走) → 卡住時跳對應文件 | 6–10 週 |
| 能做技術決策 | 一 → 二 → 三 → 四 → 九(前三分頁) | 7–9 週 |
| 要部署與最佳化(邊緣/自架) | 一 → 三 → 七 → 四 → 六 | 7–9 週 |
| 要放到使用者的裝置上 | 一 → 三 → 十七 → 七 → 六 | 6–8 週 |
| 要做程式碼/工程 agent | 一 → 四 → 八 → 十四 → 十八 → 九 | 9–12 週 |
| 要接成產品(RAG/agent) | 一 → 四 → 八 → 十四 → 五 → 六 → 二 | 10–13 週 |
檢索卡住補文件十一;要處理圖片、掃描件或影片補文件十;要自己做後訓練補文件十二;系統要吃中文或多語,成本與檢索都要重算,補文件十六;模型要跑在使用者的裝置上,記憶體、速度與更新三筆帳全部重算,補文件十七;任務是寫程式,那是唯一自帶客觀驗證訊號的類別,補文件十八。
系統會胡說、要決定什麼時候該說「不知道」、或要把不確定的題目交給人處理時,補文件十三——它同時接在四(產品)、六(監控)與九(量測)底下。
評估遇到瓶頸(分數跳動、實驗跑不出顯著、題庫調到高分卻換一批就掉)時,補文件九。
三條的共同起點都是文件一,而且都不能跳。深入層各自接在對應的基礎文件之後:七接三(先會算帳,才看得懂機制)、八接四(先會接 RAG,再處理讓模型自己決定下一步之後才出現的問題)、十四接八(設計完才談落地)、九接四的評估半邊、十接四的多模態半邊、十一接四的檢索半邊、十三接四與九、十二接二。只做 RAG 可以跳過八、十四和十;但九幾乎人人都需要——七、八、十裡每一個「值不值得」的判斷,最後都要靠九才量得準。架構解釋了成本從哪來,而下游遇到的每個問題——延遲、記憶體、長 context 退化、幻覺——追到底都是架構的性質。
框架 API 教學、從零推導數學、模型排行榜、prompt 技巧收藏、逐篇論文導讀、可解釋性研究(SAE / activation steering)。理由寫在查表頁第 03 節。
用瀏覽器打開 index.html(學習用)或 docs/lookup.html(查問題用),不需要 server。深淺色跟隨作業系統設定。
練習跑在 examples/:
cd examples
python3 m1_ask.py --report十八份彼此不相依,樣式與 SVG 圖直接寫在各自檔案裡。docs/ 裡的跨文件連結是同層相對路徑(例如 ./04-apps.html),回主頁是 ../index.html。編號與順序的唯一真相來源是 tools/docs.json,改完跑 python3 tools/order.py 會自動重寫每份文件的系列導覽與主頁目錄——不用手動對順序。
網頁版是分頁式的,適合查;要通讀或印出來,用 mkpdf.py 把十八份合成單一檔案:
python3 tools/mkpdf.py # 產生 build/llm-notes.html,並試著轉成 PDF
python3 tools/mkpdf.py --no-pdf # 只產 HTML,用瀏覽器自己列印轉 PDF 需要 weasyprint(pip install weasyprint);沒裝的話會停在 HTML,用瀏覽器列印一樣能出。產物放在 build/,不進版控。
四件在網頁上理所當然、印出來會壞掉的事,它都處理掉:
- 108 個分頁裡有 90 個是 hidden 的——全部攤開,tab bar 拿掉,每個分頁變成一個章節
- 329 個自我檢核是收起來的
<details>——全開,答案跟著印出來 - 九張圖是 JS 畫的,weasyprint 不跑 JS——交給
render_js_svg.js用一個極簡 DOM stub 跑過頁面自己的腳本,把每一步烘成靜態 SVG - 十八份各有一份同名 class 的 CSS——逐份加上
#dNN前綴,才不會互相蓋掉
四個調整篇幅的旗標:
| 旗標 | 作用 |
|---|---|
--anim=merged |
動畫只印最後一格(預設 frames:每一步各印一格) |
--no-quiz |
不印自我檢核的答案,留白自己寫 |
--tight |
分頁不各自起新頁、行距收緊 |
--no-pdf |
停在 HTML |
實測篇幅(A4):預設 683 頁,--tight 578 頁。動畫展開成逐格靜態圖佔掉不少——想薄一點就加 --anim=merged。
兩種模式的產物不會互相覆蓋:預設出 build/llm-notes.pdf,--tight 出 build/llm-notes-tight.pdf。
其餘工具(順序、體例、SVG 出框與文字重疊的檢查)寫在 tools/README.md。