今天在 GitHub Trending 上看到一个有意思的项目:dive-into-llms(《动手学大模型》系列编程实践教程)。它源自上海交通大学的课堂讲义,把大模型领域最热门的 11 个方向都用「可运行代码 + 课件 + 教程」三件套讲透,而且是完完全全的公益免费项目。
一、项目概述
dive-into-llms 由上海交通大学《自然语言处理前沿技术》(NIS8021)、《人工智能安全技术》(NIS3353)两门课程的讲义拓展而来,主讲教师为张倬胜。项目的目标是:通过简单的动手实践,帮助同学快速入门大模型,更好地开展课程设计或学术研究。
它最吸引人的地方在于「知行合一」的组织方式——每个主题都同时提供三种材料:
- 课件(PPT/PDF):系统化的知识体系梳理
- 教程(README):循序渐进的文字讲解
- 脚本(Jupyter Notebook):可以直接跑起来的代码
目前教程已经覆盖 11 个方向,并且还在持续扩展(数学推理、GUI Agent、大模型对齐、隐写术等都是后续新增的主题):
| 章节 | 主题 | 核心内容 |
|---|---|---|
| 第 1 章 | 微调与部署 | 选模型、做微调、把模型部署成可用的 Demo |
| 第 2 章 | 提示学习与思维链 | 大模型 API 调用与推理(Prompt / CoT) |
| 第 3 章 | 知识编辑 | 直接修改语言模型中的特定知识记忆 |
| 第 4 章 | 数学推理 | 蒸馏一个「迷你版 R1」让模型学会数学推理 |
| 第 5 章 | 模型水印 | 在生成文本中嵌入人眼不可见的水印 |
| 第 6 章 | 越狱攻击 | 了解攻击如何「撬开」大模型的嘴 |
| 第 7 章 | 大模型隐写 | 让模型在流畅回答中悄悄携带暗藏信息 |
| 第 8 章 | 多模态模型 | 多模态大语言模型的的理解与生成能力 |
| 第 9 章 | GUI 智能体 | 让 AI Agent 替你点外卖、回消息、比价 |
| 第 10 章 | 智能体安全 | 开放智能体场景下的风险识别与防护 |
| 第 11 章 | RLHF 安全对齐 | 基于 PPO 的 RLHF 实验指南 |
此外,项目还联合华为昇腾社区上线了国产化《大模型开发全流程》公益教程,基于昇腾基础软硬件,覆盖初级 / 中级 / 高级系列,提供 PPT、实验手册与视频,帮助开发者快速上手昇腾已支持的模型与全新模型迁移调优。
二、技术原理
2.1 教学组织方式:三件套 + Notebook
整个仓库以 documents/ 目录组织,每个章节一个子目录(如 chapter1 ~ chapter11),内部结构高度一致:
documents/
├── chapter1/ # 微调与部署
│ ├── dive-into-llm.pdf # 课件
│ ├── README.md # 教程文本
│ └── dive-tuning.ipynb # 可运行脚本
├── chapter2/ # 提示学习与思维链
│ └── ...
└── chapter11/ # RLHF 安全对齐
└── RLHF.ipynb
这种「课件 + 教程 + Notebook」的三件套结构非常利于自学:先读 README 建立直觉,再翻课件补全理论,最后跑 Notebook 验证理解。对想把教程搬进自己课程体系的老师来说,这简直是开箱即用的教学素材。
2.2 典型技术路线举例
以第 1 章 微调与部署为例,它的主线非常工程化:
- 选择合适的预训练模型(基座)
- 在特定任务数据上做微调(Fine-tuning)
- 将微调后的模型部署成一个方便调用的 Demo
而第 4 章 数学推理则走「蒸馏」路线——用一个更强的教师模型产出的推理过程去训练小模型,相当于手搓一个「迷你版 DeepSeek-R1」,非常适合想理解推理模型训练范式的读者。
第 5 章 模型水印和第 7 章 大模型隐写则是两个偏「安全 / 攻防」的趣味方向:前者关注生成内容的溯源与防伪,后者研究如何在自然语言流中嵌入只有「自己人」能解码的隐蔽信息,对理解大模型的可信与可控很有启发。
三、安装与快速开始
由于每个章节都是独立的 Jupyter Notebook,环境相当轻量,核心依赖就是 Python + Jupyter。
环境要求
- Python 3.x(建议 3.9+)
- Jupyter Lab / Notebook 或 VS Code 的 Notebook 支持
- 各章节 Notebook 内部按需
pip install(如 transformers、torch、openai 等)
clone 仓库
git clone https://github.com/Lordog/dive-into-llms.git
cd dive-into-llms/documents
启动 Notebook
# 任选其一
jupyter lab
# 或在 VS Code 中直接打开对应 .ipynb 文件
打开后,进入你想学习的章节目录(如 chapter1),依次运行 dive-tuning.ipynb 中的单元格即可。部分章节(如调用大模型 API 的提示工程、水印、隐写等)需要在 Notebook 顶部配置自己的 API Key。
⚠️ 涉及在线大模型 API 的章节,需要自备相应平台的 Key;涉及本地训练 / 部署的章节,则对显卡显存有一定要求,建议在本地 GPU 或云 GPU 环境运行。
四、使用方法与实战
4.1 作为自学路线
如果你是大模型初学者,推荐按章节顺序由浅入深:
- 第 2 章 提示学习与思维链——零门槛,先学会「把大模型用起来」
- 第 1 章 微调与部署——理解如何把通用模型变成「专才」
- 第 4 / 5 / 6 / 7 章——深入推理、水印、越狱、隐写等前沿安全方向
- 第 8 ~ 11 章——拓展到多模态、GUI Agent、智能体安全与 RLHF 对齐
4.2 作为教学资源
教师可以直接复用本仓库的课件与 Notebook 组织实验课;研究者则可把对应章节当作某个方向的「最小可复现 baseline」,在其上做二次开发。
4.3 国产化路线
对希望基于国产算力学习大模型全栈开发的读者,可直接前往昇腾社区的《大模型开发学习专区》,配合本项目的《大模型开发全流程》系列,在昇腾 NPU 上跑通从数据、训练到部署的完整流程。
五、常见问题与解决方案
Q1:Notebook 运行时报缺少某个包?
各章节依赖不完全一致,建议在运行前先按 Notebook 顶部或 README 的提示安装所需库,或用独立虚拟环境隔离:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt # 若章节提供
Q2:调用大模型 API 的章节一直报错?
通常是 API Key 未配置或额度不足。请在 Notebook 的配置文件 / 环境变量中填入有效的 Key,并确认所选模型名称与平台一致。
Q3:本地微调章节显存不够?
微调(尤其全参数微调)对显存要求较高。可考虑:降低 batch size、使用 LoRA / QLoRA 等参数高效微调方法,或改用云 GPU 环境。
Q4:想贡献内容或纠错?
项目明确欢迎 PR 与 Issue 讨论——它本身就是「进行中」的公益项目,任何疏漏都可以通过提交 Issue 或 PR 来完善。
六、总结
dive-into-llms 把一个庞大的大模型知识体系,用「课件 + 教程 + 可运行 Notebook」的方式拆成了 11 块易于啃下的拼图,覆盖了从最基础的提示工程、微调部署,到偏前沿的越狱、水印、隐写、对齐与智能体安全。加上与华为昇腾联合的国产化全流程教程,它无论是对自学者、高校教师还是研究者,都是一份难得的高质量开源学习资源。
项目地址:https://github.com/Lordog/dive-into-llms