第四階段:深度學習與神經網路
從零開始構建大型語言模型的完整教程,通過PyTorch逐步實現GPT架構,包含預訓練、微調和部署的全流程實踐
LLMs-from-scratch 課程詳細介紹
項目概述
LLMs-from-scratch 是一個由 Sebastian Raschka 創建的綜合性學習資源,旨在教授如何從零開始構建大型語言模型 (LLM)。這個項目是《Build a Large Language Model (From Scratch)》一書的官方程式碼儲存庫。
核心特色
📚 學習目標
- 從內到外理解大型語言模型的運作原理
- 透過編碼逐步構建自己的 LLM
- 學習類似 ChatGPT 背後的基礎模型的訓練和開發方法
- 掌握載入和微調預訓練模型權重的技術
🎯 教學方法
- 從零開始編碼:使用 PyTorch 從頭實現,不依賴外部 LLM 函式庫
- 循序漸進:每個階段都有清晰的文本、圖表和範例說明
- 實用性強:創建小型但功能完整的教育模型
- 配套資源豐富:包含 17 小時 15 分鐘的影片課程
課程結構
章節內容
第 1 章:理解大型語言模型 (Understanding large language models)
- LLM 基礎概念介紹
- 模型架構概述
第 2 章:處理文本資料 (Working with text data)
- 主要程式碼:
ch02.ipynb,dataloader.ipynb - 文本預處理和資料載入
- 練習解答:
exercise-solutions.ipynb
第 3 章:編碼注意力機制 (Coding attention mechanisms)
- 主要程式碼:
ch03.ipynb,multihead-attention.ipynb - 實現自注意力機制
- 多頭注意力機制詳解
第 4 章:從零實現 GPT 模型 (Implementing a GPT model from scratch)
- 主要程式碼:
ch04.ipynb,gpt.py - 完整的 GPT 架構實現
- 模型組件詳細講解
第 5 章:在無標籤資料上預訓練 (Pretraining on unlabeled data)
- 主要程式碼:
ch05.ipynb,gpt_train.py,gpt_generate.py - 預訓練流程
- 文本生成實現
第 6 章:分類任務微調 (Finetuning for classification)
- 主要程式碼:
ch06.ipynb,gpt_class_finetune.py - 針對特定分類任務調整模型
- 微調技術和策略
第 7 章:指令遵循微調 (Finetuning to follow instructions)
- 主要程式碼:
ch07.ipynb,gpt_instruction_finetuning.py - 指令微調方法
- 模型評估:
ollama_evaluate.py
附錄內容
附錄 A:PyTorch 簡介
- 程式碼:
code-part1.ipynb,code-part2.ipynb - 分散式資料並行訓練:
DDP-script.py - PyTorch 基礎快速入門
附錄 B-E
- 附錄 B:參考資料和延伸閱讀
- 附錄 C:練習答案彙總
- 附錄 D:添加額外功能
- 附錄 E:參數高效微調
獎勵內容 (Bonus Materials)
第 5 章額外資源
- 替代權重載入方法:不同的模型權重載入技術
- Project Gutenberg 資料集預訓練:在大型文本語料庫上訓練
- 訓練循環優化:添加各種改進功能
- 學習率排程器:優化訓練過程
- 超參數調優:預訓練超參數優化
- 使用者介面構建:與預訓練 LLM 互動的 UI
- 模型轉換:
- GPT 轉換為 Llama
- 從零實現 Llama 3.2
- Qwen3 密集型和混合專家模型 (MoE)
- 從零實現 Gemma 3
- 記憶體高效權重載入:優化模型載入
- Tiktoken BPE 分詞器擴展:添加新 token
- PyTorch 效能優化技巧:加速 LLM 訓練
第 6 章額外資源
- 分類微調的高級技術
第 7 章額外資源
- 資料集工具:查找近似重複和創建被動語態條目
- 回應評估:使用 OpenAI API 和 Ollama 評估指令回應
- 資料集生成:為指令微調生成資料集
- 資料集改進:提高指令微調資料集品質
- 偏好資料集生成:使用 Llama 3.1 70B 和 Ollama
- DPO 對齊:直接偏好優化 (Direct Preference Optimization) 實現
- 使用者介面:與指令微調 GPT 模型互動
推理模型資源 (來自 reasoning-from-scratch 儲存庫)
- Qwen3 基礎
- 模型評估方法
技術要求
前置知識
- ✅ 必需:紮實的 Python 編程基礎
- ✅ 有幫助:深度神經網路基礎知識
- ✅ 有幫助:PyTorch 基礎 (提供附錄 A 快速入門)
硬體要求
- 💻 普通筆記型電腦即可:主要章節程式碼設計在常規筆記型電腦上運行
- 🚀 自動 GPU 加速:如果可用,程式碼會自動使用 GPU
- ⚡ 無需專用硬體:確保廣泛受眾可以學習
軟體環境
- Python 3.x
- PyTorch
- 其他依賴詳見 setup 目錄
配套資源
影片課程
- 📹 17 小時 15 分鐘完整影片課程
- 逐章編碼演示
- 可作為獨立學習資源或配合書籍使用
- Manning 平台:Master and Build Large Language Models
後續書籍
《Build A Reasoning Model (From Scratch)》
- 可視為續集
- 從預訓練模型開始
- 實現不同推理方法:
- 推理時間擴展
- 強化學習
- 蒸餾技術
- 提升模型推理能力
- GitHub 儲存庫:reasoning-from-scratch
測試資源
免費 170 頁 PDF:《Test Yourself On Build a Large Language Model (From Scratch)》
- 每章約 30 道測驗題及答案
- 幫助測試理解程度
- Manning 網站免費下載
練習解答
- 每章包含多個練習
- 解答彙總在附錄 C
- 對應程式碼筆記本在各章節資料夾中
- 範例:
./ch02/01_main-chapter-code/exercise-solutions.ipynb
- 範例:
項目獲取
下載方式
方式 1:直接下載 ZIP
# 點擊 GitHub 頁面的 Download ZIP 按鈕
方式 2:Git 克隆
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
程式碼組織
- 每章有獨立資料夾:
ch02/,ch03/, 等 - 主要程式碼在
01_main-chapter-code/子資料夾 - 額外資源在對應的編號資料夾中
學習路徑建議
思維模型
書籍提供了一個清晰的思維導圖,總結了所有涵蓋的內容:
- 理解 LLM 基礎
- 文本資料處理
- 注意力機制
- GPT 架構實現
- 預訓練技術
- 微調方法
- 實際應用部署
學習建議
- 初學者:從第 1 章開始,按順序學習,完成每章練習
- 有基礎者:可跳過熟悉的章節,重點關注特定主題
- 實踐者:使用獎勵內容探索高級話題
- 研究者:參考引用格式,在研究中引用本資源
社區與支持
反饋渠道
貢獻說明
- 由於對應印刷書籍,主要章節程式碼保持一致性
- 當前不接受擴展主要章節內容的貢獻
- 確保與實體書內容一致,提供流暢學習體驗
引用資訊
Chicago 格式
Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.
BibTeX 格式
@book{build-llms-from-scratch-book,
author = {Sebastian Raschka},
title = {Build A Large Language Model (From Scratch)},
publisher = {Manning},
year = {2024},
isbn = {978-1633437166},
url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
github = {https://github.com/rasbt/LLMs-from-scratch}
}
關鍵連結
- 📖 GitHub 儲存庫:https://github.com/rasbt/LLMs-from-scratch
- 🛒 Manning 出版商:http://mng.bz/orYv
- 🛒 Amazon 購買:https://www.amazon.com/gp/product/1633437167
- 📹 影片課程:https://www.manning.com/livevideo/master-and-build-large-language-models
- 🧠 推理模型後續:https://github.com/rasbt/reasoning-from-scratch
- 📄 配置文檔:setup/README.md
總結
這是一個全面、系統的 LLM 學習資源,適合:
- 🎓 希望深入理解 LLM 運作原理的學習者
- 👨💻 想要實踐實現 GPT 類模型的開發者
- 🔬 從事 NLP 和深度學習研究的研究人員
- 🚀 對 AI 和機器學習感興趣的技術愛好者
透過這個項目,你將獲得從零構建、訓練和微調大型語言模型的完整能力。