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 条经过抽检和版本化的数据。