端到端微调流水线:从数据到 SFT 到 DPO 到服务


文档摘要

端到端微调流水线:从数据到 SFT 到 DPO 到服务 本节摘要:一个用你自己的数据训练的 8B 模型,在你自己的偏好上做 DPO 对齐,量化,投机解码,以可度量的「美元/百万 token」服务。2026 年的开源栈是 Axolotl v0.8、TRL 0.15、Unsloth 做迭代、GPTQ/AWQ/GGUF 做量化、vLLM 0.7 配 EAGLE-3 做服务。本节要求你把整条流水线可复现地跑通——YAML 进,服务端点出——并在 2026 模型开放框架(MOF)下发布模型卡。你会学到五阶段流水线(数据/SFT/DPO/量化/服务),消融是交付物,可复现性是底线。 对应原课程:Phase 19 · Lesson 07 · (原英文 )。

端到端微调流水线:从数据到 SFT 到 DPO 到服务

本节摘要:一个用你自己的数据训练的 8B 模型,在你自己的偏好上做 DPO 对齐,量化,投机解码,以可度量的「美元/百万 token」服务。2026 年的开源栈是 Axolotl v0.8、TRL 0.15、Unsloth 做迭代、GPTQ/AWQ/GGUF 做量化、vLLM 0.7 配 EAGLE-3 做服务。本节要求你把整条流水线可复现地跑通——YAML 进,服务端点出——并在 2026 模型开放框架(MOF)下发布模型卡。你会学到五阶段流水线(数据/SFT/DPO/量化/服务),消融是交付物,可复现性是底线。

对应原课程:Phase 19 · Lesson 07 · end-to-end-fine-tuning-pipeline(原英文 phases/19-capstone-projects/07-end-to-end-fine-tuning-pipeline/docs/en.md)。

学习目标

阅读完本节,你应当能够:

  1. 把微调流水线拆成五阶段:数据(去重/质量/脱敏/污染检查)、SFT、DPO 或 GRPO、量化、服务。
  2. 用 Axolotl YAML 在 8xH100 上跑 ZeRO-3 + Flash Attention 3 + 序列打包的 SFT。
  3. 用 TRL 0.15 跑 DPO 或 GRPO(带可验证奖励),扫 beta 超参。
  4. 产出 GPTQ-INT4-Marlin、AWQ-INT4、GGUF-Q4_K_M 三种量化,记录体积与吞吐。
  5. 用 vLLM 0.7 + EAGLE-3 投机解码服务,度量 batch 1/8/32 的 token/s、接受率、美元/百万 token。
  6. 在 base/SFT-only/SFT+DPO/SFT+GRPO 上跑 lm-eval、RewardBench-2、MT-Bench-v2、MMLU-Pro,产出消融表与 2026 MOF 模型卡。

一、问题与直觉

2026 年每个认真的 AI 团队都备着一条微调流水线。不是因为他们要发前沿基座,而是因为下游适配——领域 SFT、针对标注偏好的 DPO、为投机解码蒸馏草稿、用 EAGLE-3 服务——才是可度量收益所在。Axolotl v0.8 处理多 GPU SFT 配置;TRL 0.15 处理 DPO 与 GRPO;Unsloth 让你单 GPU 快速迭代;vLLM 0.7 配 EAGLE-3 把解码吞吐推高 2~3 倍且无质量损失。工具能用,功夫在 YAML、数据卫生、评估纪律里。

你要把一个 8B 基座(Llama 3.3、Qwen3 或 Gemma 3)经 SFT 再 DPO,跑在任务专属数据上,量化,服务,并在 lm-evaluation-harness、RewardBench-2、MT-Bench-v2、MMLU-Pro 上度量增益。你要在 2026 MOF 下产出模型卡。重点是可复现——一条命令端到端重跑整条流水线。

二、从零实现

流水线五阶段。数据:去重(MinHash/Datatrove)、质量过滤(Nemotron-CC 风格分类器)、PII 清洗、对公共基准的切分卫生检查。SFT:Axolotl YAML,8xH100 上 ZeRO-3,余弦调度,序列打包,2~3 epoch。DPO 或 GRPO:TRL 配置,1 epoch,偏好对(人工标注或模型裁判),调 beta。量化:GPTQ + AWQ + GGUF,部署灵活。服务:vLLM 0.7 配 EAGLE-3 投机头(或 SGLang 配 SpecForge),K8s 部署,HPA 按 queue-wait。

污染检查是承重的(CI 门):

def contamination_check(val_split, benchmarks): val_mh = MinHash(val_split) # 验证集 MinHash for b in benchmarks: # MMLU-Pro / MT-Bench / RewardBench overlap = val_mh.jaccard(MinHash(b.test)) assert overlap < 0.01, f"污染: {b.name} 重叠 {overlap}" return True

消融是交付物:在三个任务专属基准上对比 SFT-only vs SFT+DPO vs SFT+GRPO。服务指标:batch 1/8/32 的 token/s、EAGLE-3 接受率、美元/百万 token。安全评估:Llama Guard 4 通过率。模型卡:偏差评估、可复现种子、数据许可。

