《动手学大模型》Dive into LLMs:从零入门大模型实战 · 最全教程指南
一句话定位:GitHub 开源项目
Lordog/dive-into-llms(《动手学大模型 Dive into LLMs》)是上海交通大学《自然语言处理前沿技术》(NIS8021)与《人工智能安全技术》(NIS3353)课程讲义拓展而来的系列编程实践教程,公益性质、完全免费,通过 11 个章节的动手实验帮你快速入门大模型,覆盖微调部署、提示学习、知识编辑、数学推理、模型水印、越狱攻击、文本隐写、多模态、GUI 智能体、智能体安全、RLHF 对齐等全方向。slogan:通过简单实践,帮助同学们快速入门大模型,更好地开展课程设计或学术研究。
仓库地址:https://github.com/Lordog/dive-into-llms · ⭐ 57613 · Jupyter Notebook · MIT(教程公益免费)
目录
- 一、官方跳转与下载链接
- 二、项目简介与核心能力
- 三、官方图片
- 四、教程目录(11 章全览)
- 五、快速开始:环境准备与通用步骤
- 六、各章节详细部署与使用方法
- 七、国产化《大模型开发全流程》系列课程(华为昇腾)
- 八、如何运行教程(Jupyter Notebook 方式)
- 九、如何从零开始贡献
- 十、项目结构全解
- 十一、常见问题排查
- 十二、参考链接汇总
一、官方跳转与下载链接
| 资源 | 链接 |
|---|---|
| GitHub 源码仓库 | https://github.com/Lordog/dive-into-llms |
| 源码 ZIP 打包下载 | https://github.com/Lordog/dive-into-llms/archive/refs/heads/main.zip |
| Star 历史图 | https://star-history.com/#Lordog/dive-into-llms&Date |
| Issues 讨论区 | https://github.com/Lordog/dive-into-llms/issues |
| 仓库徽章 | https://img.shields.io/github/stars/Lordog/dive-into-llms |
| 昇腾社区《大模型开发学习专区》 | https://www.hiascend.com/edu/growth/lm-development#classification-floor-1 |
| 课程主讲人主页(张倬胜) | https://bcmi.sjtu.edu.cn/home/zhangzs/ |
| 作者主页(袁童鑫 Lordog) | https://github.com/Lordog |
Git 克隆命令:
git clone https://github.com/Lordog/dive-into-llms.git
# 或浅克隆(只取最新版本,速度快)
git clone --depth 1 https://github.com/Lordog/dive-into-llms.git
二、项目简介与核心能力
2.1 这是什么
《动手学大模型》是上海交通大学《自然语言处理前沿技术》(NIS8021)、《人工智能安全技术》(NIS3353)课程讲义拓展而来的大模型入门编程参考教程(教师:张倬胜)。公益性质、完全免费,旨在通过简单实践帮助快速入门大模型。
2.2 核心特色
| 特色 | 说明 |
|---|---|
| 🎓 高校出品 | 上海交通大学 + 新加坡国立大学联合开发 |
| 📚 11 个实战章节 | 微调部署 → RLHF 对齐全链路覆盖 |
| 🆓 公益免费 | 课件 PDF、实验手册、代码脚本全部开源 |
| 🚀 国产化课程 | 联合华为昇腾推出《大模型开发全流程》初/中/高级 |
| 🔧 动手优先 | 每个章节都有可运行的 Jupyter Notebook 脚本 |
| 🛡️ 安全主题突出 | 越狱攻击、模型水印、隐写、智能体安全等 4 个安全章节 |
| 📝 PPT + 手册 + 视频 | 三种形式满足不同学习习惯 |
2.3 覆盖方向
微调与部署 · 提示学习与思维链 · 知识编辑 · 数学推理 · 模型水印 · 越狱攻击 · 大模型隐写 · 多模态模型 · GUI 智能体 · 智能体安全 · RLHF 安全对齐
三、官方图片
3.1 《大模型开发全流程》系列课程展示图(官方 README 原图)
![]() ▲ 图 1:课程主视觉 |
![]() ▲ 图 2:课程封面 |
![]() ▲ 图 3:开发团队 |
![]() ▲ 图 4:AI Agent 主题图 |
3.2 仓库图标
| 图标 | 用途 |
|---|---|
![]() |
教程目录 |
![]() |
目录/章节图标 |
以上图片均来自仓库
pics/icon/目录(官方原图)。
四、教程目录(11 章全览)
| # | 章节 | 内容简介 | 课件 PDF | 教程文档 | 代码脚本 |
|---|---|---|---|---|---|
| 1 | 微调与部署 | 预训练模型微调与部署指南:选模型→特定任务微调→部署成 Demo | 课件 | 教程 | 脚本 |
| 2 | 提示学习与思维链 | 大模型 API 调用与推理指南:零样本/少样本提示工程、思维链推理 | 课件 | 教程 | 脚本 |
| 3 | 知识编辑 | 操控语言模型对指定知识的记忆:ROME/MEND 等方法编辑与验证 | 课件 | 教程 | 脚本 |
| 4 | 数学推理 | 蒸馏一个迷你 R1:基于 DeepMath-103K + Qwen2.5-Math 的 SFT 全流程 | 课件 | 教程 | 脚本 |
| 5 | 模型水印 | 在 LLM 生成内容中嵌入人类不可见但算法可检测的水印(X-SIR/SIR/KGW) | 课件 | 教程 | 脚本 |
| 6 | 越狱攻击 | 学会攻击才能更好安全:EasyJailbreak 框架实现 11 种越狱方法 | 课件 | 教程 | 脚本 |
| 7 | 大模型隐写 | "看不见的墨水":GPT-2 文本生成中隐藏信息(霍夫曼编码/FLC) | 课件 | 教程 | 脚本 |
| 8 | 多模态模型 | 多模态大语言模型的类型、通用技术框架、搭建训练推理 | 课件 | 教程 | 脚本 |
| 9 | GUI 智能体 | 让 AI Agent 替你点外卖、回消息、购物比价(Qwen2-VL-7B + OS-Kairos) | 课件 | 教程 | 脚本 |
| 10 | 智能体安全 | 大模型智能体安全测评:Agent 能否意识到开放场景中的风险威胁 | 课件 | 教程 | 脚本 |
| 11 | RLHF 安全对齐 | 基于 PPO 的 RLHF 实验指南:用 BERT 打分器微调 GPT-2 生成积极评论 | 课件 | 教程 | 脚本 |
五、快速开始:环境准备与通用步骤
5.1 通用前置环境
# ① 克隆仓库
git clone https://github.com/Lordog/dive-into-llms.git
cd dive-into-llms
# ② 安装 Python(各章要求 3.8 / 3.9 / 3.10 不等,建议 3.10)
# 用 conda 管理环境最省心
# ③ 安装 Jupyter(运行 notebook 需要)
pip install jupyter
# 或
conda install jupyter
5.2 通用加速配置(国内)
| 场景 | 加速方式 |
|---|---|
| pip 下载慢 | pip install <包> -i https://pypi.tuna.tsinghua.edu.cn/simple |
| conda 下载慢 | 按此博客配置镜像:https://blog.csdn.net/weixin_42797483/article/details/132048218 |
| HuggingFace 模型下载 | 设置镜像:export HF_ENDPOINT=https://hf-mirror.com |
| 模型下载不了 | 手动到 HuggingFace 下载模型后放本地路径引用 |
5.3 运行 Notebook 通用方式
cd documents/chapterN
jupyter notebook 对应的.ipynb文件
六、各章节详细部署与使用方法
第 1 章:微调与部署(Transformers + Gradio)
目标:熟悉 Transformers 工具包;掌握预训练模型微调、推理;用 Gradio Spaces 部署 Demo。
工具:🤗 Transformers(https://github.com/huggingface/transformers)、Gradio
环境安装:
conda create -n llm python=3.9
conda activate llm
pip install transformers
# 删除 requirements.txt 中自动安装的 torch 后:
pip install -r requirements.txt
conda install pytorch # 关键:国内源默认装 CPU 版,需用 conda 装 GPU 版
数据:Kaggle 虚假推文数据集(https://www.kaggle.com/c/nlp-getting-started/data)
两种工程包(网盘下载): - 解耦可定制版本(关键模块解耦,易理解,可自定义):https://pan.quark.cn/s/00dae5c2b128 - 默认集成版本(代码丰富,直接超参数调用):https://pan.quark.cn/s/9d0510f1c98d
运行训练/验证/预测一条龙:
python main.py
集成版微调示例:
python run_classification.py \
--model_name_or_path bert-base-uncased \
--train_file data/train.csv \
--validation_file data/val.csv \
--test_file data/test.csv \
--shuffle_train_dataset \
--metric_name accuracy \
--text_column_name "text" \
--text_column_delimiter "\n" \
--label_column_name "target" \
--do_train --do_eval --do_predict \
--max_seq_length 512 \
--per_device_train_batch_size 32 \
--learning_rate 2e-5 \
--num_train_epochs 1 \
--output_dir experiments/
Gradio 部署:
1. 创建 Spaces:https://huggingface.co/new-space?sdk=gradio
2. 上传 app.py、requirements.txt、模型到 Spaces
3. 参考成功案例:https://huggingface.co/spaces/cooelf/text-classification
进阶:情感分类、新闻分类、漏洞分类;T5/ELECTRA 等模型;Llama2 推理与 LoRA 轻量化微调。
第 2 章:提示学习与思维链(API 调用)
目标:熟悉大语言模型使用方式;掌握零样本/少样本提示工程;了解思维链推理。
入门工具:VS Code、Miniconda/Anaconda
获得大模型调用权限(任选): | 服务 | 入口 | |---|---| | 通义千问 | https://help.aliyun.com/zh/dashscope/developer-reference/quick-start | | 智谱 AI | https://open.bigmodel.cn/ | | OpenAI | https://platform.openai.com/playground | | 其他 | 文心一言、百川等 |
基本流程:开通服务获得 API-KEY(获赠计算额度)→ 用 API Key 调用服务
两种调用方式(以通义千问为例): 1. GUI 界面调用(适合案例测试):https://dashscope.console.aliyun.com/playground 2. 命令行调用(适合开发、规模化实验):参考 https://help.aliyun.com/zh/dashscope/create-a-chat-foundation-model
# 普通调用示例
from http import HTTPStatus
import dashscope
def sample_sync_call():
resp = dashscope.Generation.call(
model='qwen-turbo',
messages=[{'role':'user','content':'你好'}],
result_format='message',
)
if resp.status_code == HTTPStatus.OK:
print(resp.output.choices[0].message.content)
else:
print(resp.code, resp.message)
第 3 章:知识编辑(EasyEdit)
目标:熟悉 EasyEdit 工具包;掌握语言模型编辑方法(最简);了解编辑方法选型。
工具:EasyEdit(https://github.com/zjunlp/EasyEdit)——支持 GPT-J、Llama、GPT-NEO、GPT2、T5 等;集成 ROME、MEND 等流行编辑方法。
安装:
git clone https://github.com/zjunlp/EasyEdit.git
# (可选)conda create -n EasyEdit python=3.9.7
cd EasyEdit
pip install -r requirements.txt
编辑案例(把梅西的职业从足球改成篮球 football→basketball): - 选择编辑方法,准备参数 → 准备知识编辑数据 → 实例化 Editor → Run - ROME 方法 Colab 在线体验:https://colab.research.google.com/drive/1KkyWqyV3BjXCWfdrrgbR-QS3AAokVZbr
框架四要素:Editor(编辑场景)/ Method(编辑技术,如 ROME/MEND)/ Evaluate(可靠性、通用性、局部性、可移植性)/ Trainer(训练模块)
第 4 章:数学推理(SFT 蒸馏迷你 R1)
目标:数据蒸馏全流程——数据集清理预处理、微调大模型、模型推理、数学能力评测。
技术路线:用 Supervised Finetuning(SFT)让模型学习 DeepSeek-R1 生成的回复(反思、验算等数学推理技能)。
数据集与模型: - 数据集:DeepMath-103K(https://huggingface.co/datasets/zwhe99/DeepMath-103K) - 模型:Qwen/Qwen2.5-Math-1.5B(https://huggingface.co/Qwen/Qwen2.5-Math-1.5B)
环境要求:Python 3.8+ · PyTorch · Transformers · Datasets · vllm · 至少 40GB 显存的 GPU
运行:
jupyter notebook sft_math.ipynb
notebook 三大部分:数据集下载预处理 → 模型加载训练 → 模型生成评测。国内模型下载用 https://hf-mirror.com 镜像。
第 5 章:模型水印(X-SIR)
目标:水印嵌入(生成时嵌入)/ 水印检测 / 水印评估 / 鲁棒性评估(可选)。
工具:X-SIR 仓库(https://github.com/zwhe99/X-SIR)——三种水印算法 X-SIR、SIR、KGW + 两种去除攻击方法 paraphrase、translation。
环境安装:
git clone https://github.com/zwhe99/X-SIR && cd X-SIR
conda create -n xsir python==3.10.10
conda activate xsir
pip3 install -r requirements.txt
第 6 章:越狱攻击(EasyJailbreak)
目标:熟悉 EasyJailbreak 工具包;掌握常用越狱方法的实现与结果。
工具:EasyJailbreak(https://github.com/EasyJailbreak/EasyJailbreak)——集成 11 种越狱攻击方法,框架含 Selector/Mutator/Constraint/Evaluator 四模块。
安装(两种方式):
# 直接使用
pip install easyjailbreak
# 开发扩展(添加新 Mutator/Evaluator)
git clone https://github.com/EasyJailbreak/EasyJailbreak.git
cd EasyJailbreak
pip install -e .
文档:https://easyjailbreak.github.io/EasyJailbreakDoc.github.io/
第 7 章:大模型隐写(GPT-2 文本隐写术)
目标:在 GPT-2 文本生成中隐藏信息;支持霍夫曼编码(Huffman Coding)和固定长度编码(Fixed Length Coding, FLC);同时生成隐写文本和普通文本对比。
环境要求:Python 3.8+ · PyTorch · Transformers · CUDA(可选,GPU 加速)
安装:
pip install torch # GPU 机器注意指定 GPU 版本
pip install transformers
pip install jupyter
运行:
jupyter notebook llm_stega.ipynb
第 8 章:多模态模型(MLLM)
目标:熟悉多模态大语言模型类型;掌握通用技术框架;掌握搭建、训练和推理。
核心认知:语言已成为承载智能的关键模态,几乎所有 MLLM 都建立在基于语言的 LLM 之上,通过添加外部非文本模态模块/编码器赋予多模态能力。
课件:https://github.com/Lordog/dive-into-llms/blob/main/documents/chapter8/mllms.pdf
第 9 章:GUI 智能体(Qwen2-VL-7B + OS-Kairos)
目标:了解 GUI 智能体技术路线;基于开源模型 Qwen2-VL-7B 依托 OS-Kairos 数据集构建自适应人机交互 GUI 智能体;基于构建的智能体推理。
参考论文:https://arxiv.org/abs/2503.16465
数据集:OS-Kairos(https://github.com/Wuzheng02/OS-Kairos)README 中下载链接,解压到环境。
数据格式示例:
{
"task": "打开网易云音乐,搜索《Shape of You》,并播放这首歌。",
"image_path": "/data1/wuzh/cloud_music/images/1736614680.6518524_1.png",
"list": ["打开网易云音乐", "点击首页顶部的搜索框", "输入:Shape of You", "选择正确的搜索结果", "点击歌名以播放"],
"now_step": 1,
"previous_actions": ["CLICK <point>[[381,367]]</point>"]
}
第 10 章:智能体安全(安全测评)
目标:了解大模型智能体架构与常见应用;了解智能体驱动的"自主操作系统";尝试安全测评与分析。
相关项目: | 项目 | 说明 | |---|---| | Auto-UI | 大模型玩手机:https://github.com/cooelf/Auto-UI | | AIOS | 智能操作系统:https://github.com/agiresearch/AIOS | | OS-Copilot | 个人电脑智能体:https://github.com/OS-Copilot/OS-Copilot |
第 11 章:RLHF 安全对齐(PPO 实验)
目标:基于 PPO 的 RLHF 实验;用 BERT 情感分类器作为奖励函数,优化 GPT-2 生成积极 IMDB 评论。
PPO 三步流程:Rollout(模型生成响应)→ Evaluation(打分)→ Optimization(KL 散度约束 + PPO 训练)
复现配置:单卡 NVIDIA A800-SXM4-80GB,占用 10097MiB,训练耗时 35min19s。
下载模型和数据:
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download stanfordnlp/imdb --local-dir dataset/imdb --repo-type dataset
运行:
jupyter notebook RLHF.ipynb
七、国产化《大模型开发全流程》系列课程(华为昇腾)
在《动手学大模型》原系列基础上,联合华为开发、基于昇腾基础软硬件,覆盖 PPT、实验手册、视频,分为初级、中级、高级三个系列,面向不同大模型实践需求,提供从快速上手、应用昇腾已支持模型到全新模型迁移调优的全流程开发指南。
👉 学习专区:《大模型开发学习专区》@ 昇腾社区
八、如何运行教程(Jupyter Notebook 方式)
# ① 克隆
git clone https://github.com/Lordog/dive-into-llms.git
cd dive-into-llms
# ② 建环境
conda create -n dive python=3.10 -y
conda activate dive
# ③ 安装 Jupyter
conda install -y jupyter
# 或 pip install jupyter
# ④ 进入章节目录启动
cd documents/chapter1
jupyter notebook
# 浏览器打开 notebook 依次执行单元格即可
九、如何从零开始贡献
- 提 Issue:遇到问题到 https://github.com/Lordog/dive-into-llms/issues 讨论;
- 提 PR:直接 Fork → 修改 → Pull Request(PRs Welcome 徽章欢迎贡献);
- 内容建议:教程为正在进行中的项目,任何 PR 及 issue 讨论都欢迎;
- 徽章如侵犯版权请联系删除(项目免责声明说明)。
十、项目结构全解
dive-into-llms/
├── README.md # 主说明(本指南来源)
├── documents/ # 教程主体
│ ├── chapter1/ # 微调与部署
│ │ ├── README.md # 章节教程
│ │ ├── dive-into-llm.pdf # 课件
│ │ ├── dive-tuning.ipynb # 代码脚本
│ │ └── assets/ # 章节配图
│ ├── chapter2/ # 提示学习与思维链
│ ├── chapter3/ # 知识编辑
│ ├── chapter4/ # 数学推理
│ ├── chapter5/ # 模型水印
│ ├── chapter6/ # 越狱攻击
│ ├── chapter7/ # 大模型隐写
│ ├── chapter8/ # 多模态模型
│ ├── chapter9/ # GUI智能体
│ ├── chapter10/ # 智能体安全
│ └── chapter11/ # RLHF安全对齐
├── pics/
│ └── icon/ # 官方图标(title/cover/team/agent 等)
└── .gitignore
十一、常见问题排查
| 问题 | 处理 |
|---|---|
| 模型下载显示 Network is unreachable | 手动到 HuggingFace 下载模型到本地:https://huggingface.co/google-bert/bert-base-uncased |
| 数据加载后卡住不动 | 通常是 evaluate 包加载评价指标网络失败;下载 evaluate 包(https://github.com/huggingface/evaluate)并 --metric_name 指本地路径 |
| pip 下载慢 | 清华源:pip install <包> -i https://pypi.tuna.tsinghua.edu.cn/simple |
| 装完 torch 是 CPU 版 | 用 conda install pytorch 替代 pip 安装 |
| HuggingFace 模型/数据下载慢 | export HF_ENDPOINT=https://hf-mirror.com |
| GPU 显存不足(第4章) | 数学推理章节需至少 40GB 显存,小显存可改小模型或量化 |
| 想在线快速体验知识编辑 | 用 ROME Colab:https://colab.research.google.com/drive/1KkyWqyV3BjXCWfdrrgbR-QS3AAokVZbr |
| 想部署 Demo | Gradio Spaces:https://huggingface.co/new-space?sdk=gradio |
十二、参考链接汇总
| 资源 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/Lordog/dive-into-llms |
| 源码 ZIP | https://github.com/Lordog/dive-into-llms/archive/refs/heads/main.zip |
| Star 历史 | https://star-history.com/#Lordog/dive-into-llms&Date |
| Transformers | https://github.com/huggingface/transformers |
| EasyEdit(知识编辑) | https://github.com/zjunlp/EasyEdit |
| X-SIR(模型水印) | https://github.com/zwhe99/X-SIR |
| EasyJailbreak(越狱) | https://github.com/EasyJailbreak/EasyJailbreak |
| DeepMath-103K 数据集 | https://huggingface.co/datasets/zwhe99/DeepMath-103K |
| Qwen2.5-Math-1.5B 模型 | https://huggingface.co/Qwen/Qwen2.5-Math-1.5B |
| OS-Kairos 数据集 | https://github.com/Wuzheng02/OS-Kairos |
| 昇腾学习专区 | https://www.hiascend.com/edu/growth/lm-development#classification-floor-1 |
| 主讲人张倬胜主页 | https://bcmi.sjtu.edu.cn/home/zhangzs/ |
免责声明:本文所有命令、规则、数据均整理自官方 GitHub 仓库
Lordog/dive-into-llms的 README 及各章节文档原文,如仓库更新请以最新版本为准。教程内容仅代表贡献者个人经验与科研积累,仅供参考。





