Skip to content

datawhalechina/diy-llm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

443 Commits
 
 
 
 
 
 
 
 

Repository files navigation

alt text

Diy-LLM

GitHub stars GitHub forks Language GitHub Project

📚 在线阅读地址

📚 带你系统性学习大语言模型

一座为中文学习者量身打造的"LLM炼丹工坊"

我们希望这门 CS336 中文课程,不只是斯坦福原版的"汉化版",而是一座为中文学习者量身打造的"LLM炼丹工坊"。在这里,你亲手锻造理解、打磨代码、调控火候,最终炼出属于自己的大模型真丹。

📋 前置要求

  • Python 编程:熟练掌握 Python 和软件工程能力
  • 深度学习基础:熟悉 PyTorch,了解神经网络基本原理
  • 数学基础:线性代数、概率统计、微积分
  • 机器学习:需对机器学习与深度学习的基础知识有扎实掌握
  • GPU 编程(可选):了解 CUDA 基础概念会更佳,不懂也没关系,本项目也有入门教程

📚 课程愿景

  • 硬核理论与动手实战并重:我们会完整保留原版课程的技术深度,但会用更符合中文学习者思维的方式重构知识体系。对于必要的数学、深度学习前置知识,我们会帮你补齐,确保学习曲线平滑,让每个认真投入的人都能跟上。
  • 搭建一套循序渐进的知识体系:将构建LLM这个庞大工程,拆解成一个个可以上手、可以理解的模块。学完后,你将拥有一个关于LLM的完整知识图谱。
  • 代码驱动,知行合一:课程的核心是"用代码思考"。所有作业,我们不仅会提供实现代码,更会分享写下每一行代码时的思考过程。
  • 贴近国内环境的本土化改造:考虑到国内的网络环境、大家手头的计算资源以及独特的开源生态,我们会提供更接地气的解决方案和案例(比如,多聊聊Qwen、DeepSeek等国产优秀模型)。

🎯 项目意义

学完这门课,你能得到什么?

  • 扎实的技术地基:你将能亲手"造"出自己的LLM,对每个核心组件都了然于胸。
  • 宝贵的工程经验:掌握从数据处理、模型训练到部署优化,堪比大厂的全流程实战技能。
  • 突出的行业竞争力:具备大模型研发的核心能力,为你进入心仪的大厂或团队铺平道路。
  • 清晰的科研视野:对LLM领域有体系化的认知,为未来深入研究打下坚实的基础。

📖 课程目录

章节 关键内容 配套作业 状态
前言 项目由来、背景及学习建议 -
第1章 工具使用 W&B 使用与实验追踪 -
第2章 分词器 分词器原理与 BPE 实现 作业1
第3章 PyTorch 与资源核算 训练原语、算力/显存估算 -
第4章 语言模型架构与训练细节 Transformer 架构与训练要点 作业1
第5章 混合专家模型 MoE 原理、路由与工程实践 -
第6章 GPU 与相关优化 GPU 基础与优化技巧 作业2
第7章 GPU 高性能编程 CUDA 与高性能编程 作业2
第8章 分布式训练 并行范式与跨机训练 作业2
第9章 Scaling Laws 扩展定律与实验 作业3
第10章 推理 推理性能与落地优化 作业6
第11章 数据工程 数据清洗、构建与管理 作业4
第12章 评估与基准测试 指标体系与评测方法 作业6
第13章 大模型的基本训练流程 预训练、SFT、RL 流程 作业5
第14章 可验证奖励的强化学习 RLVR 思想与实践 作业5
第15章 扩展内容 - - 🚧

状态图例说明:✅ 已完成 🔄 更新中 📝 待完善 🚧 筹备中 ⏸️ 暂缓

📝 作业概览

作业 核心任务 状态
作业1:手搓大模型 实现 tokenizer、model architecture、optimizer,训练一个极简语言模型
作业2:系统优化 性能分析与基准测试;用 Triton 实现 FlashAttention-2;构建分布式训练代码
作业3:扩展定律 理解 Transformer 各组件功能;拟合 scaling law 预测模型扩展效果
作业4:数据处理 将 Common Crawl 原始数据转换为预训练数据集,执行过滤与去重
作业5:模型对齐 应用 SFT 与强化学习(如 GRPO)训练模型解决数学问题
作业6:模型评估 使用 lm-evaluation-harness 和 evalscope 进行多维度评测(语言理解、常识推理、代码、数学推理)

🚀 快速开始

