1. AI Infra 全景图
AI infra 的本质是把“模型研发”变成可复现、可扩展、可评估、可上线、可回滚的工程系统。一个成熟团队通常不会只做训练脚本,而会维护从数据到线上服务的全链路能力。
核心角色分工
数据工程
负责数据接入、清洗、去重、质量分、PII/版权过滤、数据版本和 lineage。预训练质量上限很大程度由这层决定。
训练平台
负责 GPU/TPU 集群、调度、容器镜像、分布式训练、checkpoint、故障恢复、吞吐和成本。
模型算法
负责 tokenizer、结构、训练 recipe、后训练方法、合成数据、评估和误差分析。
评估安全
负责 benchmark、私有任务集、红队、政策集、人工评审、自动回归和上线门禁。
推理平台
负责 serving engine、调度、批处理、KV cache、GPU 利用率、API、SLA、观测和回滚。
产品集成
负责 prompt、RAG、工具调用、权限、审计、用户反馈和业务指标闭环。
2. 预训练:从语料到 base model
预训练的目标通常是 next-token prediction。模型通过大规模语料学习语言结构、事实、代码模式、推理痕迹和世界知识。工程重点是数据质量、训练稳定性、吞吐效率和可恢复性。
2.1 数据管线
| 步骤 | 要做什么 | 常用工具 | 关键风险 |
|---|---|---|---|
| 采集 | 网页、书籍、代码、论文、问答、日志、合成数据、授权商业数据。 | Scrapy、Common Crawl、Spark、Ray Data、DataTrove、对象存储。 | 版权、隐私、低质量来源、重复内容。 |
| 解析 | HTML/PDF/Markdown/code 解析,保留结构,去除导航、广告、模板文本。 | Trafilatura、BeautifulSoup、Apache Tika、Unstructured。 | 正文抽取失败、表格丢失、代码块破坏。 |
| 质量过滤 | 语言识别、困惑度过滤、长度过滤、垃圾文本分类、毒性过滤、PII 删除。 | fastText、KenLM、Presidio、Detoxify、自研分类器。 | 过度过滤导致领域损失,过滤不足导致模型污染。 |
| 去重 | 文档级、段落级、near-duplicate、MinHash、SimHash、embedding 去重。 | Spark/Ray、datasketch、Dedupe pipelines。 | 重复会浪费 token 预算并造成记忆化。 |
| 污染检查 | 从训练语料中移除 benchmark、私有测试集、线上评估集相似样本。 | n-gram match、MinHash、embedding search。 | 评估分数虚高,误判模型能力。 |
| 混合配比 | 根据语言、领域、代码、数学、指令数据设置采样权重。 | YAML recipe、data loader sampling、dataset manifest。 | 某类数据过多导致能力偏科或安全问题。 |
| 版本化 | 记录 manifest、hash、过滤版本、采样权重、许可证和审计说明。 | DVC、lakeFS、Delta/Iceberg、HF Datasets、MLflow artifacts。 | 无法复现实验,无法审计数据来源。 |
2.2 Tokenizer 与 chat template
Tokenizer 是模型的输入协议。它影响序列长度、成本、多语言能力、代码能力和特殊结构表达。常见方法包括 BPE、Unigram、WordPiece、SentencePiece、byte-level BPE 和 tiktoken 风格 tokenizer。
- 定义 `
`、` `、` `、system/user/assistant、tool call、image/audio placeholder 等特殊 token。 - 为训练、评估、推理使用同一套 chat template,避免训练和线上格式不一致。
- 对中文、代码、数字、长 URL、JSON、Markdown 表格做 tokenizer 质量抽样。
- 冻结 tokenizer 后再启动大规模训练,除非能承担重新训练和 checkpoint 转换成本。
2.3 模型结构与训练 recipe
模型结构
主流 LLM 以 decoder-only Transformer 为主,常见组件包括 RoPE、RMSNorm、SwiGLU、Grouped Query Attention、Mixture-of-Experts、长上下文 attention 和多模态 adapter。
训练 recipe
关键参数包括 batch size、sequence length、learning rate、warmup、weight decay、gradient clipping、precision、optimizer、activation checkpointing、数据采样权重和 checkpoint 间隔。
2.4 分布式训练并行
| 并行方式 | 解决的问题 | 典型工具 | 什么时候用 |
|---|---|---|---|
| Data Parallel | 每张卡复制模型,切分 batch,梯度 all-reduce。 | PyTorch DDP、Accelerate。 | 模型能放进单卡,想提高吞吐。 |
| FSDP / ZeRO | 切分参数、梯度、optimizer state,降低显存。 | PyTorch FSDP、DeepSpeed ZeRO。 | 单卡放不下完整训练状态。 |
| Tensor Parallel | 把单层矩阵计算切到多卡。 | Megatron-LM、TensorRT-LLM、vLLM TP。 | 单层参数或激活太大。 |
| Pipeline Parallel | 把模型层切到不同 GPU。 | Megatron-LM、DeepSpeed pipeline。 | 层数多,模型整体太大。 |
| Sequence / Context Parallel | 切分长序列的 attention 和激活。 | Megatron Core、RingAttention、DeepSpeed-Ulysses。 | 超长上下文训练。 |
| Expert Parallel | MoE 专家分布在多卡。 | Megatron Core、DeepSpeed MoE、Tutel。 | 训练 MoE 模型。 |
2.5 训练观测与故障恢复
- 训练曲线:loss、perplexity、learning rate、grad norm、loss spike、nan/inf。
- 吞吐指标:tokens/sec、samples/sec、MFU、GPU utilization、通信等待时间。
- 资源指标:显存峰值、CPU RAM、磁盘 IO、对象存储吞吐、网络带宽。
- checkpoint:模型、optimizer、scheduler、RNG、dataloader state 都要可恢复。
- 容错:节点重启、preemption、慢卡、坏样本、断点续训、checkpoint 校验。
- 实验记录:代码 commit、镜像 digest、数据 manifest、配置文件、环境变量。
2.6 预训练最小命令形态
# PyTorch/FSDP 风格
torchrun --nproc_per_node=8 train.py \
--config configs/pretrain_1b.yaml \
--data_manifest s3://bucket/manifests/v12.jsonl \
--checkpoint_dir s3://bucket/checkpoints/run_042
# DeepSpeed ZeRO 风格
deepspeed train.py \
--deepspeed configs/ds_zero3.json \
--model_config configs/model_1b.json \
--dataset_config configs/data_mix.yaml
# Megatron-LM 风格
torchrun --nproc_per_node=8 pretrain_gpt.py \
--tensor-model-parallel-size 2 \
--pipeline-model-parallel-size 2 \
--seq-length 4096 \
--micro-batch-size 1 \
--global-batch-size 512
3. 后训练:把 base model 变成可用助手
后训练不是单一算法,而是一组让模型“更听话、更有用、更安全、更符合业务偏好”的流程。常见顺序是 SFT -> preference tuning -> safety tuning -> evaluation -> model merging/export。
3.1 SFT:监督指令微调
SFT 使用 prompt-response 样本训练模型输出目标回答。关键是样本质量、格式一致性、assistant-only loss、去重和验证集。数据越少越要精,混入低质量长回答会快速破坏模型风格。
| 主题 | 实践建议 | 常用工具 |
|---|---|---|
| 数据格式 | 统一为 messages 或 prompt/completion,记录 system prompt 和工具调用结构。 | Hugging Face Datasets、ShareGPT、OpenAI messages、JSONL。 |
| 训练方式 | 小预算用 LoRA/QLoRA,大预算或核心模型用全量微调。 | PEFT、TRL SFTTrainer、Axolotl、LLaMA-Factory、torchtune、Unsloth。 |
| 损失 mask | 通常只训练 assistant 输出,避免让模型学习复述用户输入。 | TRL `assistant_only_loss`、自定义 data collator。 |
| 质量控制 | 去除模板化、幻觉、过长、低信息密度、政策冲突、重复样本。 | 规则过滤、LLM judge、人审、embedding 聚类。 |
3.2 PEFT、LoRA、QLoRA 与全量微调
低成本适配
只训练低秩 adapter,显存和存储成本低,适合快速迭代、多租户、多风格、多任务场景。
量化底座
以 4-bit/8-bit 加载 base model,同时训练 LoRA adapter,适合单卡或小集群微调。
深度改变模型
全量更新参数,可能获得更强能力变化,但需要更高算力、更严格评估和灾难性遗忘控制。
3.3 偏好优化与 RLHF
偏好优化使用 chosen/rejected 或 reward 信号,让模型更偏好高质量回答。2026 年的常见路线包括 DPO、IPO、KTO、ORPO、PPO、RLOO、GRPO、rejection sampling 和 distillation。选择时先问:你是否有稳定偏好数据,是否需要在线采样,是否能承受 RL 系统复杂度。
| 方法 | 输入数据 | 优点 | 注意事项 |
|---|---|---|---|
| DPO | prompt、chosen、rejected。 | 不需要单独训练 reward model,工程简单,适合偏好对齐。 | 依赖偏好数据质量,过强会损伤多样性。 |
| Reward Model + PPO | 偏好数据训练 reward,再在线采样优化 policy。 | 灵活,可处理复杂奖励和多轮任务。 | 系统复杂,容易 reward hacking,需要 KL 控制和稳定评估。 |
| GRPO/RLOO | 同一 prompt 多个采样,按组内相对奖励优化。 | 常用于推理/数学/代码类强化学习实验。 | 采样成本高,奖励设计决定上限。 |
| Distillation | 教师模型生成的答案、推理轨迹或偏好。 | 可以把大模型能力迁移到小模型,常用于降低成本。 | 会继承教师模型偏差和错误,必须做过滤。 |
3.4 安全与策略训练
- 明确安全 policy:哪些必须拒答,哪些可以给一般信息,哪些需要建议求助专业人士。
- 构建红队集:越狱、隐私、仇恨、暴力、自残、违法、医疗、法律、金融、网络安全。
- 评估过拒和漏拒:安全模型不能只追求拒绝率,也要保持正常问题可用性。
- 记录政策版本:模型、prompt、分类器、拒答模板和业务规则必须可追溯。
3.5 后训练命令形态
# TRL SFT
python train_sft.py \
--model Qwen/Qwen3-0.6B \
--dataset ./data/sft.jsonl \
--assistant_only_loss true \
--output_dir ./runs/sft-qwen-small
# PEFT/LoRA
python train_lora.py \
--model meta-llama/Llama-3.2-1B \
--lora_r 16 --lora_alpha 32 \
--target_modules q_proj,k_proj,v_proj,o_proj
# DPO
python train_dpo.py \
--model ./runs/sft-qwen-small \
--preference_dataset ./data/prefs.jsonl \
--beta 0.1
4. 评估:AI infra 的上线门禁
评估是模型工程里最容易被低估的部分。没有评估,训练只是昂贵的猜测。真正可用的 eval 系统要能持续阻止回归,解释失败,并和线上指标闭环。
离线评估
公开 benchmark 用于横向比较,私有 eval 用于业务决策。建议每个产品能力都有固定回归集,并把失败案例沉淀成 hard set。
线上评估
监控延迟、错误率、成本、满意度、人工接管率、重试率、投诉率、拒答率和质量漂移。线上数据要定期回流到训练和评估。
| 评估层 | 示例 | 推荐工具 |
|---|---|---|
| 基础能力 | 知识、数学、代码、阅读理解、多语言。 | lm-evaluation-harness、HELM、自定义 benchmark。 |
| 业务能力 | 客服、检索问答、代码修复、数据分析、报告生成。 | OpenAI Evals、DeepEval、W&B Weave、MLflow、内部 eval runner。 |
| RAG | 检索召回、答案 groundedness、faithfulness、引用准确率。 | Ragas、DeepEval、TruLens、Weave。 |
| 安全 | 越狱、政策绕过、PII 泄露、有害建议、偏见。 | Safety classifiers、red-team suites、人工审核。 |
| 系统 | p50/p95/p99、tokens/sec、GPU 利用率、OOM、队列时间。 | Prometheus、Grafana、OpenTelemetry、vLLM metrics、TGI metrics。 |
5. 推理:把模型变成稳定产品能力
LLM 推理不是简单调用 `model.generate()`。生产系统要解决 GPU 利用率、KV cache、批处理、长上下文、路由、限流、观测、安全和多租户成本。
5.1 请求生命周期
5.2 推理优化手段
| 手段 | 解决什么 | 典型工具 | 代价 |
|---|---|---|---|
| Continuous batching | 动态合并请求,提高吞吐。 | vLLM、TGI、SGLang、TensorRT-LLM。 | 调度复杂,p99 需要细调。 |
| Paged KV cache | 减少 KV cache 碎片,提高并发。 | vLLM PagedAttention。 | 依赖引擎支持。 |
| Quantization | 降低显存和成本。 | bitsandbytes、AWQ、GPTQ、GGUF、FP8、TensorRT-LLM。 | 可能损伤质量,需要逐任务评估。 |
| Speculative decoding | 用小 draft model 加速大模型生成。 | vLLM、TensorRT-LLM、自研。 | 需要 draft 模型与接受率调优。 |
| Prefix cache | 复用相同系统提示或长上下文前缀。 | vLLM、SGLang、部分托管平台。 | 缓存一致性和隔离要谨慎。 |
| Routing | 不同请求分配给不同模型或集群。 | LiteLLM、自研 router、Ray Serve、Gateway。 | 需要质量、成本和 SLA 策略。 |
| Disaggregated serving | 把 prefill 和 decode 分离,提高集群利用率。 | vLLM/llm-d/TensorRT-LLM 生态。 | 部署和网络复杂度更高。 |
5.3 推理服务命令形态
# vLLM OpenAI-compatible API
vllm serve Qwen/Qwen3-0.6B \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 1 \
--max-model-len 8192
# Hugging Face TGI
docker run --gpus all -p 8080:80 \
-e MODEL_ID=Qwen/Qwen3-0.6B \
ghcr.io/huggingface/text-generation-inference:latest
# llama.cpp / GGUF local serving
llama-server -m ./model.gguf \
--host 0.0.0.0 \
--port 8080 \
-c 8192
6. 主流工具矩阵
下面按生命周期列出常见工具。不要为了“全都用”而堆工具,先用最小闭环跑通:数据版本、训练、评估、服务、观测、回滚。
| 阶段 | 主流工具 | 适合场景 | 学习重点 |
|---|---|---|---|
| 数据处理 | Hugging Face Datasets、Spark、Ray Data、DataTrove、DVC、lakeFS、Delta/Iceberg、MinIO/S3/GCS。 | 从小数据实验到大规模数据湖。 | Parquet/Arrow、数据 manifest、去重、质量过滤、lineage。 |
| Tokenizer | Hugging Face Tokenizers、SentencePiece、tiktoken、Transformers chat templates。 | 中英文、代码、多模态、工具调用协议。 | BPE/Unigram、special tokens、模板一致性。 |
| 单机训练 | PyTorch、Transformers Trainer、Lightning、Accelerate、torchtune。 | 原型、SFT、小模型、教学。 | 训练循环、mask、AMP、梯度累积、日志。 |
| 分布式训练 | PyTorch DDP/FSDP、DeepSpeed ZeRO、Megatron-LM/Core、NeMo、Ray Train、JAX/MaxText。 | 大模型预训练、多节点、多卡训练。 | 并行策略、通信、checkpoint、调度、容错。 |
| 高效微调 | PEFT、TRL、Axolotl、LLaMA-Factory、Unsloth、torchtune。 | LoRA/QLoRA、SFT、DPO、快速实验。 | 数据格式、adapter、merge、验证集、显存估算。 |
| RLHF/RL | TRL、OpenRLHF、NeMo-Aligner/Gym、Ray、vLLM generation workers。 | DPO、PPO、GRPO、agentic RL、推理能力强化。 | reward、KL、采样成本、稳定性、reward hacking。 |
| 评估 | lm-evaluation-harness、OpenAI Evals、DeepEval、Ragas、W&B Weave、MLflow。 | 公开 benchmark、私有 eval、RAG eval、LLM judge。 | 评估集版本、污染、阈值、人工一致性、回归门禁。 |
| 压缩导出 | bitsandbytes、GPTQ、AWQ、GGUF/llama.cpp、ONNX、TensorRT-LLM、Safetensors。 | 降显存、边缘部署、高吞吐服务。 | 质量回归、校准集、格式转换、模型卡。 |
| 推理引擎 | vLLM、SGLang、TensorRT-LLM、TGI、llama.cpp、Ollama、MLX。 | OpenAI-compatible API、本地推理、GPU 集群。 | KV cache、批处理、量化、路由、长上下文。 |
| 服务平台 | Kubernetes、KServe、Triton、Ray Serve、BentoML、Knative、API Gateway。 | 多模型、多租户、自动扩缩、生产 SLA。 | 部署声明、健康检查、autoscaling、灰度、回滚。 |
| 观测与实验 | MLflow、W&B、Prometheus、Grafana、OpenTelemetry、Arize Phoenix、LangSmith。 | 训练追踪、线上 trace、成本和质量监控。 | 指标设计、日志脱敏、trace 采样、告警。 |
| 调度与集群 | Slurm、Kubernetes、Ray、Volcano、Kubeflow Pipelines、Airflow、Argo Workflows。 | GPU 集群、流水线、批任务、训练作业。 | 资源隔离、队列、公平调度、失败重试、镜像管理。 |
7. Google Colab 完整实践
我已配套制作一个标准 `.ipynb` notebook:不依赖大模型下载,用 tiny Transformer 从零跑通数据、tokenizer、预训练、SFT、DPO 风格偏好优化、评估、推理、量化、FastAPI 测试和工件导出。
导入方式
- 点击下载:ai-infra-colab-demo.ipynb。
- 打开 Google Colab。
- 选择 `File -> Upload notebook`,上传刚下载的 `.ipynb`。
- 可选:`Runtime -> Change runtime type -> T4 GPU`。
- 从上到下运行,观察每个阶段的 loss、偏好准确率和生成结果。
Notebook 包含
- Byte-level BPE tokenizer 训练。
- 2 层 TinyGPT 模型定义。
- 预训练 next-token loss。
- assistant-only SFT loss mask。
- 手写 DPO 风格偏好优化。
- loss 曲线、perplexity、偏好准确率。
- temperature/top-k 推理生成。
- 动态量化和 FastAPI 测试。
- 模型、tokenizer、config、model card 导出。
Notebook 的学习目标
| 阶段 | 你会看到什么 | 生产对应 |
|---|---|---|
| 数据 | 小型 pretrain corpus、SFT 样本、preference pairs。 | 数据湖、标注平台、合成数据、审计。 |
| Tokenizer | 训练 BPE、编码/解码、special tokens。 | HF Tokenizers、SentencePiece、chat template。 |
| 预训练 | next-token prediction 的最小训练循环。 | Megatron/FSDP/DeepSpeed 大规模训练。 |
| SFT | 只对 assistant tokens 计算 loss。 | TRL/Axolotl/LLaMA-Factory/Unsloth。 |
| DPO | chosen/rejected logprob 比较。 | TRL DPOTrainer、OpenRLHF、NeMo。 |
| 推理 | 采样生成、量化、API 测试。 | vLLM/SGLang/TensorRT-LLM/KServe。 |
8. 12 周学习路线
这条路线适合有 Python 和基础深度学习背景的人。每天 1 到 2 小时,重点是做实验和写复盘。
手写 tiny causal LM,理解 embedding、attention、MLP、LayerNorm、causal mask、cross entropy。
练习 JSONL、Parquet、HF Datasets、tokenizer 训练、chat template、数据去重和质量过滤。
实现 next-token training、梯度累积、warmup、checkpoint、resume、loss 曲线和 perplexity。
跑 DDP、Accelerate、FSDP 或 DeepSpeed ZeRO,小规模理解显存拆分和通信。
用 TRL/PEFT 或 Axolotl 做 LoRA/QLoRA,学习 assistant-only loss、adapter merge、验证集。
做 DPO/ORPO/KTO 实验,理解 chosen/rejected、reference model、beta、KL 和过拟合。
建立私有 eval JSONL,接入 lm-eval-harness、DeepEval 或 OpenAI Evals,设置上线阈值。
实现检索、rerank、groundedness eval、引用检查、工具 schema 和失败回放。
部署 vLLM/SGLang/llama.cpp,压测 p50/p95、吞吐、并发、max context、显存。
比较 BF16、FP8、AWQ、GPTQ、GGUF、bitsandbytes,评估质量和速度变化。
用 MLflow/W&B 追踪实验,用 KServe/Ray Serve/BentoML 发布服务,接入 Prometheus/Grafana。
选一个真实领域,完成数据、SFT、DPO、eval、推理服务、监控和回滚文档。
9. 上线检查清单
- 训练数据来源、许可证、过滤规则、数据版本和 hash 已记录。
- 训练配置、代码 commit、容器镜像、依赖版本可复现。
- checkpoint 能在新机器恢复,optimizer 和 dataloader state 可用。
- 公开 benchmark、私有 eval、安全 eval、延迟压测都过门禁。
- 推理服务有限流、鉴权、审计、日志脱敏和错误处理。
- 配置了 p50/p95/p99、tokens/sec、GPU memory、队列时间和错误率告警。
- 有灰度策略、回滚策略、模型版本兼容策略和 prompt 版本管理。
- 有用户反馈入口和失败样本回流机制。
- 成本模型覆盖 GPU、存储、网络、人工标注、评估和线上冗余。
- 安全 policy、拒答模板、红队集和人工升级流程已审查。
10. 高频概念速查
| 概念 | 解释 | 为什么重要 |
|---|---|---|
| MFU | Model FLOPs Utilization,衡量训练计算利用率。 | 判断集群是否被通信、IO 或低效 kernel 拖慢。 |
| KV cache | Transformer decode 时缓存历史 key/value。 | 决定长上下文和高并发推理显存成本。 |
| Prefill | 处理 prompt 的阶段。 | 影响首 token 延迟,长 prompt 成本高。 |
| Decode | 逐 token 生成阶段。 | 影响输出速度和总延迟。 |
| Adapter | 插入或附加到 base model 的小参数模块。 | 降低微调和多场景部署成本。 |
| Eval leakage | 训练数据包含评估题或近似样本。 | 会让评估分数失真。 |
| Reward hacking | 模型钻奖励函数漏洞。 | RLHF/RL 训练中常见,需要人工和多指标约束。 |
| Autoscaling | 按流量自动扩缩推理副本。 | 控制成本和 SLA,但 GPU 冷启动和模型加载要重点优化。 |
11. 官方资料与延伸阅读
我优先引用官方文档和项目主页,避免用过时博客作为主依据。具体版本会变化,实际落地前应以项目当前 release notes 为准。
- PyTorch FSDP 文档
- Hugging Face Datasets 文档
- Hugging Face Tokenizers 文档
- Transformers Trainer 文档
- PEFT LoRA 文档
- TRL SFTTrainer 文档
- DeepSpeed Getting Started
- DeepSpeed ZeRO++ 教程
- NVIDIA Megatron-LM
- NVIDIA NeMo 文档
- Axolotl 文档
- Unsloth 文档
- torchtune 文档
- OpenRLHF
- vLLM 项目主页
- Hugging Face TGI 文档
- NVIDIA TensorRT-LLM 文档
- SGLang 文档
- Ray Train 文档
- Kubeflow Pipelines 文档
- MLflow Tracking 文档
- W&B Weave 文档
- EleutherAI lm-evaluation-harness
- OpenAI Evals
- DeepEval 文档
- KServe 文档
- BentoML 文档