从零构建大型语言模型
此代码库包含开发、预训练和微调类似GPT的大型语言模型(LLM)的代码,是《从零构建大型语言模型》一书的官方代码库。
在《从零构建大型语言模型》一书中,您将通过从头开始逐步编码,了解并掌握大型语言模型(LLM)的内部工作原理。在本书中,我将通过清晰的文字、图表和示例指导您创建自己的LLM,并解释每个阶段。
本书中描述的用于训练和开发小型但功能性模型的方法,旨在教育用途,类似于创建如ChatGPT背后的大规模基础模型的方法。此外,本书还包括加载大型预训练模型权重以进行微调的代码。
- 官方源代码库链接
- Manning出版社书籍链接
- Amazon上的书籍页面链接
- ISBN 9781633437166
要下载此代码库的副本,请点击下载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,GitHub会自动渲染Markdown。
[!提示] 如果您需要有关安装Python和Python包以及设置代码环境的指导,我建议阅读位于setup目录中的README.md文件。
章节标题 | 主要代码(快速访问) | 所有代码+补充资料 |
---|---|---|
安装建议 | - | - |
第1章: 了解大型语言模型 | 无代码 | - |
第2章: 处理文本数据 | - ch02.ipynb - dataloader.ipynb(总结) - exercise-solutions.ipynb | ./ch02 |
第3章: 编码注意力机制 | - ch03.ipynb - multihead-attention.ipynb(总结) - exercise-solutions.ipynb | ./ch03 |
第4章: 从零实现GPT模型 | - ch04.ipynb - gpt.py(总结) - exercise-solutions.ipynb | ./ch04 |
第5章: 在未标记的数据上进行预训练 | - ch05.ipynb - gpt_train.py(总结) - gpt_generate.py(总结) - exercise-solutions.ipynb | ./ch05 |
第6章: 为文本分类进行微调 | - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb | ./ch06 |
第7章: 微调以执行指令 | - ch07.ipynb - gpt_instruction_finetuning.py(总结) - ollama_evaluate.py(总结) - exercise-solutions.ipynb | ./ch07 |
附录A: PyTorch简介 | - code-part1.ipynb - code-part2.ipynb - DDP-script.py - exercise-solutions.ipynb | ./appendix-A |
附录B: 参考文献与延伸阅读 | 无代码 | - |
附录C: 练习解答 | 无代码 | - |
附录D: 为训练循环添加附加功能 | - appendix-D.ipynb | ./appendix-D |
附录E: 使用LoRA进行参数高效微调 | - appendix-E.ipynb | ./appendix-E |
下方的心智模型总结了本书涵盖的内容。
硬件要求
本书主要章节中的代码设计为可在常规笔记本电脑上在合理时间内运行,不需要专用硬件。这种方法确保了广泛的读者群体可以参与学习。此外,如果有GPU可用,代码会自动利用GPU。(请参阅[安装指南](https://github.com/rasbt/LLMs-from-scratch/blob/main/setup