第四階段:深度學習與神經網路

從零開始構建大型語言模型的完整教程,通過PyTorch逐步實現GPT架構,包含預訓練、微調和部署的全流程實踐

LLMTransformerPyTorchGitHubTextFreeEnglish

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 目錄

配套資源

影片課程

後續書籍

《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/ 子資料夾
  • 額外資源在對應的編號資料夾中

學習路徑建議

思維模型

書籍提供了一個清晰的思維導圖,總結了所有涵蓋的內容:

  1. 理解 LLM 基礎
  2. 文本資料處理
  3. 注意力機制
  4. GPT 架構實現
  5. 預訓練技術
  6. 微調方法
  7. 實際應用部署

學習建議

  1. 初學者:從第 1 章開始,按順序學習,完成每章練習
  2. 有基礎者:可跳過熟悉的章節,重點關注特定主題
  3. 實踐者:使用獎勵內容探索高級話題
  4. 研究者:參考引用格式,在研究中引用本資源

社區與支持

反饋渠道

  • 💬 Manning Forum官方論壇
  • 💭 GitHub Discussions討論區
  • 🤝 歡迎所有形式的反饋、問題和想法交流

貢獻說明

  • 由於對應印刷書籍,主要章節程式碼保持一致性
  • 當前不接受擴展主要章節內容的貢獻
  • 確保與實體書內容一致,提供流暢學習體驗

引用資訊

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}
}

關鍵連結

總結

這是一個全面、系統的 LLM 學習資源,適合:

  • 🎓 希望深入理解 LLM 運作原理的學習者
  • 👨‍💻 想要實踐實現 GPT 類模型的開發者
  • 🔬 從事 NLP 和深度學習研究的研究人員
  • 🚀 對 AI 和機器學習感興趣的技術愛好者

透過這個項目,你將獲得從零構建、訓練和微調大型語言模型的完整能力。