该存储库包含用于开发、预训练和微调类似 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 年。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}
}