該儲存庫包含用於開發、預先訓練和微調類似 GPT 的 LLM 的程式碼,並且是《建立大型語言模型(從頭開始)》一書的官方程式碼儲存庫。
在建立大型語言模型(從頭開始)中,您將透過從頭開始逐步編碼來學習和理解大型語言模型 (LLM) 如何從內到外工作。在本書中,我將指導您創建自己的法學碩士,並用清晰的文本、圖表和範例解釋每個階段。
本書中所描述的用於出於教育目的訓練和開發您自己的小型但實用的模型的方法反映了創建大型基礎模型(例如 ChatGPT 背後的模型)所使用的方法。此外,本書還包含用於載入較大預訓練模型的權重以進行微調的程式碼。
若要下載此儲存庫的副本,請按一下「下載 ZIP」按鈕或在終端機中執行以下命令:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(如果您從 Manning 網站下載了程式碼包,請考慮造訪 GitHub 上的官方程式碼儲存庫:https://github.com/rasbt/LLMs-from-scratch 以取得最新更新。)
請注意,此README.md
檔案是 Markdown ( .md
) 檔案。如果您已從 Manning 網站下載了此程式碼包並在本機上查看它,我建議您使用 Markdown 編輯器或預覽器進行正確查看。如果您還沒有安裝 Markdown 編輯器,MarkText 是一個不錯的免費選擇。
您也可以在瀏覽器中查看 GitHub 上的此檔案和其他檔案:https://github.com/rasbt/LLMs-from-scratch,這會自動呈現 Markdown。
提示
如果您正在尋求安裝 Python 和 Python 套件以及設定程式碼環境的指導,我建議您閱讀位於安裝目錄中的 README.md 檔案。
章節標題 | 主要程式碼(用於快速存取) | 所有代碼+補充 |
---|---|---|
設定建議 | - | - |
第 1 章:理解大型語言模型 | 無程式碼 | - |
第 2 章:使用文字數據 | - ch02.ipynb - dataloader.ipynb(摘要) - 練習解決方案.ipynb | ./ch02 |
第 3 章:編碼注意力機制 | - ch03.ipynb - multihead-attention.ipynb(摘要) - 練習解決方案.ipynb | ./ch03 |
第 4 章:從頭開始實作 GPT 模型 | - ch04.ipynb - gpt.py(摘要) - 練習解決方案.ipynb | ./ch04 |
第 5 章:未標記資料的預訓練 | - ch05.ipynb - gpt_train.py(摘要) - gpt_generate.py(摘要) - 練習解決方案.ipynb | ./ch05 |
第 6 章:文本分類微調 | - ch06.ipynb - gpt_class_finetune.py - 練習解決方案.ipynb | ./ch06 |
第 7 章:微調以遵循說明 | - ch07.ipynb - gpt_instruction_finetuning.py(摘要) - ollama_evaluate.py(摘要) - 練習解決方案.ipynb | ./ch07 |
附錄 A:PyTorch 簡介 | - 代碼-part1.ipynb - 代碼-part2.ipynb -DDP-script.py - 練習解決方案.ipynb | ./附錄-A |
附錄 B:參考資料與進一步閱讀 | 無程式碼 | - |
附錄 C:練習解決方案 | 無程式碼 | - |
附錄 D:在訓練循環中加入附加功能 | - 附錄-D.ipynb | ./附錄-D |
附錄 E:使用 LoRA 進行參數高效率的微調 | - 附錄-E.ipynb | ./附錄-E |
以下的思維模型總結了本書所涵蓋的內容。
本書主要章節中的程式碼旨在合理的時間內在傳統筆記型電腦上運行,並且不需要專門的硬體。這種方法確保了廣泛的受眾可以參與這些材料。此外,程式碼會自動利用 GPU(如果可用)。 (請參閱設定文件以取得其他建議。)
幾個文件夾包含可選材料,作為對感興趣讀者的獎勵:
我歡迎各種回饋,最好透過曼寧論壇或 GitHub 討論分享。同樣,如果您有任何疑問或只是想向其他人傳達想法,也請隨時在論壇中發布。
請注意,由於此儲存庫包含與印刷書籍相對應的程式碼,因此我目前無法接受擴展主要章節程式碼內容的貢獻,因為它會引入與實體書的偏差。保持一致有助於確保每個人都有順暢的體驗。
如果您發現這本書或程式碼對您的研究有用,請考慮引用它。
芝加哥風格的引文:
拉斯卡,塞巴斯蒂安。建構大型語言模型(從頭開始) 。曼寧,2024 年。
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}
}