数据合成

使用大模型进行数据增强和合成

数据合成模块利用大模型能力,自动生成高质量的训练数据,降低数据采集成本。

功能概述

数据合成模块提供:

  • 指令模板管理:创建和管理合成指令模板
  • 单任务合成:创建单个合成任务
  • 比例合成任务:按指定比例合成多类别数据
  • 大模型集成:支持多种大模型 API
  • 质量评估:自动评估合成数据质量

快速开始

1. 创建指令模板

步骤 1:进入数据合成页面

在左侧导航栏选择 数据合成合成任务

步骤 2:创建指令模板

  1. 点击 指令模板 标签
  2. 点击 创建模板 按钮

步骤 3:配置模板

基本信息

  • 模板名称:例如 qa_generation_template
  • 模板描述:描述模板用途(可选)
  • 模板类型:选择模板类型(问答、对话、摘要等)

提示词配置

示例提示词:

你是一个专业的数据生成助手。请根据以下要求生成数据:

任务:生成问答对
主题:{topic}
数量:{count}
难度:{difficulty}

要求:
1. 问题要清晰明确
2. 答案要准确完整
3. 涵盖不同难度级别

输出格式:JSON
[
  {
    "question": "...",
    "answer": "..."
  }
]

参数配置

  • 模型:选择使用的大模型(GPT-4、Claude、本地模型等)
  • 温度:控制生成随机性(0-1)
  • 最大 tokens:限制生成长度
  • 其他参数:根据模型配置

步骤 4:保存模板

点击 保存 按钮保存模板。

2. 创建合成任务

步骤 1:填写基本信息

  1. 返回 数据合成 页面
  2. 点击 创建任务 按钮
  3. 填写基本信息:
    • 任务名称:例如 medical_qa_synthesis
    • 任务描述:描述任务目的(可选)

步骤 2:选择数据集和选择文件

从现有数据集中选择合成所需的数据:

  • 选择数据集:从列表中选择需要使用的数据集
  • 选择文件
    • 可以选择整个数据集的所有文件
    • 也可以选择数据集中的部分特定文件
    • 支持多选多个文件

步骤 3:选择合成指令模板

选择已创建的指令模板,或创建新模板:

  • 从模板库选择:从已创建的模板中选择
  • 模板类型:问答生成、对话生成、摘要生成等
  • 预览模板:可以查看模板的提示词内容

步骤 4:填写合成配置

合成配置包含以下四个部分:

1. 设置合成总数

设置整个任务生成的数据总量上限:

参数说明默认值取值范围
合成总数上限整个任务生成的最大问答对数量50001-100,000

此设置可选,适用于大规模合成任务的总量控制。

2. 配置文本切片策略

对输入的文本文件进行切片处理,支持多种切片方式:

参数说明默认值
切片方式选择切片策略默认分块
切片大小每个切片的字符数3000
重叠大小相邻切片之间的重叠字符数100

切片方式选项

  • 默认分块:使用系统默认的智能分块策略
  • 按章节分块:根据章节结构进行分块
  • 按段落分块:按照段落边界进行分块
  • 固定长度分块:按照固定的字符长度进行分块
  • 自定义分隔符分块:使用自定义分隔符进行分块

3. 配置问题合成参数

设置问题生成的相关参数:

参数说明默认值取值范围
问题生成数量每个切片生成的问题数量11-20
温度控制问题生成的随机性和多样性0.70-2
使用模型选择用于生成问题的 CHAT 模型-从模型列表选择

参数说明

  • 问题生成数量:每个文本切片生成的问题个数,数值越高生成的问题越多
  • 温度:值越高生成的问题越多样,值越低生成的问题越稳定

4. 配置答案合成参数

设置答案生成的相关参数:

参数说明默认值取值范围
温度控制答案生成的稳定性0.70-2
使用模型选择用于生成答案的 CHAT 模型-从模型列表选择

参数说明

  • 温度:值越低答案越保守和准确,值越高答案越多样和创造性

合成类型: 系统支持两种合成类型:

  • SFT 问答数据合成:生成监督微调用的问答对数据
  • COT 链式推理合成:生成包含推理过程的数据

步骤 5:开始任务

点击 开始任务 按钮,任务将自动开始执行。

3. 创建比例合成任务

比例合成任务用于按指定比例合成多类别平衡数据。

步骤 1:创建比例任务

  1. 在左侧导航栏选择 数据合成配比任务
  2. 点击 创建任务 按钮

步骤 2:填写基本信息

参数说明是否必填
任务名称任务的唯一标识名称
目标总数量整个配比任务的目标总数量
任务描述描述配比任务的目的和要求

示例

  • 任务名称:balanced_dataset_synthesis
  • 目标总数量:10000
  • 任务描述:生成训练集和验证集的平衡数据

步骤 3:选择数据集

从现有数据集中选择需要参与配比的数据集:

数据集选择功能

  • 搜索数据集:通过关键词搜索数据集
  • 多选支持:可以同时选择多个数据集
  • 数据集信息:显示每个数据集的详细信息
    • 数据集名称和类型
    • 数据集描述
    • 文件数量
    • 数据集大小
    • 标签分布预览(最多显示 8 个标签)

选择数据集后,系统会自动加载每个数据集的标签分布信息。

步骤 4:填写配比配置

为每个选中的数据集配置具体的合成规则:

配比配置项

参数说明取值范围
标签从数据集的标签分布中选择标签根据数据集标签
标签值选中标签下的具体值根据标签值列表
标签更新时间选择标签更新日期范围(可选)日期选择器
数量该配置项生成的数据数量0 到目标总数量

功能说明

  • 自动分配:点击"自动分配"按钮,系统会自动将目标总数量均匀分配到各数据集
  • 数量限制:每个配置项的数量不能超过该数据集的文件总数
  • 百分比计算:系统自动计算每个配置项占总数量的百分比
  • 删除配置:可以删除不需要的配置项
  • 添加配置:每个数据集可以添加多个不同的标签配置

示例配置

数据集标签标签值标签更新时间数量
训练数据集类别训练-6000
训练数据集类别验证-2000
测试数据集类别测试2024-01-01 至 2024-12-312000

步骤 5:执行任务

点击 开始任务 按钮,系统将按照配比配置创建并执行任务。

4. 监控合成任务

查看任务列表

在数据合成页面,可以看到所有合成任务:

任务名称模板状态进度生成数量操作
医疗问答合成qa_template运行中50%50/100查看详情
情感数据合成sentiment_template已完成100%1000/1000查看详情

查看任务详情

点击任务名称进入详情页面,可以看到:

  • 任务配置:模板和参数配置
  • 执行记录:历史执行记录
  • 生成结果
    • 总生成数量
    • 成功数量
    • 失败数量
    • 成功率

查看生成数据

在任务详情页面,点击 查看数据 可以:

  • 预览生成的数据
  • 下载数据
  • 导出到数据集

高级功能

模板变量

在提示词中使用变量,实现动态配置:

变量语法{variable_name}

示例

请生成关于 {topic} 的 {count} 个 {difficulty} 级别的 {type}。

内置变量

  • {current_date}:当前日期
  • {current_time}:当前时间
  • {random_id}:随机 ID

模型选择

DataMate 支持多种大模型:

模型类型说明
GPT-4OpenAI高质量生成
GPT-3.5-TurboOpenAI快速生成
Claude 3Anthropic长文本生成
文心一言百度中文优化
通义千问阿里中文优化
本地模型部署本地模型私有化部署

数据质量控制

启用数据质量评估:

  • 格式验证:验证输出格式
  • 内容检查:检查敏感词、不当内容
  • 重复检测:检测重复生成的内容
  • 质量评分:对生成内容打分

批量生成

对于大规模数据生成:

  1. 分批生成:将大批量任务拆分为多个小批次
  2. 并发控制:控制并发请求数量
  3. 失败重试:自动重试失败的生成请求
  4. 断点续传:支持从中断处继续生成

最佳实践

1. 提示词设计

好的提示词应该:

  • 明确任务:清晰描述生成任务
  • 指定格式:明确输出格式要求
  • 提供示例:给出期望的输出示例
  • 控制质量:设置质量要求

示例提示词

你是一个专业的教育内容创作助手。

任务:生成教育问答对
学科:{subject}
年级:{grade}
数量:{count}

要求:
1. 问题要符合该年级的知识水平
2. 答案要准确、详细、易懂
3. 每个答案包含解析过程
4. 不得生成敏感或不当内容

输出格式(JSON):
[
  {
    "id": 1,
    "question": "问题内容",
    "answer": "答案内容",
    "explanation": "解析内容",
    "difficulty": "easy/medium/hard",
    "knowledge_points": ["知识点1", "知识点2"]
  }
]

请开始生成:

2. 参数调优

根据需求调整模型参数:

参数高质量快速生成创意生成
温度0.3-0.50.1-0.30.7-1.0
最大 tokens根据需求较短较长
Top P0.9-0.950.90.95-1.0

3. 数据验证

生成后进行数据验证:

  1. 格式检查:检查输出格式是否正确
  2. 内容审核:人工抽查部分数据
  3. 质量评估:使用评估工具打分
  4. 去重:去除重复或高度相似的内容

常见问题

Q: 生成数据质量不理想怎么办?

A: 优化建议:

  1. 改进提示词:更详细、更明确的指令
  2. 调整参数:降低温度、增加最大 tokens
  3. 提供示例:在提示词中给出示例
  4. 更换模型:尝试其他大模型
  5. 人工审核:人工审核和筛选

Q: 生成速度慢怎么办?

A: 加速建议:

  1. 减少数量:分批生成,不要一次性生成过多
  2. 调整并发:适当增加并发数
  3. 使用更快的模型:如 GPT-3.5-Turbo
  4. 缩短输出:减少最大 tokens
  5. 使用本地模型:部署本地模型加速

Q: 如何保证生成数据的多样性?

A: 增加多样性:

  1. 提高温度:设置温度为 0.7-1.0
  2. 丰富提示词:在提示词中加入变化元素
  3. 多次生成:多次生成后去重
  4. 使用不同种子:改变随机种子
  5. 混合模型:使用多个模型生成

Q: 生成的数据有重复怎么办?

A: 去重方法:

  1. 启用去重:在任务配置中启用去重功能
  2. 调整温度:提高温度增加随机性
  3. 丰富提示词:在提示词中加入更多变化
  4. 后处理去重:使用去重工具处理

Q: 如何控制生成成本?

A: 成本控制:

  1. 选择合适模型:根据需求选择模型
  2. 控制长度:限制最大 tokens
  3. 批量处理:使用批量 API(如果支持)
  4. 缓存复用:缓存相似请求的结果
  5. 本地模型:对于大规模生成,考虑部署本地模型

API 参考

详细的 API 文档请参考:

相关文档