datawhalechina/happy-llm · 上手攻略

  • 仓库:datawhalechina/happy-llm
  • 链接:https://github.com/datawhalechina/happy-llm
  • 分类:ai
  • 作者:Jay
  • 更新:2026-07-13

这是什么

Happy-LLM 是 Datawhale 团队推出的系统性大模型学习教程,定位介于"科普"和"科研"之间,目标是授之以鱼,更授之以渔。它从 NLP 基本研究方法讲起,沿着 LLM 的思路和原理逐层深入,最终带领读者用 PyTorch 从零实现一个 LLaMA2 模型,并完成预训练、有监督微调(SFT)和 LoRA/QLoRA 高效微调的全流程。

与其姐妹项目 self-llm(侧重模型使用和 API 调用)不同,Happy-LLM 侧重模型本身的原理和训练过程,适合想深入理解 LLM 内部机制的学习者。


解决什么问题

  • 想系统学习 LLM 原理,但没有体系化、资源分散
  • 看论文太艰深,单纯跑 demo 又只知其然不知其所以然
  • 想自己训练/微调一个模型,不知道从哪入手
  • 需要一份中文的、理论与实战兼备的 LLM 教程

快速安装(本地学习环境)

本项目不依赖特定的 Python 包安装,教程以 Markdown 形式呈现,代码分散在各章节。如需复现代码,建议按章节创建独立虚拟环境。

推荐环境准备

# 使用 conda 创建独立环境(以第5章为例,需要 PyTorch)
conda create -n happy-llm-ch5 python=3.10
conda activate happy-llm-ch5

# 安装 PyTorch(CUDA 11.8 示例,视显卡选择版本)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 章节依赖安装(不同章节按需安装)
pip install transformers peft datasets accelerate

PDF 版下载(离线阅读)

如不想 clone 全仓库,可直接下载 PDF:

https://github.com/datawhalechina/happy-llm/releases/tag/v1.0.2

⚠️ PDF 中已预置 Datawhale 开源标志水印,不影响阅读,为防止营销号去水印贩卖。

PPT 课件下载

配套教学 PPT 可从以下地址获取:

# GitLink
https://gitlink.org.cn/datawhalechina/happy-llm
# 或 GitHub Releases 页面
https://github.com/datawhalechina/happy-llm/releases

在线阅读

项目自带 GitHub Pages 部署,直接访问:

https://datawhalechina.github.io/happy-llm/


核心用法(学习路径)

第一步:了解章节依赖

在开始前,必读 学习与环境准备,了解各章节的前置依赖和硬件建议。不同章节建议使用独立 Python 环境,以减少版本冲突。

第二步:按需选择学习路径

基础知识路线(第 1-4 章) - 第 1 章:NLP 基础概念(适合非 NLP 背景快速入门) - 第 2 章:Transformer 架构(原理 + PyTorch 从头实现) - 第 3 章:预训练语言模型(Encoder-only / Encoder-Decoder / Decoder-only) - 第 4 章:大语言模型(定义、训练策略、涌现能力分析)

实战路线(第 5-7 章) - 第 5 章:亲手搭建 LLaMA2,实现 Tokenizer 训练和小型 LLM 预训练 - 第 6 章:基于 Transformers 框架的完整训练流程(SFT / LoRA / QLoRA) - 第 7 章:模型评测、RAG、Agent 智能体应用

第三步:动手复现(以第 5 章为例)

# 克隆仓库
git clone https://github.com/datawhalechina/happy-llm.git
cd happy-llm/docs/chapter5

# 阅读第五章正文:第五章 动手搭建大模型.md
# 按文档指引运行代码

第 5 章提供了一个从零实现 LLaMA2 的完整示例,包含: - Transformer 架构实现(Attention、FFN、LayerNorm 等) - Tokenizer 训练脚本 - 预训练脚本(小型 215M 模型) - 有监督微调(SFT)脚本

配套模型下载(ModelScope)

Datawhale 提供了第 5 章训练好的两个小型模型,可直接在 ModelScope 下载体验:

模型 链接
Happy-LLM-Chapter5-Base-215M https://www.modelscope.cn/models/kmno4zx/happy-llm-215M-base
Happy-LLM-Chapter5-SFT-215M https://www.modelscope.cn/models/kmno4zx/happy-llm-215M-sft

ModelScope 创空间体验地址:https://www.modelscope.cn/studios/kmno4zx/happy_llm_215M_sft


典型适用场景

  1. 系统学习 LLM 原理——理工科研究生、工程师,想从理论到实现完整掌握
  2. 准备 AI 相关面试——第 2-4 章涵盖 Transformer、注意力机制、LLM 训练等高频面试题
  3. 动手训练自己的小模型——第 5-6 章提供完整代码和实践指导
  4. 教学或开源贡献——PDF/PPT 可直接用于课堂,Extra Chapter 接受社区 PR

坑与注意

  • 环境隔离很重要:不同章节依赖差异较大(如第 2 章只需要 PyTorch,第 6 章需要 Transformers/PEFT),强烈建议按章节使用独立 conda 环境
  • 硬件要求:完整复现第 5-6 章训练代码建议有 GPU(显存 8GB+),纯 CPU 可跑小模型但极慢;具体硬件建议见 学习与环境准备.md
  • Kuzu 后端已废弃:第 3 章使用 Kuzu 的同学注意,Kuzu upstream 已不再维护,项目已标记废弃,新项目建议用 Neo4j 或 FalkorDB
  • Extra Chapter 是增量内容:不是主教程的一部分,质量参差不齐,作为补充阅读即可
  • PDF 版本可能滞后:主分支更新较快,PDF 为 release 时打包,可能与最新内容有差异

与同类对比

教程 侧重点 语言 代码量 适合人群
Happy-LLM 原理 + 从零实现 LLaMA2 中文 大量(分章节) 想深入原理、动手训练的人
self-llm 模型使用、API 调用 中文 中等(notebook) 快速上手各种开源模型
CS224N(斯坦福) 学术 NLP 体系 英文 作业驱动 想要学术深度的学生
FastAI / HuggingFace Course 快速应用 中英均有 较少 只想用模型不想看原理

Happy-LLM 的独特价值在于中文 + 从零实现 + 完整训练流程,这是市面上同类中文教程中少见的组合。


一句话结论

想系统、深入、中文地学透大模型原理并亲手训练一个属于自己的 LLM,Happy-LLM 是目前中文开源社区最完整的路线图型教程。