AGI围城
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

AGI围城

是的,这个世界还是很有趣的。
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 提示词工程

  • 大模型API调用

  • OpenAI工具

  • 嵌入向量

  • 检索增强生成(RAG)

  • LlamaIndex

  • LangChain

  • Agent

  • Workflow

  • Transformer

  • 微调

    • 1.微调概述
    • 2.数据准备
      • 2.1 数据格式
        • 2.1.1 常见数据格式
        • 2.1.2 数据文件格式
      • 2.2 数据收集
        • 2.2.1 数据来源
        • 2.2.2 常用公开数据集
        • 2.2.3 Self-Instruct 方法
      • 2.3 数据清洗
        • 2.3.1 常见数据问题
        • 2.3.2 清洗要点
        • 2.3.3 去重策略
      • 2.4 数据质量评估
        • 2.4.1 自动评估指标
        • 2.4.2 人工抽检
      • 2.5 数据增强
        • 2.5.1 常用增强方法
        • 2.5.2 注意事项
      • 2.6 数据划分
        • 2.6.1 划分比例
        • 2.6.2 划分原则
      • 2.7 最佳实践
        • 2.7.1 数据量建议
        • 2.7.2 质量优先原则
        • 2.7.3 数据多样性
    • 3.全量微调
    • 4.LoRA微调
    • 5.指令微调与对齐
    • 6.微调实战
  • MCP

  • A2A

  • 基础知识
  • 微调
xiao_sl
2025-04-16
目录

2.数据准备

数据是微调的基石。高质量的数据能让模型事半功倍,而低质量的数据则会导致模型学到错误的模式。本章介绍微调数据的准备方法。

# 2.1 数据格式

# 2.1.1 常见数据格式

指令格式(Instruction Format)

最常用的格式,包含指令、输入和输出三部分:

{
  "instruction": "将以下英文翻译成中文",
  "input": "Hello, how are you?",
  "output": "你好,你怎么样?"
}
1
2
3
4
5

对话格式(Conversation Format)

适用于多轮对话场景:

{
  "conversations": [
    {"role": "user", "content": "什么是机器学习?"},
    {"role": "assistant", "content": "机器学习是人工智能的一个分支..."},
    {"role": "user", "content": "它和深度学习有什么区别?"},
    {"role": "assistant", "content": "深度学习是机器学习的一个子集..."}
  ]
}
1
2
3
4
5
6
7
8

# 2.1.2 数据文件格式

格式 特点 适用场景
JSONL 每行一个 JSON 对象 最常用,便于流式处理
JSON 整个文件是 JSON 数组 数据量较小时
CSV/TSV 表格格式 简单结构的数据

# 2.2 数据收集

# 2.2.1 数据来源

来源 优点 缺点
公开数据集 现成可用,质量有保证 可能不完全匹配需求
业务数据 贴合实际场景 需要清洗和标注
人工标注 质量可控 成本高,速度慢
模型生成 成本低,速度快 质量参差不齐

# 2.2.2 常用公开数据集

通用指令数据

  • Alpaca:52K 条指令数据,由 GPT-3.5 生成
  • ShareGPT:用户分享的 ChatGPT 对话
  • BELLE:中文指令数据集

特定任务数据

  • MMLU:多任务语言理解
  • GSM8K:数学推理
  • HumanEval:代码生成

# 2.2.3 Self-Instruct 方法

让模型自己生成指令和回答:

  1. 准备少量种子任务作为示例
  2. 让模型生成新的指令
  3. 让模型为新指令生成回答
  4. 过滤低质量数据
  5. 重复以上步骤

# 2.3 数据清洗

# 2.3.1 常见数据问题

问题类型 描述 影响
重复数据 相同或高度相似的样本 导致过拟合
噪声数据 错误、乱码、无意义内容 学到错误模式
格式错误 JSON 解析失败、字段缺失 训练报错
长度异常 过长或过短的样本 影响训练效率
标签错误 输出与输入不匹配 学到错误映射

# 2.3.2 清洗要点

  1. 格式检查:确保数据格式正确,字段完整
  2. 去重:去除完全相同或高度相似的样本
  3. 长度过滤:过滤过长或过短的样本
  4. 质量过滤:去除低质量、无意义的内容

# 2.3.3 去重策略

  • 精确去重:基于哈希值去除完全相同的样本
  • 模糊去重:使用相似度算法去除高度相似的样本(如编辑距离、余弦相似度)

# 2.4 数据质量评估

# 2.4.1 自动评估指标

指标 说明
长度分布 输入输出的长度统计
词汇多样性 词汇的丰富程度(Type-Token Ratio)
困惑度 文本的流畅程度
重复率 重复 n-gram 的比例

# 2.4.2 人工抽检

自动指标无法完全反映数据质量,建议进行人工抽检:

  1. 随机抽样:从数据集中随机抽取 100-500 条样本
  2. 评估维度:指令是否清晰、输出是否正确、格式是否规范
  3. 质量分级:A级(高质量)、B级(需修正)、C级(丢弃)

# 2.5 数据增强

当数据量不足时,可以通过数据增强扩充数据集。

# 2.5.1 常用增强方法

方法 说明
同义词替换 用同义词替换部分词语
回译 翻译成其他语言再翻译回来
句式变换 改变句子结构,保持语义不变
指令改写 用不同方式表达相同的指令

# 2.5.2 注意事项

  • 增强后的数据要保持语义正确
  • 避免引入噪声
  • 控制增强比例,避免数据分布偏移

# 2.6 数据划分

# 2.6.1 划分比例

数据集 比例 用途
训练集 80-90% 模型训练
验证集 5-10% 超参数调优、早停
测试集 5-10% 最终评估

# 2.6.2 划分原则

  1. 随机划分:确保各集合分布一致
  2. 分层划分:按类别比例划分,保持类别平衡
  3. 避免泄露:确保测试集中的数据不会出现在训练集中

# 2.7 最佳实践

# 2.7.1 数据量建议

任务类型 建议数据量
简单分类 1K-10K
复杂生成 10K-100K
领域适配 1K-10K(高质量)
指令遵循 10K-50K

# 2.7.2 质量优先原则

  • 1000 条高质量数据 > 10000 条低质量数据
  • 宁可数据少一些,也要保证质量
  • 低质量数据可能导致模型学到错误模式

# 2.7.3 数据多样性

确保数据覆盖多种场景:

  • 指令多样性:不同的表达方式
  • 输入多样性:不同的输入类型和长度
  • 输出多样性:不同的回答风格和详细程度
  • 难度多样性:简单到复杂的任务
编辑 (opens new window)
#微调#数据准备
上次更新: 2025/12/19, 15:17:48
1.微调概述
3.全量微调

← 1.微调概述 3.全量微调→

最近更新
01
我是如何发现临时邮箱的?一个真实的故事
06-12
02
4.核心实现
05-26
03
3.A2A开发实践
05-22
更多文章>
Theme by Vdoing | Copyright © 2019-2025 AGI围城 | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式