Skip to content

📊 数据集构建与标注

没有高质量数据,微调就是浪费时间——数据决定了模型的上限

需要多少数据

数据类型最低数量推荐数量
指令微调(对话/问答)200 条1000+ 条
分类任务500 条2000+ 条
文本生成(风格模仿)500 条2000+ 条
复杂推理(法律/医疗)500 条3000+ 条

数据太少(<100 条),模型学不到东西,甚至反而变差。


数据格式

微调数据标准格式是 Alpaca 格式:

json
[
  {
    "instruction": "审查以下合同条款是否有法律风险",
    "input": "本合同签订后,任何一方不得以任何理由终止合同。",
    "output": "该条款存在以下风险:1. '任何理由'过于绝对...建议修改为..."
  },
  {
    "instruction": "分析以下招标文件的技术要求",
    "input": "...",
    "output": "..."
  }
]

常见格式变体

纯对话格式(ChatML):

json
[
  {
    "messages": [
      {"role": "system", "content": "你是合同审查助手"},
      {"role": "user", "content": "审查这条条款"},
      {"role": "assistant", "content": "该条款存在..."}
    ]
  }
]

纯文本(文本续写/风格迁移):

json
[
  {"text": "输入文本\n\n期望输出"}
]

数据清洗清单

  • [ ] 去除重复数据(语义重复,不是字符重复)
  • [ ] 去掉明显错误(instruction 和 output 不匹配)
  • [ ] 去掉太短或太长的样本(output <20 字或 >2000 字)
  • [ ] 统一格式(全是 JSON 或全是对话)
  • [ ] 检查 instruction 是否太模糊("帮我做" → "请审查以下合同条款")
  • [ ] 检查是否有脏数据(乱码、非目标语言、无关内容)
  • [ ] 按 8:1:1 拆分为训练集/验证集/测试集

标注工具

自制标注(推荐小规模)

python
# 用 Python 脚本 + Excel 管理
import json

data = []
with open('contracts.txt') as f:
    for line in f:
        data.append({
            "instruction": "审查以下合同条款",
            "input": line.strip(),
            "output": ""  # 手动填写
        })

with open('dataset.json', 'w') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

专业工具

  • Label Studio:开源标注平台,支持文本分类、NER、对话
  • Doccano:轻量文本标注,支持情感分析、序列标注
  • GPT/AI 辅助标注:用大模型生成初版标注,人工修正

数据增强

数据不够时:

  1. 同义词替换:把"审查合同"变成"审核协议"
  2. 句式变换:主动变被动,长句变短句
  3. 反向生成:给 GPT output,让它反向生成 input
  4. 翻译增强:中→英→中,得到变体

注意

数据增强不能替代真实数据。增强 2-3 倍可以,增强 10 倍会导致模型过拟合到你的人造模式。


法眼场景示例

以合同审查为例,好的数据长这样:

json
{
  "instruction": "请审查以下合同条款的合规性和风险点",
  "input": "第三章:违约责任\n3.1 若乙方逾期交付,每逾期一日,支付合同总金额千分之五的违约金。",
  "output": "【风险等级】中\n【分析】千分之五的日违约金折合年化 182.5%,超出法定上限...\n【建议】降低至万分之五,并设置违约金上限不超过合同总额的 20%。"
}

🎯 本章要点

  • 微调最少 200 条数据,推荐 1000+;数据质量比数量更重要
  • 标准格式是 Alpaca(instruction/input/output),对话用 ChatML 格式
  • 数据清洗七步:去重→查错→限长→统一格式→查模糊→查脏→拆分
  • 数据不够用增强但别超过 3 倍,专业标注可用 Label Studio
加载练习题中...

有问题或补充?欢迎留言