PERSONAL AI LAB从零开始,真正训练自己的模型30 天实验计划
MODULE 05 · PROGRESS 0%

Dataset Engineering:模型不是被“提示词”训练出来的,是被数据塑造的

学会设计、采集、清洗、去重、分层和版本化 SFT 数据。

5.1 数据先于训练

很多微调失败不是参数问题,而是数据没有明确教模型一种稳定行为。例如你想让模型写深度 PRD,却给它混入大量空泛问答、营销文案和短回答,模型学到的信号就会互相冲突。第一步不是“多收集”,而是定义目标行为。

5.2 定义行为 Rubric

在造数据之前写评分标准:结构完整 20 分、第一性分析 20 分、可执行性 20 分、风险与边界 20 分、跨文件一致性 20 分。以后每条训练样本都尽量接近高分答案。没有 Rubric,数据团队无法判断什么叫“高质量”。

5.3 SFT 格式

现代指令模型常用 messages 格式:system、user、assistant。训练时会套用模型自己的 chat template。不要把不同模型的特殊 token 手工混用。数据文件推荐 JSONL,一行一条,便于流式读取和定位坏样本。

5.4 清洗与去重

至少检查空字段、乱码、极短答案、重复样本、模板污染、错误事实、泄露系统提示词。重复数据会让模型过度记忆某些格式。对于领域数据,质量通常比盲目堆数量更重要。

5.5 Train / Validation / Test

训练集用于更新权重;验证集用于训练过程中的选择和早停;测试集最后一次才拿出来判断泛化。最重要的是测试问题不能和训练样本高度重复,否则你测到的是记忆,不是能力。

5.6 数据版本

每次改变清洗规则或增删样本都生成新版本,例如 dataset-v0.1、v0.2。训练结果必须绑定 data_version。未来你会发现数据版本管理比改模型名字更重要。

本课最小代码 / 结构

{"messages":[
  {"role":"system","content":"你是一名产品架构师"},
  {"role":"user","content":"设计一个AI写作工作台"},
  {"role":"assistant","content":"先定义目标用户与核心闭环……"}
]}

动手实验:不做完不算学完

常见错误 / 排错提醒

  • 把 AI 自动生成的 1 万条未经人工检查内容直接训练
  • 测试集来自训练集改写
  • 训练数据里答案长度远低于实际使用需求

本课验收产物

EXP-003-dataset-v0.1:至少 100 条经过抽检和版本化的数据。