Loading...

文章背景图

《动手学大模型》Dive into LLMs:从零入门大模型实战 · 最全教程指南

2026-10-25
4
- 字
- 分钟
|

《动手学大模型》Dive into LLMs:从零入门大模型实战 · 最全教程指南

version Status PRs Welcome Stars Forks Issues

一句话定位: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(教程公益免费)


目录


一、官方跳转与下载链接

资源 链接
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 仓库图标

图标 用途
folders 教程目录
catalogue 目录/章节图标

以上图片均来自仓库 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 依次执行单元格即可

九、如何从零开始贡献

  1. 提 Issue:遇到问题到 https://github.com/Lordog/dive-into-llms/issues 讨论;
  2. 提 PR:直接 Fork → 修改 → Pull Request(PRs Welcome 徽章欢迎贡献);
  3. 内容建议:教程为正在进行中的项目,任何 PR 及 issue 讨论都欢迎;
  4. 徽章如侵犯版权请联系删除(项目免责声明说明)。

十、项目结构全解

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 及各章节文档原文,如仓库更新请以最新版本为准。教程内容仅代表贡献者个人经验与科研积累,仅供参考。

评论交流

文章目录