第 02 课 · 选对教材

SFT 进阶:数据工程

算法往往不是瓶颈。去重、去污染、难度配比和超参,决定 的天花板。

MAGPIESelf-InstructIFDTülu 3Pareja

Archify · dataflow

第一次 SFT 的数据怎么进模型

原始 alpaca 必须变成 role/content 列表,SFTTrainer 才认。

原始

清洗

格式

训练

产出

alpaca_gpt4_zh

指令对

第 1 课

质量过滤

短回复丢掉

>30 字

划分

95 / 5

seed=42

messages

role + content

唯一保留列

ChatML

Qwen 模板

掩码损失

只学 assistant

SFT 核心

SFTTrainer

QLoRA 一步

TRL

LoRA adapter

约 2% 参数

可接着 DPO

10 条人工看

对照基座

  • alpaca_gpt4_zh → instruction/output
  • alpaca_gpt4_zh → 同库划分
  • 质量过滤 → 转 role
  • 划分 → train/eval
  • messages → 套模板
  • ChatML → mask=1 仅助手
  • messages → 只留这一列
  • 掩码损失 → 损失
  • SFTTrainer → 保存
  • LoRA adapter → 加载再生成

SFTTrainer 认什么

  • 只保留 messages 列,其他列删掉
  • 每条是 user / assistant 的 role-content 列表

掩码一旦错

  • 如果 user 的字也算损失,模型会学复述问题
  • 格式错了训练不会报错,输出却会变怪

指令数据从哪来

合成数据的进化

  1. 1

    Self-Instruct

    175 条人工种子,让模型扩写成任务。Alpaca 的 52K 就走这条路。多样性受种子限制。

  2. 2

    UltraChat

    规模来到百万级多轮对话,200K 精简版常被教学使用。质量靠后续过滤。

  3. 3

    MAGPIE

    不对齐种子。只把 <|im_start|>user\n 喂给已经对齐的模型,让它自己补全一条指令,再回答。快、便宜、多样性来自模型自身分布。

MAGPIE 对上 Self-Instruct

MAGPIE

  • 不需要种子
  • 一次前向就能吐指令
  • 多样性高
  • 成本低

Self-Instruct

  • 需要 175 条种子
  • 多次 API 调用
  • 多样性被种子框住
  • 依赖外部模型费用

清洗比采集更重要

三条流水线,缺一不可

去重

别让模型把同一句话读一百遍

精确匹配 → n-gram / MinHash 近重复 → 嵌入相似度。重复会让风格塌缩。

去污染

别把考题漏进训练集

对 、、、IFEval 做重叠检查。否则分数是背题,不是学会。

难度

IFD:指令有多需要这个回复

太易无效,太难学不会。按难度分层,保证各档都有。

Tülu 3 式配比

开源黄金标准不是单一领域堆料,而是有意识的混合。拖动看「偏科」时缺了什么。

Tülu 3 的大致配比。总和不必精确 100,看相对比例。偏科时海报会提醒你。

通用对话30%
指令跟随15%
数学15%
代码15%
安全10%
知识10%
写作5%

配比接近开源实践:通用打底,数学/代码/安全各占一席。

超参:先拧对学习率

学习率(最敏感的旋钮)

方法推荐范围备注
全参数 1e-5 ~ 5e-5偏小更安全,防灾难性遗忘
1e-5 ~ 5e-5与全参类似
1e-4 ~ 3e-4后通常要更大

cosine 调度 + warmup 占 10%。对最终性能的影响超过其他单一超参。

批量、轮数、长度、LoRA

旋钮建议原因
16~324~8 太吵,64+ 可能要配更大 LR
Epoch高质量 1~2>3 轮几乎总会过拟合
序列长度覆盖 95% 数据显存 ∝ batch × 长度²
r16~64,起手 32α=2r,目标尽量全部线性层
dropout0.05~0.1数据少时调高

让模型当考官,但你要抽查

开放生成怎么打分

标准答案不够用时,请一个更强的裁判

数学可以对错,写作只能比较。 用固定量规给有用性、准确性、简洁、安全打分。它快,但会偏爱更长、更谄媚的回复——所以抽 20 条人工复看。

第 2 课带走的话

  1. 01质量 > 数量;多样性 = 任务 × 格式 × 难度。
  2. 02没有去污染的高分,不可信。
  3. 03先于其他超参。
  4. 04用梯度累积凑,不要为了显存把 batch 砍到 4。
  5. 05裁判模型是助手,不是真理。

本课两道小题

第 2 课

LIMA 用 1,000 条精选数据,效果接近当时用 5 万条训练的模型。这说明什么?

表层对齐假说。

第 2 课

同样做 LoRA,学习率该怎么选?

QLoRA 通常要更大。