EAGLE-3 接受率(投机解码的关键数):

acceptance = accepted_draft_tokens / total_draft_tokens # 0.74 意味着约 3/4 的草稿 token 被目标模型接受,解码吞吐近 2~3x

三、架构与技术栈

  • 数据:Datatrove 去重,Nemotron-CC 质量分类,Presidio 脱敏。
  • 基座:Llama 3.3 8B、Qwen3 14B 或 Gemma 3 12B。
  • SFT:Axolotl v0.8,ZeRO-3,Flash Attention 3,序列打包。
  • 偏好调优:TRL 0.15 做 DPO 或 GRPO;Unsloth 做单 GPU 迭代。
  • 量化:GPTQ(Marlin)、AWQ、GGUF(via llama.cpp)。
  • 服务:vLLM 0.7 + EAGLE-3(或 SGLang 0.4 + SpecForge)。
  • 评估:lm-evaluation-harness、RewardBench-2、MT-Bench-v2、MMLU-Pro。
  • 安全评估:Llama Guard 4、ShieldGemma-2。
  • 基础设施:Kubernetes + NVIDIA device plugin,HPA on queue-wait。
  • 可观测性:W&B 训练,Langfuse 推理。

四、可复用产物

outputs/skill-finetuning-pipeline.md 描述交付物:一条命令把数据经 SFT、DPO、量化、服务、评估跑完,产出模型卡 + 服务端点。评分量表:

权重 标准 度量方式
25 相对基座的评估增量 目标任务上的度量增益(MMLU-Pro、MT-Bench-v2、任务专属)
20 流水线可复现性 同种子一条命令端到端重跑
20 数据卫生 去重率、PII 覆盖、污染检查全绿
20 服务效率 bs=1/8/32 的 token/s、EAGLE-3 接受率、美元/百万 token
15 模型卡 + 安全评估 2026 MOF 完整性 + Llama Guard 4 通过率
100

一次典型运行:

$ ./pipeline.sh config/llama3.3-8b-domainX.yaml [data] 300k deduped, 12k filtered, 280k accepted (seed=7) [SFT] 3 epochs, 8xH100, 6h12m, val loss 1.42 -> 1.03 [DPO] 1 epoch, beta=0.08, 4xH100, 1h40m [quant] GPTQ-INT4 4.6 GB, AWQ-INT4 4.8 GB, GGUF-Q4_K_M 5.1 GB [serve] vLLM 0.7, EAGLE-3 acceptance 0.74, p99 126ms @ bs=8 [eval] MMLU-Pro +3.2, MT-Bench-v2 +0.41, RewardBench-2 +0.08 [card] model-card.md generated under 2026 MOF

五、框架对比

Axolotl 是统一 YAML 驱动的训练器,SFT/DPO/蒸馏一致,适合生产;Unsloth 单 GPU 迭代最快,适合实验;TRL 是偏好调优参考(DPO/GRPO/PPO)。服务侧,vLLM 0.7 + EAGLE-3 是吞吐标杆,SGLang 0.4 + SpecForge 是备选,结构化输出更强。量化上,GPTQ-Marlin 推理最快、AWQ 精度略优、GGUF 适配 llama.cpp 端侧。本节建议主路径用 Axolotl + TRL + vLLM/EAGLE-3,把三量化都产出以备不同部署目标。

六、练习

  1. 偏好方法对比:在同一任务基准上跑 SFT-only vs SFT+DPO vs SFT+GRPO,报告哪种赢、赢多少。
  2. 换基座:把 Llama 3.3 8B 换成 Qwen3 14B,在质量匹配下度量美元/百万 token。
  3. 接受率差异:度量 EAGLE-3 在领域数据 vs 通用 ShareGPT 上的接受率,报告差值及其对延迟预算的含义。
  4. 污染注入:注入 1% 污染(把 MMLU-Pro 答案漏进训练数据),重跑评估,看 MMLU-Pro 准确率如何不真实飙升;建一个污染检查 CI 门抓住它。
  5. LoRA 替全量:加 LoRA SFT 作为全量微调的替代,度量在 10 倍低显存下的质量差距。

本节要点回顾

  1. 五阶段:数据(去重/质量/脱敏/污染)→ SFT → DPO/GRPO → 量化 → 服务。
  2. 开源栈成熟:Axolotl v0.8 + TRL 0.15 + Unsloth + GPTQ/AWQ/GGUF + vLLM 0.7/EAGLE-3。
  3. 污染检查承重:MinHash 对 MMLU-Pro/MT-Bench/RewardBench 检测泄漏,做 CI 门。
  4. 消融是交付:SFT-only vs SFT+DPO vs SFT+GRPO 在三任务基准上的表。
  5. 投机解码:EAGLE-3 接受率 0.74 时吞吐近 23x,无质量损失。
  6. 可复现:一条命令、同种子端到端重跑,2026 MOF 模型卡记录数据/代码/许可/种子/SHA。

下一节,我们把 RAG 推向受监管的垂直领域——构建一个面向法律/临床/保险的生产级聊天机器人,通过金集、红队与漂移仪表盘。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U