# 克隆仓库
git clone https://github.com/xuhu0115/diy-llm.git
cd CS336-Chinese-co-construction
# 安装基础依赖(根据具体作业需求安装)

学习路径

1️⃣ 理论学习 → 按章节顺序阅读 docs/ 目录下的文档
2️⃣ 实践练习 → 完成 coursework/ 目录下的 6 个作业
3️⃣ 深入理解 → 阅读代码实现,理解每个组件的设计

项目结构

CS336-Chinese-co-construction/
├── docs/                    # 理论章节文档
│   ├── 前言/           
│   ├── chapter1/           # 工具使用
│   ├── chapter2/           # 分词器
│   ├── chapter3/           # PyTorch 与资源核算
│   ├── chapter4/           # 语言模型架构与训练细节
│   ├── chapter5/           # 混合专家模型
│   ├── chapter6/           # GPU 与相关优化
│   ├── chapter7/           # GPU 高性能编程
│   ├── chapter8/           # 分布式训练
│   ├── chapter9/           # Scaling Laws
│   ├── chapter10/          # 推理
│   ├── chapter11/          # 数据工程
│   ├── chapter12/          # 评估与基准测试
│   ├── chapter13/          # 大模型的基本训练流程
│   └── chapter14/          # 可验证奖励的强化学习
├── coursework/              # 实践作业
│   ├── assignment1-basics/        # 作业1:手搓大模型
│   ├── assignment2-systems/       # 作业2:系统优化
│   ├── assignment3-scaling/       # 作业3:扩展定律
│   ├── assignment4-data/          # 作业4:预训练数据处理
│   ├── assignment5-alignment/     # 作业5:对齐
│   └── assignment6-evaluation/    # 作业6:评估
├── README.md               # 项目说明
└── .gitignore              # Git忽略配置

🔗 相关链接

❓ 常见问题

Q: 没有 GPU 可以学习吗?

理论部分可以正常学习,作业中的部分内容可以在 CPU 上调试,但完整训练需要 GPU。建议使用云服务平台。

Q: 与原版 CS336 有什么区别?

我们在保留原版技术深度的基础上,针对中文学习者进行了本土化改造,包括中文讲解、作业实现、更详细的参考内容来源、国产模型案例等。

👥 贡献者

贡献者名单

pic
徐虎

项目负责人
Datawhale 成员
上海交通大学
负责内容:第1、3、9、12、14章;作业5、6;全文内容审核

pic
李盛康

项目负责人
Datawhale 成员
西安邮电大学
负责内容:第4、6、7、8、13章;作业2、4

pic
黎又榛

项目负责人
Datawhale-鲸英助教
负责内容:第2、5、10、11、13章;作业1、3;

注:我们感谢每一位为项目做出贡献的开发者!

我们欢迎所有形式的贡献!无论是文档改进、代码优化、bug修复还是新内容添加,都是对项目的宝贵支持。

如何贡献

  1. 报告问题:如果发现文档错误、代码bug或改进建议,欢迎提交 Issue
  2. 提交代码:Fork 本仓库,创建你的特性分支,提交更改后发起 Pull Request
  3. 完善文档:帮助改进文档、翻译内容或添加示例
  4. 分享经验:在讨论区分享学习心得和实践经验

贡献指南

  • 提交代码前请确保代码风格一致
  • 添加新内容时请遵循现有的文档格式
  • 提交PR时请提供清晰的描述和变更说明
  • 欢迎在Issue中讨论大的改动方案

📝 更新日志

项目持续更新中,最新进展请查看 GitHub Releases 或提交记录。

📄 许可证

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

🙏 致谢

  • 感谢 Stanford CS336 课程团队提供优秀的原版课程
  • 特别感谢@Sm1les对本项目的帮助与支持
  • 感谢所有为项目做出贡献的开发者
  • 感谢开源社区的支持与反馈

⭐ Star History

如果这个项目对你有帮助,欢迎给个 Star ⭐️!

Star History Chart


让更多人能够系统性地学习大语言模型构建技术

Made with ❤️ by the Datawhale

About

🎓 系统性大语言模型构建课程|🛠️ 覆盖预训练数据工程、Tokenizer、Transformer、MoE、GPU 编程 (CUDA/Triton)、分布式训练、Scaling Laws、推理优化及对齐 (SFT/RLHF/GRPO)|🚀 6 个渐进式作业 + 代码驱动,建立 LLM 全栈认知体系

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages