作者: Jakub Rusinowski · 最后更新: 2026年7月10日
选对数据集是一次成功微调运行中最重要的单一因素。本指南用一个实用的决策框架帮你拨开困惑。
选对数据集是一次成功微调运行中最重要的单一因素。本指南用一个实用的决策框架帮你拨开困惑。
| 类别 | 它是什么 | 何时使用 |
|---|---|---|
| 预训练 | 海量规模的原始文本(网页、书籍、代码) | 从零训练模型——需要 1000 亿+ token 和严肃的 GPU 集群 |
| 指令 | 教模型遵循指令的提示 + 回复对 | 最常见的微调目标——把基础模型变成助手 |
| 偏好 | 用于对齐的选中/拒绝回复对(RLHF/DPO) | 在 SFT 之后,当你想让回复更有帮助、更安全或风格更对齐时 |
| 代码 | 源代码、编程问题及解答 | 构建编程助手或提升模型的编程能力 |
| 评测 | 衡量模型能力的基准(不用于训练) | 测试和比较模型——微调后运行它们以衡量提升 |
| 你的目标 | 类别 | 首选 |
|---|---|---|
| 打造有帮助的聊天助手 | 指令 | Stanford Alpaca、ShareGPT 52K、OpenHermes 2.5 |
| 教授复杂推理 | 指令 | WizardLM Evol Instruct 70k |
| 小而强的助手 | 指令 | LIMA (1k)、Smoltalk |
| 构建编程助手 | 代码 | Magicoder-OSS-Instruct、CodeFeedback |
| 预训练代码模型 | 代码 | The Stack v2 |
| 与人类偏好对齐 | 偏好 | Anthropic HH-RLHF、UltraFeedback |
| 快速本地 DPO 实验 | 偏好 | DPO Mix 7K |
| 多轮对话质量 | 指令 | ShareGPT 52K |
| 为你微调的模型做基准测试 | 评测 | MMLU(知识)、HumanEval(代码)、MT-Bench(聊天) |
并非所有数据集都平等。以下是承诺采用之前评估一个数据集的方法:
好信号:
警告信号:
LIMA 论文(2023)有一个惊人发现:一个仅在 1000 个精心策划的样本上微调的模型,能与在数百万个嘈杂数据集样本上训练的模型相媲美。
关键洞见:表层对齐是浅的。模型在预训练中已具备世界知识。微调教的是*格式和风格*,而非新事实。一个小而高质量的数据集(200–1000 个样本)常胜过一个大而嘈杂的(10 万+)。
实用规则: 从 500–2000 个特定于你任务的高质量样本开始。只有在高质量样本用尽时才扩大规模。
有时最好的数据集尚不存在。这里有一个最小可行方法:
1. 精确定义你的任务——"某 SaaS 产品的客户支持"胜过"有帮助的助手"
2. 收集 200–500 个样本——真实用户问题 + 理想答案,或用 Claude/GPT-4 合成
3. 使用 JSONL 格式:
{"messages": [{"role": "user", "content": "How do I reset my password?"}, {"role": "assistant", "content": "Click 'Forgot Password' on the login page..."}]}
{"messages": [{"role": "user", "content": "Where can I find my invoice?"}, {"role": "assistant", "content": "Invoices are in Settings → Billing → Invoice History."}]}
4. 在失败案例上迭代——一次微调运行后,看模型在哪些类型的查询上出错,为那些情况添加更多样本。
5. 与通用数据混合——将你的自定义数据与 OpenHermes 2.5 之类的通用指令数据集按 50/50 混合,以防灾难性遗忘。