Ch11 模型微调
概念-SelfInstruct
核心定义
Self-Instruct(自我指令)是一种通过AI模型自动生成训练数据的方法,由华盛顿大学和Allen AI在2022年底提出。其核心思想是:让AI模型自己生成指令-响应对,然后用这些合成数据训练自己或更小的模型。这一方法极大地降低了对人工标注数据的依赖,开启了合成数据驱动模型训练的新范式。
Evol-Instruct是Self-Instruct的重要演进,由Microsoft在WizardLM项目中提出,通过”进化”机制让AI自动提升指令的复杂度和多样性,生成更高质量的训练数据。
2024-2026年间,合成数据已成为AI模型训练的主导范式,几乎所有主流模型都在不同程度上依赖Self-Instruct或其变体。
Self-Instruct工作流程
标准流程
Seed Tasks (种子任务集)
│ 175个手工编写的种子指令
▼
Task Generation (任务生成)
│ 从任务池中随机抽取8个作为few-shot示例
│ LLM生成新的指令-响应对
│ 分两步:先生成指令,再生成响应
▼
Filtering (过滤)
│ 去除低质量、重复的生成结果
│ ROUGE-L相似度过滤
│ 关键词黑名单过滤
▼
Validation (验证)
│ 模型自己生成响应
│ 检查指令是否可执行
▼
Add to Pool (加入任务池)
│ 高质量数据加入任务池
│ 用于下一轮生成
│
└──→ 回到 Task Generation(迭代循环)
核心生成Prompt
指令生成Prompt:
- 从任务池中随机抽取8个任务作为few-shot示例
- 要求模型生成一系列新的、多样化的指令
- 指令覆盖不同类型(分类、生成、问答、总结等)
响应生成Prompt:
- 输入生成的指令
- 要求模型生成高质量的响应
- 输入-输出格式与指令类型匹配
Evol-Instruct:从生成到进化
核心思想
Evol-Instruct(WizardLM, 2023)在Self-Instruct的基础上引入了”进化”概念:
不再只是生成新指令,而是让现有指令变得更复杂、更多样。
进化操作
| 进化类型 | 操作 | 示例 |
|---|---|---|
| 深度进化(In-Depth) | 增加指令的复杂度和深度 | “写一首诗” → “写一首关于秋天的七言绝句,要求押韵且包含隐喻” |
| 广度进化(In-Breadth) | 增加指令的多样性 | 生成与现有指令类型完全不同的新指令 |
| 约束添加 | 添加更多约束条件 | “写一个故事” → “写一个500字的科幻故事,需包含时间旅行悖论” |
| 具体化 | 使模糊指令更具体 | “解释机器学习” → “向一个5岁孩子解释什么是梯度下降” |
| 增加推理 | 添加需要推理的步骤 | “推荐电影” → “基于用户近5年的观影记录,分步骤推理推荐” |
| 多轮对话 | 将单轮指令转为多轮 | “翻译句子” → “在3轮对话中逐步翻译并改进翻译质量” |
Evol-Instruct流程
Initial Instructions (初始指令集)
│
▼
深度进化 (In-Depth Evolving)
│ 5轮深度进化,每轮增加复杂度
│ 使用进化prompt逐步复杂化指令
▼
广度进化 (In-Breadth Evolving)
│ 生成与现有指令类型不同的新指令
│ 确保覆盖更多任务类型
▼
过滤 (Filtering)
│ 去除进化失败的指令
│ 去除与原始指令相同的指令
▼
响应生成 (Response Generation)
│ 为所有进化后的指令生成响应
▼
Evolved Dataset (进化数据集)
代表项目
| 项目 | 机构 | 年份 | 方法 | 数据量 | 关键贡献 |
|---|---|---|---|---|---|
| Self-Instruct | UW/Allen AI | 2022 | 基础Self-Instruct | 52K | 提出框架 |
| Alpaca | Stanford | 2023 | Self-Instruct | 52K | 低成本复现GPT-3.5 |
| WizardLM | Microsoft | 2023 | Evol-Instruct | 70K→250K | 指令进化机制 |
| Orca | Microsoft | 2023 | 复杂推理增强 | 5M+ | 系统消息+解释追踪 |
| Orca 2 | Microsoft | 2023 | 渐进式学习 | 多种 | 小模型推理能力 |
| Phi-1 | Microsoft | 2023 | 教科书质量数据 | 7B tokens | 数据质量>数量 |
| Phi-3 | Microsoft | 2024 | 合成+精选数据 | 3.3T tokens | 小模型大能力 |
| UltraChat | 清华大学 | 2023 | 多轮对话生成 | 1.5M | 对话数据合成 |
| UltraFeedback | 清华大学 | 2023 | 偏好数据合成 | 64K | 对齐数据合成 |
| LIMA | Meta | 2023 | 少而精策略 | 1K | 质量>数量证明 |
Self-Instruct vs Evol-Instruct vs 传统数据
| 维度 | 人工标注 | 基础Self-Instruct | Evol-Instruct | 2026合成数据 |
|---|---|---|---|---|
| 数据质量 | 高 | 中 | 中高 | 高(接近人工) |
| 数据多样性 | 中 | 中高 | 高 | 极高 |
| 数据复杂度 | 中 | 低中 | 高 | 可控制 |
| 生成成本 | 极高 | 低 | 低 | 极低 |
| 可扩展性 | 低 | 高 | 高 | 极高 |
| 领域覆盖 | 受限 | 广 | 广 | 极广 |
| 时效性 | 慢 | 快 | 快 | 实时 |
| 隐私风险 | 有(人类接触) | 低 | 低 | 无 |
| 迭代速度 | 天到周 | 小时 | 小时 | 分钟 |
| 典型数据量 | 1K-100K | 50K-500K | 100K-1M+ | 1M-100M+ |
2026年:合成数据作为主导范式
为什么合成数据成为主导?
- 规模需求:千亿/万亿参数模型需要万亿级训练tokens,人工标注不可能满足
- 成本优势:合成数据成本仅为人工标注的1/100-1/1000
- 质量提升:2026年的合成数据质量已接近甚至部分超越人工标注
- 多样性保障:AI可以生成人类难以想象的数据组合
- 迭代速度:从数据生成到模型训练的全自动化流水线
2026合成数据生态
| 方向 | 2026状态 | 代表方法 |
|---|---|---|
| 指令合成 | 成熟 | Self-Instruct + Evol-Instruct + 多Agent协作 |
| 对话合成 | 成熟 | UltraChat + 角色扮演生成 |
| 偏好数据合成 | 成熟 | UltraFeedback + LLM-as-Judge |
| 代码合成 | 成熟 | 执行反馈驱动的代码生成 |
| 数学推理 | 快速成熟 | 逐步推理验证 + 自洽性检查 |
| 多模态数据 | 快速发展 | 文本到图像/视频/音频的合成描述 |
| 多语言数据 | 快速发展 | 翻译+本地化合成 |
| 领域专业数据 | 发展中 | 专家知识注入 + 领域验证 |
关键挑战
| 挑战 | 描述 | 2026缓解方案 |
|---|---|---|
| 模型崩溃 | 合成数据训练的模型逐渐失去多样性 | 数据混合、多样性约束 |
| 幻觉放大 | 合成数据中的错误被下一代模型放大 | 事实校验、多源验证 |
| 评估污染 | 合成数据可能包含benchmark泄露 | 数据溯源、去污处理 |
| 质量退化 | 多轮合成后数据质量下降 | 质量过滤、人工审核循环 |
| 版权问题 | 合成数据可能包含原始数据痕迹 | 数据审计、合规检查 |
相关笔记
- 第11章 · 模型微调 — 模型微调技术全景
- 模型蒸馏(深挖) — 知识蒸馏深度分析
- 数据增强 (Data Augmentation) — 数据增强技术体系
- 概念-ORPO — 单步对齐方案
- 概念-SimPO — 简化偏好优化
来源
- https://arxiv.org/abs/2212.10560 — Self-Instruct: Aligning Language Models with Self-Generated Instructions (UW/Allen AI, 2022)
- https://arxiv.org/abs/2304.12244 — WizardLM: Empowering Large Language Models to Follow Complex Instructions (Microsoft, 2023)
- https://arxiv.org/abs/2306.02707 — Orca: Progressive Learning from Complex Explanation Traces (Microsoft, 2023)
- https://arxiv.org/abs/2305.11206 — LIMA: Less Is More for Alignment (Meta, 2023)
- https://arxiv.org/abs/2306.11644 — Textbooks Are All You Need (Phi-1, Microsoft, 2023)
- https://arxiv.org/abs/2404.14219 — Phi-3 Technical Report (Microsoft, 2024)
- https://github.com/yizhongw/self-instruct — Self-Instruct官方实现
- https://github.com/nlpxucan/WizardLM — WizardLM官方实现
- https://arxiv.org/abs/2305.11206 — UltraChat/UltraFeedback (清华大学, 2023)