AI微调数据集该怎么制作

AI优尚网 AI 实战应用 2

AI微调数据集该怎么制作:从零到精品的完整指南

目录导读

  1. 为什么数据集是AI微调的命门?
  2. 数据采集:从哪里找高质量素材?
  3. 数据清洗:剔除“垃圾”让模型更聪明
  4. 数据标注:给AI装上“理解”的翅膀
  5. 数据格式:像JSONL这样的“通用语言”
  6. 数据量&平衡:多少才算够?
  7. 数据增强:无中生有的魔法技巧
  8. 质量评估:你的数据集真的合格吗?
  9. 常见问题Q&A

AI微调数据集该怎么制作-第1张图片-AI优尚网

为什么数据集是AI微调的命门?

做过AI模型微调的人都知道一句行话:“Garbage in, garbage out.” 你输入什么样的数据集,模型就输出什么样的结果,如果你需要让一个通用大模型(比如Llama、ChatGLM、Qwen)在特定领域(如医疗、法律、电商客服)表现优异,光靠基础预训练远远不够——必须通过微调(Fine-tuning)让模型“学会”你的业务语言。

而微调的核心,就是数据集,它不是简单的“问题+答案”堆砌,而是一套经过精心设计的训练样本,决定了模型能否理解你的指令、输出格式是否规范、领域知识是否准确,根据www.jxysys.com上的实战案例,很多团队花80%的时间在数据准备上,只有20%的时间在真正训练,把数据集做好,微调就成功了一大半。


数据采集:从哪里找高质量素材?

1 自有业务数据(最宝贵)

如果你是做垂直领域,企业内部的历史对话记录、工单、知识库、产品文档、FAQ都是金矿,注意脱敏处理(去除用户隐私、身份证、手机号等)。

2 公开开源数据集

  • Hugging Face Datasets:全球最大的数据集仓库,包含中文、英文多领域。
  • GitHub:搜索“fine-tuning dataset”、“instruction tuning dataset”等关键词。
  • 百度飞桨、ModelScope:国内平台,有大量中文专用数据集。

3 爬取与合成

  • 合规爬取特定网站(如法律判决文书、医学指南),必须遵守robots.txt和版权法规。
  • 用大模型自动生成“伪数据”:给一个种子问题,让GPT-4或文心一言生成10个变种回答,然后人工校验,这种方式能快速扩大规模,但需要严格过滤幻觉。

4 众包平台

  • 国内:百度众包、阿里众包、京东众包。
  • 海外:Amazon Mechanical Turk、Scale AI。 众包适合需要人工标注的任务,但成本较高,且需要设计清晰的标注规范。

数据清洗:剔除“垃圾”让模型更聪明

原始数据往往杂乱无章,直接喂给模型会污染其行为,常见清洗步骤:

1 去重

使用MinHash或SimHash算法,去除完全重复或语义高度相似(>95%相似度)的样本,例如对话中“你好”出现1000次,只保留几个作为多样性。

2 去除低质量内容

  • 规则过滤:长度<10字的样本、含有乱码(如“�”)、全英文标点混用、过多表情符号等。
  • 关键词过滤:广告、色情、暴力、政治敏感词汇。
  • 语言检测:确保目标语言(中文)占比>90%。

3 格式统一

  • 统一换行符(\n)、空格。
  • 中文标点标准化:英文逗号→中文逗号,英文括号→中文括号。
  • 去除HTML标签、Markdown残留。

4 语义过滤

使用一个简单的文本分类模型(如fastText)或大模型API,打分判断“是否有意义/是否清晰”,剔除逻辑混乱、前后矛盾的样本。


数据标注:给AI装上“理解”的翅膀

1 指令微调(Instruction Tuning)格式

这是目前最主流的微调方式,样本结构为:
Instruction(指令) + Input(输入) + Output(输出)

{
  "instruction": "请总结以下文章的核心内容,不超过50字。",
  "input": "人工智能正在改变各行各业,其中医疗领域尤其显著……",
  "output": "AI在医疗领域带来变革,如智能诊断和药物研发。"
}

2 对话格式(多轮)

用于训练对话模型,

[
  {"role": "user", "content": "你好"},
  {"role": "assistant", "content": "你好!有什么可以帮助你的?"},
  {"role": "user", "content": "今天天气怎么样?"},
  {"role": "assistant", "content": "对不起,我无法获取实时天气数据,建议你打开天气App查看。"}
]

3 标注工具推荐

  • Label Studio:开源,支持文本、图像、语音标注,可自托管。
  • Doccano:轻量级文本标注,适合序列标注和文本分类。
  • Prodigy:付费,但标注效率极高,支持主动学习。

4 标注质量控制

  • 每个样本至少2人标注,取多数或仲裁。
  • 设计“黄金标准样本”:插入已知正确答案的样本,检测标注员准确率。
  • 定期抽检,标注一致性(Cohen's Kappa)应>0.8。

数据格式:像JSONL这样的“通用语言”

绝大多数微调框架(LLaMA-Factory、Firefly、DeepSpeed)都接受 JSONL 格式,每行一个JSON对象,节约内存,便于流式读取。

示例(指令微调):

{"instruction": "用一句话解释什么是云计算", "input": "", "output": "云计算是通过网络按需提供计算资源和服务的技术。"}
{"instruction": "翻译以下英文到中文", "input": "The quick brown fox jumps over the lazy dog.", "output": "敏捷的棕色狐狸跳过了懒惰的狗。"}
  • 注意字段名需与框架配置一致,对于对话模型,常见格式为 {"conversations": [...{"from":"human","value":"..."},{"from":"gpt","value":"..."}]}
  • 保存为UTF-8编码,无BOM头。

转换工具:使用Python的jsonlines库,或Hugging Face Datasets的from_json方法。


数据量&平衡:多少才算够?

1 数量参考

  • 小规模微调(LoRA/Adapter):500~5000条高质量数据即可看到显著效果,很多论文显示,2000条精心标注的指令比20000条粗制滥造的更有用。
  • 全参数微调:需要5万~50万条,根据模型参数量和任务复杂度而定。
  • 规则:优先保证多样性,其次追求数量,如果每个样本都不一样,2000条可能覆盖100个场景;但如果2000条全是同一个意图,模型就只会回答那个问题。

2 类别平衡

  • 例如你训练客服机器人,需要“退货”、“换货”、“物流查询”、“投诉”等类别均匀分布,退货”占80%,模型会倾向于把其他问题也回答成退货。
  • 使用过采样(复制少数类)或欠采样(丢弃部分多数类),或者用数据增强补全少数类。

3 难度分布

  • 包含简单、中等、困难样本,简单样本教基础格式,困难样本提升模型推理能力,比例建议:简单30%,中等50%,困难20%。

数据增强:无中生有的魔法技巧

当数据量不足时,可以用以下方法扩充:

1 同义改写

用大模型改写现有的问答对,例如给GPT-4指令:“请将以下问题用不同的中文表达方式重写3个版本,保持语义不变:'怎么退换商品?'”
注意:不要改变答案的标准性。

2 随机Mask/替换

对输入句子中20%的词语进行替换(同义词),或删除/插入一些无关词,但要确保核心信息不丢失。

3 反向翻译

中文→英文→中文,借助翻译API,先英译中,再中译英,得到略有差异的句子,适合长文本。

4 模板填充

定义多个模板,

  • 模板A:“请帮我找一下关于[主题]的资料。”
  • 模板B:“你能介绍一下[主题]吗?”
    将实体填入不同模板,自动生成多样化的指令。

质量评估:你的数据集真的合格吗?

微调前,一定要对数据集做一次全面体检。

1 统计指标

  • 总样本数、平均长度、最大/最小长度。
  • 类别分布饼图。
  • 字词重复率(警惕过度重复)。
  • 字段填充率(检查input是否空字符串等)。

2 人工抽样验证

随机抽取100~200条样本,人工逐一检查:

  • 指令是否清晰?
  • 输出是否正确、完整、无偏见?
  • 格式是否符合要求?

3 小模型预训练快速反馈

用一个很小的模型(如TinyLlama 1B)在你的数据集上训练1个epoch,然后手动测试几个问题,如果回答质量明显偏离预期,说明数据可能有问题。

4 对抗测试

故意输入错别字、反问、打断等边缘情况,看数据集是否覆盖了这些场景,如果没有,补充对应的样本。


常见问题Q&A

Q1:没有领域数据怎么办?
A:可以采用“生成-过滤”策略,先用通用大模型根据你写的10~20个种子问题生成大量样本,然后人工逐一审核,可以去www.jxysys.com查找行业公开数据集,或购买垂直领域数据包。

Q2:数据集需要多少条才够?
A:对于简单任务(如文本分类、情感分析),1000条高质量数据往往足够,对于复杂推理(如合同审查、数学解题),可能需要5000条以上,建议先小规模测试,看效果再扩展。

Q3:数据集中的错误会不会导致模型学坏?
A:会,少量错误(<5%)可能导致模型产生幻觉或偏见,因此数据清洗和标注质量控制必须严格执行,如果发现错误,可以用“修正-重训练”的方式逐步修复。

Q4:微调后模型输出格式混乱,怎么办?
A:检查数据集中输出格式是否统一,所有输出必须以句号结束,不要混用英文标点,最好在指令中明确格式要求,请按照以下JSON格式输出:{'answer':'...'}”。

Q5:用外文数据集微调中文模型有效吗?
A:效果很差,不同语言的知识表达方式不同,中文模型需要中文语境的数据,建议优先用纯中文数据集,如果必须使用外文数据,需要高质量翻译并人工润色。

Q6:数据集是否需要包含多轮对话?
A:如果你的模型用于单轮问答(如知识库检索),单轮即可,如果是聊天机器人或客服,建议包含至少20%的多轮对话数据,让模型学会上下文记忆。

Q7:如何避免数据集泄漏隐私?
A:使用正则替换(如身份证号正则\d{18}替换为)、NER模型检测敏感实体、人工审核,切勿在公共平台分享未脱敏的数据。


制作AI微调数据集没有“银弹”,它更像是一门手艺活,从采集到清洗,从标注到评估,每一个环节都需要你根据具体业务场景反复迭代。高质量的小数据集胜过垃圾大数据集,按照本文的步骤,一步步打磨你的数据,你的AI模型一定会给你惊喜的回报。

Tags: 数据制作方法

PreviousAI微调怎样避免数据泄露

NextThe current is the latest one

Sorry, comments are temporarily closed!