大模型开发从0到1实操流程记录
下面我按模型从 0 到上线的真实流程顺序,用“模型的生命周期”而不是”难度分级”来思考,把每个阶段、在干什么、用什么 Python 工具,给你理清楚。
一、整体流程总览(先给你一张“地图”)
1 | |
全流程简化速记
| 你说的 | 标准阶段 | Python 核心工具 |
|---|---|---|
| 模型的学习 | 预训练 | transformers + deepspeed + accelerate |
| 调优(FT) | 微调 | peft + bitsandbytes + trl |
| 监督学习 | SFT | trl(SFTTrainer) + datasets |
| 其他流程 | 对齐 / 评测 / 部署 | trl + lm-eval + vllm + fastapi |
二、按阶段拆解(重点:Python 工具)
阶段 1:数据准备(Data Preparation)
做什么
- 数据清洗
- Tokenization
- 格式化(指令数据 / 对话数据)
- 数据集划分
Python 工具
| 工具 | 作用 |
|---|---|
datasets(Hugging Face) |
加载、处理、缓存数据集 |
tokenizers |
BPE / SentencePiece 分词 |
pandas |
结构化数据清洗 |
json / jsonl |
指令数据格式 |
pyarrow |
高效列式存储 |
tiktoken |
OpenAI tokenizer(可选) |
✅ 输出:
train.jsonl / tokenized_dataset / DataLoader
阶段 2:模型的学习(预训练,Pre-training)
做什么
- 从零或继续训练
- 学习语言/世界知识
- 自监督学习(MLM / CLM)
Python 工具
| 工具 | 作用 |
|---|---|
transformers |
模型定义、Trainer |
torch |
核心训练框架 |
accelerate |
单卡/多卡统一接口 |
deepspeed |
ZeRO、显存优化 |
fsdp(PyTorch) |
原生分布式 |
wandb / tensorboard |
训练监控 |
✅ 关键代码对象: 1
2
3AutoModelForCausalLM
Trainer / TrainingArguments
DeepSpeedConfig
阶段 3:调优(Fine-tuning)
做什么
- 用领域数据继续训练
- 全参数 / 参数高效微调
Python 工具
| 工具 | 作用 |
|---|---|
transformers |
加载预训练模型 |
peft |
LoRA / QLoRA / Adapter |
bitsandbytes |
4/8-bit 量化训练 |
trl |
SFTTrainer |
datasets |
指令微调数据 |
✅ 常见组合: 1
transformers + peft + bitsandbytes + trl
✅ 输出: - adapter 权重 - 合并后的完整模型
阶段 4:监督学习(Supervised Fine-Tuning,SFT)
⚠️ 注意:SFT 是 FT 的一种,但强调“有标注的监督信号”
做什么
- 指令-回答对
- 对话历史
- 人工标注数据
Python 工具
| 工具 | 作用 |
|---|---|
trl(SFTTrainer) |
标准 SFT 训练 |
transformers |
模型/数据 |
datasets |
监督数据 |
deepspeed |
大规模训练 |
✅ 数据格式: 1
2
3
4
5{
"instruction": "...",
"input": "...",
"output": "..."
}
阶段 5:对齐(Alignment)
做什么
- 让模型更安全、更符合人类偏好
- RLHF / DPO / PPO
Python 工具
| 工具 | 作用 |
|---|---|
trl |
RLHF / DPO / Reward Model |
transformers |
策略模型 / 奖励模型 |
peft |
对齐阶段也常用 LoRA |
wandb |
奖励曲线监控 |
✅ 常见流程: 1
SFT → Reward Model → PPO / DPO
✅ 代表方法: - RLHF(PPO) - DPO(更工程友好) - ORPO / KTO
阶段 6:评测(Evaluation)
做什么
- 自动评测
- 人工评测
- 回归测试
Python 工具
| 工具 | 作用 |
|---|---|
lm-evaluation-harness |
标准 benchmark |
evaluate(HF) |
通用指标 |
rouge / bleu / meteor |
文本生成指标 |
deepeval / ragas |
LLM 专项评测 |
human-eval |
代码能力 |
✅ 输出: - MMLU / GSM8K / HumanEval 分数
阶段 7:推理优化(Inference Optimization)
做什么
- 加速
- 量化
- 显存优化
Python 工具
| 工具 | 作用 |
|---|---|
vllm |
高吞吐推理 |
tgi |
Hugging Face 推理服务 |
tensorrt-llm |
NVIDIA 极致优化 |
llama.cpp |
CPU / 边缘设备 |
auto-gptq / awq |
量化 |
onnxruntime |
ONNX 推理 |
✅ 输出: - 量化模型 - 推理服务
阶段 8:部署(Serving)
做什么
- API 服务
- 流式输出
- 并发处理
Python 工具
| 工具 | 作用 |
|---|---|
fastapi |
REST API |
uvicorn |
ASGI 服务器 |
docker |
容器化 |
ray serve |
分布式服务 |
triton inference server |
多模型管理 |
gradio / streamlit |
Demo |
✅ 接口标准: 1
/v1/chat/completions
大模型开发从0到1实操流程记录
https://jycpp.github.io/2025/25-10-11-大模型开发从0到1实操流程记录.html