← 返回题库
训练与微调中等

SFT 数据怎么构造?多少条够用?

#SFT 数据#指令格式#数据量#质量优先

题目

SFT 阶段数据该如何构造?多少条够用?质量与数量如何权衡?

参考答案

SFT 数据格式:指令-回答对,常见格式:

  • Alpaca 格式{instruction, input, output}
  • ShareGPT 格式:多轮对话 {conversations: [{from, value}]}
  • OpenAI ChatML{role, content} 角色-内容对。

数据来源

  1. 人工编写:质量最高,但成本高(LIMA 1000 条人工数据为例)。
  2. Self-Instruct:用强模型(如 GPT-4)生成指令-回答对,量大但需过滤。
  3. 开源数据集:Alpaca、FLAN、ShareGPT、OpenAssistant 等。
  4. 业务数据:自家应用真实对话日志(脱敏后)——最贴近生产分布。

多少条够用

  • 少而精:LIMA 用 1000 条高质量数据 SFT 即可让 65B 模型表现接近 GPT-4,证明”质量 > 数量”。
  • 中等规模:1 万–10 万条是常见区间,覆盖任务多样性。
  • 大规模:FLAN v2 百万级,追求任务覆盖广度。
  • 关键结论1000 条高质量 >> 10 万条噪声。少而精往往优于多而杂。

质量要点

  1. 多样性:覆盖任务类型(QA、写作、推理、代码、角色扮演)、难度、长度。
  2. 正确性:答案必须正确,错误答案会”教坏”模型。
  3. 风格一致:回答风格统一(如都用 Markdown、都简洁/详细),避免模型学到混乱模式。
  4. 指令清晰:指令部分明确,避免歧义。
  5. 拒绝样本:加入合理的拒绝数据(违规、超范围问题),教模型学会说”不”。
  6. CoT 数据:数学/推理任务要有思维链,而非只给最终答案。

训练技巧

  • epoch 控制:1–3 epoch,过多易过拟合(只会照搬 SFT 风格)。
  • 学习率:比预训练小一个量级。
  • 损失屏蔽:只对回答部分算损失,不对指令算(避免模型学”背指令”)。
  • 数据配比:按任务类型加权,避免某类过多淹没其他。

面试加分点

  • LIMA 论文”对齐只需少量高质量数据”是 SFT 的关键认知——颠覆了”数据越多越好”的直觉。
  • 强调 SFT 主要学的是格式与风格,而非知识(知识来自预训练)——这解释了为何少量数据即可。
  • badcase 驱动的迭代:线上 badcase → 补 SFT 数据 → 重训 → 评测,是生产 SFT 的核心循环。

出处:LIMA 论文《Less Is More: Aligning the Data Quality Over Quantity》、SFT 面经。

内容来源

整理自大模型 SFT 面经与 LIMA 论文

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。