datawhalechina/llms-from-scratch-cn
仅需Python基础,从0构建大语言模型;从0逐步构建GLM4\Llama3\RWKV6, 深入理解大模型原理
📚 什么是 LLMs From Scratch (CN)?
一个社区驱动的教程系列(中文),引导你从零开始构建大型语言模型,仅使用 PyTorch 笔记本。此仓库重新托管了原始 rasbt/LLMs-from-scratch 项目的内容,加入中文翻译,并扩展课程以涵盖多种现代架构,如 GLM-4、Llama 3 和 RWKV 系列。
🎯 目标与受众
- 目标 – 教导开发者和研究人员 ChatGPT 风格模型如何运作、如何实现核心组件(tokeniser、attention、transformer 块、训练循环),以及如何在他们自己的数据上训练一个小型但功能正常的模型。
- 受众 – 具备基本 Python/PyTorch 知识、想要通过实操、代码优先的方式深入了解 LLM 内部运作的人。教材以中文撰写,并假设具备一定的编程背景。
📂 仓库如何组织
| 章节 | 你会找到的内容 | 典型文件 |
|---|---|---|
| 1️⃣ 基础知识 | 理论加上快速入门的简短笔记本。 | Codes/ch02/*.ipynb、Codes/ch03/*.ipynb |
| 2️⃣ 模型实现 | 逐步实现 attention、multi-head attention、GPT 风格模型和训练脚本的笔记本。 | Codes/ch04/gpt.py、Codes/ch05/train.py、Codes/ch05/generate.py |
| 3️⃣ 进阶模型讨论 | 加载并检查 ChatGLM-3、Llama-3、RWKV-V2-V6、MiniCPM 等权重的架构特定笔记本。 | Model_Architecture_Discussions/*/*.ipynb |
| 4️⃣ 附录 | PyTorch 复习、分布式训练示例、额外练习。 | Codes/appendix-A/*.ipynb、Codes/appendix-D/appendix-D.ipynb |
✨ 主要亮点
- 完整代码,涵盖从 tokenisation 到预训练和生成的最小 GPT 风格模型。
- 实操笔记本,可在本地(或 Colab)运行,无需大型计算集群。
- 多模型覆盖 – 相同的教学流程重复用于探索 GLM、Llama、RWKV 和 MiniCPM 架构。
- 提供每章的练习解答,让自学更简单。
- 开源许可 – 代码采用 Apache 2.0,教程内容采用 CC-BY-NC-SA 4.0。
🚀 快速开始(快速步骤)
- 克隆仓库
git clone https://github.com/datawhalechina/llms-from-scratch-cn.git cd llms-from-scratch-cn - 创建 Python 环境(建议 Python 3.9+、PyTorch 2.x)。
pip install -r requirements.txt # 如果存在 requirements 文件,否则安装 torch、tqdm、numpy 等。 - 运行入门笔记本,查看最小 GPT 实现:
jupyter notebook Codes/ch04/01_main-chapter-code/ch04.ipynb - 按照章节顺序(第 2 章 → 第 5 章)从数据加载 → attention → 完整模型 → 预训练。
- 准备好后,探索 Model_Architecture_Discussions 笔记本,看看相同的概念如何映射到更大的公开模型。
📜 许可
- 代码 – Apache 2.0(宽松,允许在其他项目中重用)。
- 教程文本与笔记本 – Creative Commons BY-NC-SA 4.0(非商业分享,需标注)。
🙋♀️ 贡献与社区
- 开启 issue 报告错误或功能请求。
- 使用 Discussions 进行学习小组协调。
- 欢迎通过 pull-request 贡献;请参阅 README 中链接的 Datawhale 贡献指南。
TL;DR – LLMs From Scratch (CN) 是一套实用、中文的学习工具,让你可以自行编写、训练和实验小型 LLM,同时也提供热门现代架构的深入笔记本。非常适合想要揭开 ChatGPT 风格模型内部运作之谜、而不想独自阅读抽象论文的自学者。
相关
- 项目
- 项目
- 项目
- 项目