该存储库包含用于开发,预处理和填充类似GPT的LLM的代码,并且是该书构建大型语言模型(从头开始)的官方代码存储库。
在构建大型语言模型(从头开始) ,您将通过一步一步地从头开始编码大型语言模型(LLM)从内而外进行编码。在这本书中,我将指导您创建自己的LLM,用清晰的文字,图表和示例来解释每个阶段。
本书中描述的方法用于培训和开发自己的小型功能模型用于教育目的,反映了用于创建大规模基础模型(例如Chatgpt背后的基础模型)所使用的方法。此外,本书还包括用于加载较大审慎模型的重量的代码。
要下载此存储库的副本,请单击下载zip按钮或在您的终端中执行以下命令:
git clone --depth 1 https://github.com/ranpy13/Learning-LLM.git(如果您从Manning网站下载了代码捆绑包,请考虑在https://github.com/ranpy.com/ranpy13/learning-llm上访问GitHub上的官方代码存储库,以获取最新更新。)
请注意,此README.md文件是降价( .md )文件。如果您从Manning网站下载了此代码捆绑包并在本地计算机上查看它,我建议使用Markdown编辑器或预览器进行正确查看。如果您尚未安装Markdown编辑器,则MarkText是一个不错的免费选项。
您可以在https://github.com/ranpy13/learning-llm上在github上在github上查看此文件,在浏览器中自动呈现Markdown。
提示
如果您正在寻求有关安装Python和Python软件包并设置代码环境的指导,我建议阅读位于设置目录中的readme.md文件。
| 章节标题 | 主代码(用于快速访问) | 所有代码 +补充 |
|---|---|---|
| 设置建议 | - | - |
| CH 1:了解大型语言模型 | 没有代码 | - |
| CH 2:使用文本数据 | -CH02.IPYNB -Dataloader.ipynb(摘要) - 锻炼溶液。IPYNB | ./ch02 |
| CH 3:编码注意机制 | -CH03.IPYNB - 多头注意力 - 锻炼溶液。IPYNB | ./ch03 |
| CH 4:从头开始实施GPT模型 | -CH04.IPYNB -gpt.py(摘要) - 锻炼溶液。IPYNB | ./ch04 |
| CH 5:预读未标记的数据 | -CH05.IPYNB -gpt_train.py(摘要) -gpt_generate.py(摘要) - 锻炼溶液。IPYNB | ./ch05 |
| ch 6:文本分类的填充 | -CH06.IPYNB -GPT_CLASS_FINETUNE.PY - 锻炼溶液。IPYNB | ./ch06 |
| ch 7:遵守指示 | -CH07.IPYNB -gpt_instruction_finetuning.py(摘要) -Ollama_evaluate.py(摘要) - 锻炼溶液。IPYNB | ./ch07 |
| 附录A:Pytorch简介 | -code-part1.ipynb -code-part2.ipynb -DDP-script.py - 锻炼溶液。IPYNB | ./appendix-a |
| 附录B:参考和进一步阅读 | 没有代码 | - |
| 附录C:锻炼解决方案 | 没有代码 | - |
| 附录D:在训练循环中添加铃铛和哨子 | - 附录 - d.ipynb | ./appendix-d |
| 附录E:洛拉(Lora | - 附录-E.IPYNB | ./appendix-e |
下面的心理模型总结了本书中涵盖的内容。
本书主要章节中的代码旨在在合理的时间范围内在常规笔记本电脑上运行,并且不需要专门的硬件。这种方法可确保广泛的听众可以与材料互动。此外,如果代码可用,代码将自动使用GPU。 (请参阅设置文档以获取其他建议。)
几个文件夹包含可选材料作为感兴趣的读者的奖励:
我欢迎各种反馈,最好通过Manning论坛或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/ranpy13/Learning-LLM}
}