一句话定义
指令数据集(Instruction Dataset)是一大批“指令—回答”配对样本的集合,用来做监督微调(Supervised Fine-Tuning, SFT),让一个只会续写文本的模型学会“别人交代一件事,我该怎么回应”。
一条样本长什么样
最朴素的格式就三个字段:任务描述、可选输入、期望输出。
```json
{
"instruction": "把这句话改得更正式:这事儿我搞不定。",
"input": "",
"output": "这件事我无法处理。"
}
```
带输入的版本:
```json
{
"instruction": "从这段客户留言里抽出产品名称和问题类型,用 JSON 返回。",
"input": "你们那个XX Pro 昨天开始连不上网了,重启也没用。",
"output": "{\"product\": \"XX Pro\", \"issue\": \"无法联网\"}"
}
```
也有多轮形式,把 instruction、output 排成交替的对话。关键点在于:它示范的是“行为”,不是“知识”。同一份知识,用什么样的语气、格式、详略、要不要先反问澄清,全靠这些样本教。
打个比方
预训练像是在图书馆里泡了几年,什么都读过,但没人告诉它“客人进门时你该说什么”。指令数据集就是上岗前的话术手册加带答案的练习册:客户这么问,你就这么答;信息不全时先追问;超出范围时礼貌说明。手册不需要厚到覆盖所有情况,但示范的那几百上千条要足够典型,新人才能举一反三。
和相邻概念的区别
| 概念 | 里面装什么 | 回答的问题 |
|---|---|---|
| 预训练语料(Pre-training Corpus) | 网页、书籍、代码等原始文本 | “语言和世界长什么样” |
| 指令数据集(Instruction Dataset) | 指令 + 期望回答 | “被要求做事时该怎么做” |
| 偏好数据(Preference Data) | 同一问题的好坏两个回答 | “哪个回答更受欢迎” |
| 评测集(Evaluation Set) | 只有题目、或题目加标准答案 | “现在到底行不行” |
四者容易混,尤其是指令数据集和评测集:格式几乎一样,用途完全相反。拿评测题去微调,分数会很好看,实际能力没变——这叫数据泄漏,是常见事故。
好数据集难在哪
难点不是“写答案”,而是“写人真正想要的答案”。一份能用的指令数据集通常有几个特征:任务类型够杂(改写、摘要、抽取、分类、写代码、闲聊、拒答都有一点);同一意图有多种问法(口语的、书面语的、带错别字的);答案风格统一(都简洁,或都详尽,别一半客服腔一半学术腔);还有边界样本——信息不足时该反问、该拒绝的,得明确示范,否则模型会硬编。实践中常见做法是人写一批种子样本,再用模型批量扩写候选、人工筛掉不合格的。规模不是唯一变量,重复和单一模板堆出来的量,收益很快见顶。
对从业者的意义
做微调时,最值得投入的是数据设计和质检,而不是调参。检查清单:指令是否覆盖真实使用场景、答案是否有事实错误、格式是否一致、有没有和评测集重叠。具体工具链和格式规范各家不同,以官方页面为准。
对普通职场人的意义
模型回答为什么总带点客服腔、为什么爱用“首先其次最后”、为什么有时答非所问——一半答案在指令数据集里。它教的不是聪明,是习惯。反过来说,如果你要做一个内部专用助手,把公司真实的问法和期望答复整理成几百条干净的问答对,往往比换一个更大的模型更有效。
