章节摘要:SFT 的上限在动手训练之前就被数据决定了——这是后半程最值得花时间的一章。2.1 节定义指令数据的形态:从单轮问答到多轮对话再到带系统提示的完整消息结构,给出 JSONL 的标准样例与字段约定(这些约定将被第 4 章的 chat template 直接消费)。2.2 节讲开源路线:以质量、规模、许可证、语言四把尺子挑选 OpenHermes/UltraChat/SmolTalk 一类指令集,再过一遍去重与质量过滤的清洗管线(附可跑代码)。2.3 节讲自造路线:种子指令 → 强模型生成 → 质量过滤的蒸馏回环,这也是中文语料的主产线(第 8 章的前置)。两条路线殊途同归:产出一份数万条、干净、格式统一的 messages 列表。
阅读完本章,你应当能够:
(文字流程图) B ──▶ 统一的 messages JSONL·约数万条 统一的 messages JSONL·约数万条 ──▶ 第 3 章 SFT 训练的燃料
一句话金句:模型只背它见过的答案——数据是 SFT 唯一真正的课程表。
消息结构定义、三种形态的 JSONL 样例、字段约定与常见脏数据。
四把尺子;主流开源集横向对比表;去重与质量过滤管线代码。
蒸馏回环三步走;管线示意代码与成本估算;中文语料方案预告(衔接第 8 章)。
2.1 形态(定义"干净的数据长什么样") │ ├──────────────┐ ▼ ▼ 2.2 开源路线 2.3 自造路线 (两条互斥可并行的取数路径) │ │ └──────┬───────┘ ▼ 统一的 messages JSONL ──► 3.1 的掩码构造直接按 role 分界
前置知识:第 1 章验收过的基座与分词器(本章脚本只用到分词器做长度统计);基本的 pandas/datasets 操作。
为后续奠定基础:2.1 的 messages 结构是第 4 章 chat template 的输入协议——模板只做"序列化",字段语义在本章定死;2.3 的蒸馏管线是第 8 章中文改造的数据主产线;本章产出的 data_sft/train.jsonl 是第 3 章训练脚本的直接输入。