这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

用户指南

DataMate 功能使用指南

本指南介绍 DataMate 各个功能模块的使用方法。

DataMate 提供完整的大模型数据处理解决方案,涵盖数据采集、管理、清洗、标注、合成、评估等全流程。

功能模块

典型使用场景

模型微调场景

1. 数据采集 → 2. 数据管理 → 3. 数据清洗 → 4. 数据标注
↓
5. 数据评估 → 6. 导出训练数据

RAG 应用场景

1. 上传文档 → 2. 向量化索引 → 3. 知识库管理
↓
4. Agent 对话(知识库问答)

数据增强场景

1. 准备原始数据 → 2. 创建指令模板 → 3. 数据合成
↓
4. 质量评估 → 5. 导出增强数据

快速链接

1 - 数据归集

使用 DataMate 从多种数据源归集数据

数据归集模块帮助您从多种数据源(数据库、文件系统、API 等)归集数据到 DataMate 平台。

功能概述

数据归集模块基于 DataX 实现,支持:

  • 多种数据源:MySQL、PostgreSQL、Oracle、SQL Server 等关系型数据库
  • 异构同步:不同数据源之间的数据同步
  • 批量归集:大规模数据的批量归集和同步
  • 定时任务:支持定时执行归集任务
  • 任务监控:实时监控归集任务执行状态

支持的数据源

数据源类型ReaderWriter说明
通用关系型数据库支持 MySQL、PostgreSQL、OpenGauss、SQL Server、达梦、DB2
MySQL关系型数据库
PostgreSQL关系型数据库
OpenGauss关系型数据库
SQL Server微软数据库
达梦国产数据库
DB2IBM 数据库
StarRocks分析型数据库
NAS网络存储
S3对象存储
GlusterFS分布式文件系统
API 归集API 接口数据
JSON 文件JSON 格式文件
CSV 文件CSV 格式文件
TXT 文件文本文件
FTPFTP 服务器
HDFSHadoop 分布式文件系统

快速开始

1. 创建采集任务

步骤 1:进入数据归集页面

在左侧导航栏选择 数据归集

步骤 2:点击创建任务

点击右上角 创建任务 按钮。

步骤 3:配置基本信息

填写以下基本信息:

  • 名称:为任务取一个有意义的名称
  • 超时时间:任务执行超时时间(秒)
  • 描述:描述任务用途(可选)

步骤 4:选择同步方式

选择任务的同步方式:

  • 立即同步:创建任务后立即执行一次
  • 定时同步:按照定时规则周期性执行

选择 定时同步 时,需要配置执行策略:

  • 执行周期:每小时 / 每天 / 每周 / 每月
  • 执行时间:选择执行时间点

步骤 5:配置数据源

选择数据源类型:从下拉列表中选择数据源类型(如 MySQL、CSV 等)

配置数据源参数:根据选择的数据源模板,填写相应的连接参数(表单形式)

MySQL 示例

  • JDBC URL:jdbc:mysql://localhost:3306/mydb
  • 用户名:root
  • 密码:password
  • 表名:users

步骤 6:配置字段提取

系统不支持配置字段映射,只能从配置的 SQL 中提取部分字段。

  • 提取指定字段:在字段列表中填写需要提取的字段名称
  • 提取所有字段:不填写字段名称,则提取 SQL 查询结果中的所有字段

步骤 7:创建并执行

点击 创建 按钮创建任务。

  • 如果选择 立即同步,任务将自动开始运行
  • 如果选择 定时同步,任务将按照定时规则周期性执行

2. 监控任务执行

查看任务列表

在数据采集页面,可以看到所有采集任务及其状态:

任务名称数据源状态最后执行时间操作
用户数据归集MySQL运行中2024-01-15 10:30查看执行记录
日志文件归集CSV已完成2024-01-14 18:00查看执行记录

查看任务详情

点击任务名称或 查看详情 按钮,可以看到:

  • 基本信息:任务配置信息
  • 执行记录:历史执行记录
  • 执行日志:详细的执行日志
  • 数据统计:采集的数据量、成功/失败记录数

查看执行日志

在任务详情页面,点击 执行记录 标签,选择某次执行记录,查看详细日志:

2024-01-15 10:30:00 INFO  任务开始执行
2024-01-15 10:30:01 INFO  连接数据源成功
2024-01-15 10:30:02 INFO  开始读取数据
2024-01-15 10:30:10 INFO  读取数据完成,共 10000 条
2024-01-15 10:30:11 INFO  开始写入目标数据集
2024-01-15 10:30:15 INFO  写入数据完成
2024-01-15 10:30:15 INFO  任务执行成功

3. 任务管理

任务列表中每个任务的操作包括:

  • 查看执行记录:查看任务的历次执行情况
  • 删除:删除任务(注意:删除任务不会删除已归集的数据)

点击任务名称可以查看任务详情,包括:

  • 基本信息配置
  • 执行记录列表
  • 数据统计信息

常见问题

Q: 任务执行失败怎么办?

A: 按以下步骤排查:

  1. 检查数据源连接:确保数据源地址、端口、用户名、密码正确
  2. 检查网络连接:确保 DataMate 能访问数据源
  3. 查看执行日志:获取详细错误信息
  4. 检查数据格式:确保数据格式与配置一致
  5. 检查目标数据集:确保目标数据集存在且有写入权限

Q: 如何采集大表数据?

A: 对于大表数据采集:

  1. 使用增量采集:配置时间字段进行增量同步
  2. 分批采集:将大表拆分为多个小任务
  3. 调整并发参数:适当增加 channel 数量
  4. 使用过滤条件:只采集需要的数据

Q: 如何实现增量采集?

A: 配置增量采集条件:

在数据源配置中,可以设置查询条件(如 SQL WHERE 子句),例如:

WHERE update_time > '${lastTime}'

系统会在每次执行时记录最后一次执行时间,下次执行时自动使用该时间进行增量采集。

Q: 采集速度慢怎么办?

A: 优化采集速度:

  1. 增加并发通道:将 channel 设置为 3-5
  2. 调整流控参数:增加 byte 和 record 限制
  3. 优化 SQL 查询:使用索引、减少查询字段
  4. 使用批量写入:启用批量写入模式

Q: 如何处理数据类型不兼容?

A: 使用类型转换:

{
  "column": [
    {
      "name": "id",
      "type": "long"
    },
    {
      "name": "price",
      "type": "decimal",
      "format": "#.##"
    }
  ]
}

API 参考

详细的 API 文档请参考:

相关文档

2 - 数据管理

使用 DataMate 管理数据集和文件

数据管理模块提供统一的数据集管理能力,支持多种数据类型的存储、查询和操作。

功能概述

数据管理是 DataMate 的核心模块,提供:

  • 多数据类型支持:图像、文本、音频、视频、多模态等
  • 文件管理:上传、下载、预览、删除等操作
  • 目录结构:支持层级目录组织
  • 标签管理:使用标签分类和检索数据
  • 统计信息:数据集大小、文件数量等统计

数据集类型

类型说明支持格式
图像图像数据JPG, PNG, GIF, BMP, WebP
文本文本数据TXT, MD, JSON, CSV
音频音频数据MP3, WAV, FLAC, AAC
视频视频数据MP4, AVI, MOV, MKV
多模态多模态数据混合格式

快速开始

1. 创建数据集

步骤 1:进入数据管理页面

在左侧导航栏选择 数据管理

步骤 2:创建数据集

点击右上角 创建数据集 按钮。

步骤 3:填写基本信息

  • 数据集名称:例如 user_images_dataset
  • 数据集类型:选择数据类型(如图像)
  • 描述:描述数据集的用途(可选)
  • 标签:添加标签用于分类(可选)

步骤 4:创建数据集

点击 创建 按钮完成创建。

2. 上传文件

方式一:拖拽上传

  1. 进入数据集详情页面
  2. 将文件直接拖拽到上传区域
  3. 等待上传完成

方式二:点击上传

  1. 点击 上传文件 按钮
  2. 选择本地文件
  3. 等待上传完成

方式三:分片上传(大文件)

对于大文件(>100MB),系统自动使用分片上传:

  1. 选择大文件上传
  2. 系统自动切分文件
  3. 逐片上传
  4. 自动合并

方式四:批量上传

支持批量选择多个文件上传:

  1. 点击 上传文件 按钮
  2. 按住 Ctrl/Cmd 多选文件
  3. 点击确定开始上传

3. 创建目录

步骤 1:进入数据集

在数据管理页面,点击数据集名称进入详情。

步骤 2:创建目录

  1. 点击 创建目录 按钮
  2. 输入目录名称
  3. 选择父目录(可选)
  4. 点击确定

目录结构示例:

user_images_dataset/
├── train/
│   ├── cat/
│   └── dog/
├── test/
│   ├── cat/
│   └── dog/
└── validation/
    ├── cat/
    └── dog/

4. 管理文件

查看文件

在数据集详情页面,可以看到所有文件列表:

文件名大小包含文件数上传时间标签标签更新时间操作
image1.jpg2.3 MB12024-01-15训练集2024-01-16下载 重命名 删除
image2.png1.8 MB12024-01-15验证集2024-01-16下载 重命名 删除

预览文件

点击 预览 按钮,可以在浏览器中预览文件:

  • 图像:显示缩略图和详细信息
  • 文本:显示文本内容
  • 音频:在线播放
  • 视频:在线播放

下载文件

  • 单个文件下载:点击 下载 按钮

目前不支持批量下载和打包下载。

删除文件

  • 单个删除:点击文件的 删除 按钮

目前不支持批量删除。

5. 数据集操作

查看统计信息

在数据集详情页面,可以看到:

  • 总文件数:数据集中的文件总数
  • 总大小:所有文件的总大小

编辑数据集

点击数据集的 编辑 按钮,可以修改:

  • 数据集名称
  • 描述
  • 标签
  • 关联归集任务

删除数据集

点击数据集的 删除 按钮,可以删除整个数据集。

注意:删除数据集会同时删除其中的所有文件,此操作不可恢复。

高级功能

标签管理

创建标签

  1. 在数据集列表页,点击 标签管理
  2. 点击 创建标签
  3. 输入标签名称

使用标签

  1. 编辑数据集
  2. 在标签栏选择已有标签
  3. 保存数据集

标签筛选

在数据集列表页,点击标签可以筛选具有该标签的数据集。

最佳实践

1. 数据集组织

推荐的目录组织方式:

project_dataset/
├── raw/              # 原始数据
├── processed/        # 处理后的数据
├── train/            # 训练数据
├── validation/       # 验证数据
└── test/             # 测试数据

2. 命名规范

  • 数据集名称:使用小写字母和下划线,如 user_images_2024
  • 目录名称:使用有意义的英文名称,如 train, test, processed
  • 文件名称:保持原始文件名或使用规范命名

3. 标签使用

建议使用以下标签分类:

  • 项目标签project-a, project-b
  • 状态标签raw, processed, validated
  • 类型标签image, text, audio
  • 用途标签training, testing, evaluation

4. 数据备份

目前系统不支持自动备份功能,如需备份数据,可以通过以下方式手动下载单个文件:

  1. 进入数据集详情页面
  2. 找到需要备份的文件
  3. 点击文件的 下载 按钮

常见问题

Q: 上传大文件失败怎么办?

A: 大文件上传建议:

  1. 使用分片上传:系统自动启用分片上传
  2. 检查网络连接:确保网络稳定
  3. 调整上传参数:增加超时时间
  4. 使用 FTP/SFTP:对于超大文件,建议使用 FTP 上传

Q: 如何导入已有的数据?

A: 三种方式导入已有数据:

  1. 上传文件:通过界面上传
  2. 添加文件:如果文件已在服务器上,使用添加文件功能
  3. 数据采集:使用数据采集模块从外部数据源采集

Q: 如何共享数据集?

A: 目前数据集共享方式:

  1. 导出数据集:导出为文件分享
  2. 设置权限:(即将推出)设置数据集访问权限
  3. API 访问:通过 API 接口访问数据集

Q: 数据集有大小限制吗?

A: 数据集大小限制:

  • 单个文件:最大 5GB(分片上传)
  • 数据集总大小:受存储空间限制
  • 文件数量:没有明确限制

建议定期清理不需要的文件以释放空间。

Q: 如何查看数据集的详细信息?

A: 在数据集详情页面可以查看:

  • 基本信息:名称、描述、类型、标签
  • 统计信息:文件数、总大小、完成率
  • 文件列表:所有文件及其详情
  • 操作日志:数据集的操作历史

API 参考

详细的 API 文档请参考:

相关文档

3 - 数据清洗

使用 DataMate 清洗和预处理数据

数据清洗模块提供强大的数据处理能力,帮助您清洗、转换和优化数据质量。

功能概述

数据清洗模块提供:

  • 内置清洗算子:丰富的前置清洗算子库
  • 可视化配置:拖拽式配置清洗流程
  • 模板管理:保存和复用清洗模板
  • 批量处理:支持大规模数据批量清洗
  • 实时预览:预览清洗结果

清洗算子类型

数据质量算子

算子功能适用数据类型
去重删除重复数据所有类型
空值处理删除或填充空值所有类型
异常值检测检测和处理异常值数值型
格式校验校验数据格式所有类型

文本清洗算子

算子功能
去除特殊字符去除文本中的特殊符号
大小写转换统一大小写格式
去除停用词去除常见停用词
文本分词中文分词处理
HTML 标签清理清理 HTML 标签

图像清洗算子

算子功能
格式转换转换图像格式
尺寸调整统一图像尺寸
质量检测检测图像质量
去重基于内容去重

数据转换算子

算子功能
类型转换转换数据类型
归一化数值归一化处理
编码转换字符编码转换
日期格式化统一日期格式

快速开始

1. 创建清洗任务

步骤 1:进入数据清洗页面

在左侧导航栏选择 数据处理

步骤 2:创建任务

点击右上角 创建任务 按钮。

步骤 3:配置基本信息

  • 任务名称:例如 user_data_cleansing
  • 任务描述:描述清洗任务的目的(可选)
  • 源数据集:选择要清洗的数据集
  • 输出数据集:选择或创建输出数据集

步骤 4:配置清洗流程

在清洗流程配置页面:

  1. 从左侧算子库拖拽算子到中间画布
  2. 连接算子形成处理流程
  3. 配置每个算子的参数
  4. 预览清洗结果

示例流程:

输入数据 → 去重 → 空值处理 → 格式校验 → 输出数据

步骤 5:配置执行参数

  • 执行模式:立即执行 / 定时执行
  • 并发数:任务并发数(默认 1)
  • 失败策略:跳过失败记录 / 终止任务

步骤 6:创建并执行

点击 创建 按钮创建任务。如果选择立即执行,任务将自动开始运行。

2. 使用清洗模板

创建模板

  1. 配置好清洗流程
  2. 点击 保存为模板
  3. 输入模板名称和描述
  4. 点击保存

使用模板

  1. 创建清洗任务时,点击 使用模板
  2. 从模板列表选择模板
  3. 系统自动加载模板配置
  4. 根据需要调整配置

3. 监控清洗任务

查看任务列表

在数据清洗页面,可以看到所有清洗任务:

任务名称源数据集输出数据集状态进度操作
文本清洗raw_textclean_text运行中50%查看详情
图像去重imagesunique_images已完成100%查看详情

查看任务详情

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

  • 任务配置:清洗流程和参数
  • 执行记录:历史执行记录
  • 清洗统计
    • 输入记录数
    • 输出记录数
    • 清洗掉的记录数
    • 清洗率

查看清洗结果

在任务详情页面,点击 查看结果 可以:

  • 查看清洗后的数据
  • 对比清洗前后数据
  • 导出清洗结果

清洗算子详解

去重算子

功能:删除重复的数据记录

参数

  • 去重字段:选择用于判断重复的字段
  • 保留策略:保留第一条 / 保留最后一条

示例

输入:
{"id": 1, "name": "Alice"}
{"id": 1, "name": "Alice"}
{"id": 2, "name": "Bob"}

输出(保留第一条):
{"id": 1, "name": "Alice"}
{"id": 2, "name": "Bob"}

空值处理算子

功能:处理空值(NULL/空字符串)

参数

  • 处理策略:删除记录 / 填充默认值
  • 填充值:当选择填充时,指定填充值

示例

输入:
{"id": 1, "name": "Alice", "age": null}
{"id": 2, "name": null, "age": 25}

输出(填充默认值 "Unknown"):
{"id": 1, "name": "Alice", "age": "Unknown"}
{"id": 2, "name": "Unknown", "age": 25}

文本清洗算子

功能:清洗文本数据

参数

  • 去除特殊字符:是否去除
  • 转换大小写:不转换 / 全部小写 / 全部大写
  • 去除停用词:是否去除
  • 最小长度:过滤短于该长度的文本

示例

输入:"Hello!!! This is a Test..."

输出(去除特殊字符、转小写):
"hello this is a test"

图像格式转换算子

功能:转换图像格式

参数

  • 目标格式:JPG / PNG / WebP
  • 质量:输出图像质量(1-100)
  • 尺寸:调整图像尺寸(可选)

数据归一化算子

功能:数值型数据归一化

参数

  • 归一化方法:Min-Max / Z-Score
  • 目标范围:Min-Max 归一化的目标范围

示例

输入(Min-Max 归一化到 [0, 1]):
{"age": 20, "salary": 5000}
{"age": 40, "salary": 10000}

输出:
{"age": 0.0, "salary": 0.0}
{"age": 1.0, "salary": 1.0}

高级功能

自定义算子

除了内置算子,DataMate 还支持自定义算子开发。详见:

条件分支

在清洗流程中,可以添加条件分支:

输入数据 → [条件判断]
              ├── 满足条件 → 处理流程 A
              └── 不满足条件 → 处理流程 B

条件类型

  • 字段值比较
  • 数据类型检查
  • 自定义表达式

循环处理

对于需要重复处理的场景,可以使用循环算子:

  • For 循环:固定次数循环
  • While 循环:条件循环
  • 迭代循环:遍历集合

数据验证

在清洗完成后,可以添加数据验证算子:

  • 完整性验证:检查必填字段
  • 一致性验证:检查字段间关系
  • 业务规则验证:自定义验证规则

常见问题

Q: 清洗任务执行失败怎么办?

A: 按以下步骤排查:

  1. 检查数据格式:确保数据格式与算子要求一致
  2. 查看执行日志:获取详细错误信息
  3. 检查参数配置:确保算子参数配置正确
  4. 测试单个算子:单独测试问题算子
  5. 减少数据量:先用小数据集测试

Q: 如何处理大量数据?

A: 大数据量清洗建议:

  1. 分批处理:将大数据集拆分为多个小批次
  2. 增加并发:适当增加并发数
  3. 使用增量清洗:只清洗新增或变更的数据
  4. 优化流程:简化清洗流程,移除不必要的算子

Q: 清洗速度慢怎么办?

A: 优化清洗速度:

  1. 减少算子数量:只使用必要的算子
  2. 优化算子顺序:先过滤数据再处理
  3. 增加并发:提高任务并发数
  4. 使用增量处理:避免重复处理

Q: 如何保证清洗质量?

A: 建议的清洗流程:

  1. 数据探索:先了解数据质量状况
  2. 制定规则:根据业务需求制定清洗规则
  3. 小批量测试:先在小数据集上测试
  4. 验证结果:清洗后验证数据质量
  5. 定期审查:定期审查和更新清洗规则

API 参考

详细的 API 文档请参考:

相关文档

4 - 数据标注

使用 DataMate 进行数据标注

数据标注模块集成 Label Studio,提供专业级的数据标注能力。

功能概述

数据标注模块提供:

  • 多类型标注:支持图像、文本、音频等多种数据类型
  • 标注模板:丰富的标注模板和配置
  • 质量控制:标注审核和一致性检查
  • 团队协作:多人协作标注
  • 标注导出:导出标注结果

标注类型

图像标注

类型说明适用场景
图像分类对整个图像分类场景识别、质量判断
目标检测标注目标位置和类别物体识别、缺陷检测
语义分割像素级分类医学影像、自动驾驶
实例分割区分同类目标细粒度识别
关键点标注标注关键点位置姿态估计、人脸识别

文本标注

类型说明适用场景
文本分类对文本分类情感分析、主题分类
命名实体识别标注实体边界信息抽取、知识图谱
文本摘要生成摘要文档理解
机器翻译翻译文本多语言处理
问答标注标注问答对对话系统

音频标注

类型说明适用场景
音频分类对音频分类音频事件检测
语音识别 (ASR)转写语音文本语音助手
说话人分离识别说话人会议记录

快速开始

1. 部署 Label Studio

使用 Docker Compose

make install-label-studio

访问 Label Studio

  • 地址:http://localhost:30001
  • 用户名:admin@demo.com
  • 密码:demoadmin

2. 创建标注任务

步骤 1:进入数据标注页面

在左侧导航栏选择 数据标注

步骤 2:创建任务

点击右上角 创建任务 按钮。

步骤 3:配置基本信息

  • 任务名称:例如 image_classification_task
  • 任务描述:描述标注任务(可选)
  • 源数据集:选择要标注的数据集
  • 标注类型:选择标注类型(如图像分类)

步骤 4:配置标注模板

选择或创建标注模板:

图像分类模板示例

<View>
  <Image name="image" value="$image"/>
  <Choices name="choice" toName="image">
    <Choice value="cat"/>
    <Choice value="dog"/>
    <Choice value="bird"/>
  </Choices>
</View>

目标检测模板示例

<View>
  <Image name="image" value="$image"/>
  <RectangleLabels name="label" toName="image">
    <Label value="cat" background="blue"/>
    <Label value="dog" background="red"/>
  </RectangleLabels>
</View>

步骤 5:配置标注规则

  • 标注方式:单标签 / 多标签
  • 最少标注数:每个样本最少标注次数(用于一致性)
  • 审核机制:是否启用审核
  • 标注人员:分配标注人员

步骤 6:创建任务

点击 创建 按钮完成创建。

3. 开始标注

步骤 1:进入标注界面

在任务列表页,点击任务名称进入标注界面。

步骤 2:进行标注

  1. 查看当前待标注样本
  2. 根据标注类型进行标注
  3. 点击 提交 完成标注
  4. 自动加载下一个样本

步骤 3:查看标注进度

在标注界面可以看到:

  • 总样本数:待标注的样本总数
  • 已标注数:已完成标注的样本数
  • 完成进度:标注完成百分比
  • 我的标注数:当前用户标注的数量

4. 标注审核

查看待审核标注

  1. 进入任务详情页
  2. 点击 审核 标签
  3. 查看待审核的标注结果

审核标注

  1. 查看标注结果
  2. 选择 通过拒绝
  3. 如果拒绝,可以修改标注
  4. 提交审核结果

5. 导出标注结果

导出为 JSON

[
  {
    "id": 1,
    "image": "image1.jpg",
    "label": "cat",
    "annotator": "user1",
    "created_at": "2024-01-15T10:30:00"
  }
]

导出为 CSV

id,image,label,annotator,created_at
1,image1.jpg,cat,user1,2024-01-15 10:30:00
2,image2.jpg,dog,user1,2024-01-15 10:31:00

导出到数据集

将标注结果导出到新的数据集,用于后续处理。

高级功能

标注模板定制

自定义标签

在模板中定义标签及其属性:

<Choices name="choice" toName="image">
  <Choice value="cat" alias="feline"/>
  <Choice value="dog" alias="canine"/>
  <Choice value="other"/>
</Choices>

添加属性

为标签添加额外属性:

<RectangleLabels name="label" toName="image">
  <Label value="person" background="blue">
    <Attribute name="gender" type="radio">
      <Value value="male"/>
      <Value value="female"/>
    </Attribute>
    <Attribute name="age" type="number"/>
  </Label>
</RectangleLabels>

质量控制

标注一致性

检查不同标注员的一致性:

  • Cohen’s Kappa:评估标注一致性
  • 多数投票:使用多数标注结果
  • 专家审核:专家审核争议标注

标注指南

创建详细的标注指南:

  1. 明确标注标准
  2. 提供标注示例
  3. 说明边界情况
  4. 定期更新指南

团队协作

角色分配

角色权限
管理员全部权限
审核员审核、修改标注
标注员仅标注

任务分配

  • 手动分配:管理员手动分配样本
  • 自动分配:系统自动分配待标注样本
  • 认领模式:标注员主动认领样本

预标注

使用模型进行预标注:

  1. 训练或使用现成模型
  2. 对数据集进行预标注
  3. 标注员修正预标注结果

优势:

  • 提高标注效率
  • 降低标注成本
  • 保持标注一致性

最佳实践

1. 标注指南

制定清晰的标注指南:

  • 明确标准:清晰定义标注标准
  • 提供示例:给出正例和反例
  • 边界情况:说明如何处理边界情况
  • 培训标注员:确保标注员理解指南

2. 质量控制

建立质量控制流程:

  1. 预标注:使用模型预标注
  2. 标注:标注员进行标注
  3. 审核:审核员抽检
  4. 反馈:提供反馈并改进

3. 标注效率

提高标注效率:

  • 使用快捷键:使用键盘快捷键
  • 批量操作:支持批量标注
  • 智能推荐:使用 AI 辅助标注
  • 合理分工:根据难度分配任务

常见问题

Q: 标注质量不理想怎么办?

A: 改进建议:

  1. 完善标注指南:更详细的标注说明
  2. 加强培训:培训标注员
  3. 增加审核:提高审核比例
  4. 使用预标注:使用模型辅助
  5. 提供反馈:及时反馈问题

Q: 标注速度慢怎么办?

A: 提高效率:

  1. 使用预标注:减少从零开始标注
  2. 优化界面:使用快捷键和批量操作
  3. 合理分工:根据难度分配任务
  4. 激励标注员:设置激励机制

Q: 如何处理标注不一致?

A: 处理方法:

  1. 明确标准:制定明确的标注标准
  2. 多数投票:使用多个标注员投票
  3. 专家裁决:专家处理争议标注
  4. 计算一致性:使用 Cohen’s Kappa 等指标

Q: 支持哪些标注格式?

A: 导出格式:

  • JSON
  • CSV
  • COCO (用于目标检测)
  • YOLO (用于目标检测)
  • Pascal VOC (用于目标检测)
  • 自定义格式

相关文档

5 - 数据合成

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

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

功能概述

数据合成模块提供:

  • 指令模板管理:创建和管理合成指令模板
  • 单任务合成:创建单个合成任务
  • 比例合成任务:按指定比例合成多类别数据
  • 大模型集成:支持多种大模型 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 文档请参考:

相关文档

6 - 数据评估

使用 DataMate 评估数据质量

数据评估模块提供多维度数据质量评估能力,帮助您了解和提升数据质量。

功能概述

数据评估模块提供:

  • 质量指标:丰富的数据质量评估指标
  • 自动评估:自动执行数据评估任务
  • 手动评估:人工抽样评估
  • 评估报告:生成详细的评估报告
  • 质量追踪:追踪数据质量变化趋势

评估维度

数据完整性

指标说明计算方式
空值率空值占比空值数 / 总数
缺失字段率必填字段缺失率缺失字段数 / 总字段数
记录完整率完整记录占比完整记录数 / 总记录数

数据准确性

指标说明计算方式
格式正确率格式正确的占比格式正确数 / 总数
值域符合率值在合理范围内的占比符合值域数 / 总数
一致性符合率数据一致的比例一致记录数 / 总记录数

数据唯一性

指标说明计算方式
重复率重复记录占比重复记录数 / 总记录数
唯一率唯一记录占比唯一记录数 / 总记录数

数据时效性

指标说明计算方式
数据新鲜度数据更新频率最后更新时间
过期数据率过期数据占比过期记录数 / 总记录数

快速开始

1. 创建评估任务

步骤 1:进入数据评估页面

在左侧导航栏选择 数据评估

步骤 2:创建任务

点击右上角 创建任务 按钮。

步骤 3:配置基本信息

  • 任务名称:例如 data_quality_evaluation
  • 任务描述:描述评估任务(可选)
  • 评估数据集:选择要评估的数据集

步骤 4:配置评估维度

选择要评估的维度:

  • ✅ 数据完整性
  • ✅ 数据准确性
  • ✅ 数据唯一性
  • ✅ 数据时效性

步骤 5:配置评估规则

为每个维度配置具体规则:

完整性规则

必填字段:name, email, phone
空值阈值:5%(超过5%则警告)

准确性规则

email 格式:正则表达式验证
age 范围:0-120
phone 格式:手机号格式

唯一性规则

唯一字段:id, email
重复阈值:3%(超过3%则警告)

步骤 6:创建任务

点击 创建 按钮完成创建。

2. 执行评估

自动评估

任务创建后自动执行,或点击 立即执行

手动评估

  1. 点击 手动评估 标签
  2. 查看待评估样本
  3. 人工评估样本质量
  4. 提交评估结果

3. 查看评估报告

总体评分

评估报告提供总体质量评分:

总体质量评分:85 分 (优秀)

完整性:90 分 ⭐⭐⭐⭐⭐
准确性:82 分 ⭐⭐⭐⭐
唯一性:95 分 ⭐⭐⭐⭐⭐
时效性:75 分 ⭐⭐⭐⭐

详细指标

每个维度的详细指标:

完整性

  • 空值率:3.2% ✅
  • 缺失字段率:1.5% ✅
  • 记录完整率:96.8% ✅

准确性

  • email 格式正确率:98.5% ✅
  • age 值域符合率:95.2% ✅
  • phone 格式正确率:88.7% ⚠️

唯一性

  • 重复率:1.8% ✅
  • 唯一率:98.2% ✅

时效性

  • 数据新鲜度:平均 7 天前
  • 过期数据率:12.5% ⚠️

问题列表

列出发现的数据质量问题:

序号问题类型严重程度影响范围建议
1phone 格式不正确准确性11.3%检查并清洗
2部分数据过期时效性12.5%更新数据
3少量记录有空值完整性3.2%填充或删除

质量趋势

查看数据质量变化趋势:

质量评分趋势
90 │     ╭─╮
85 │ ╭─╮╭─╯ ╭─╮
80 │╭─╯╭─╯   ╭─╯
75 │╭─╯╭─╯   ╭─╯
70 │╭─╯╭─╯   ╭─╯
   └─────────────
   1月 2月 3月 4月

4. 导出评估报告

导出为 PDF

  1. 点击 导出报告 按钮
  2. 选择 PDF 格式
  3. 下载报告文件

导出为 Excel

  1. 点击 导出报告 按钮
  2. 选择 Excel 格式
  3. 下载报告文件

Excel 报告包含多个工作表:

  • 总体评分
  • 详细指标
  • 问题列表
  • 样本明细

高级功能

自定义评估规则

除了内置规则,还可以自定义评估规则:

正则表达式验证

字段:phone
规则:^1[3-9]\d{9}$
说明:中国大陆手机号

值域验证

字段:age
最小值:0
最大值:120
说明:年龄在合理范围内

自定义脚本

使用 Python 脚本自定义评估逻辑:

def evaluate(record):
    # 自定义评估逻辑
    if record.get('score', 0) < 0 or record.get('score', 0) > 100:
        return False, "分数必须在 0-100 之间"
    return True, "OK"

对比评估

对比不同数据集或不同版本的数据质量:

  1. 选择要对比的数据集/版本
  2. 执行对比评估
  3. 查看对比报告

对比维度:

  • 总体评分对比
  • 各维度指标对比
  • 问题类型分布对比

质量阈值告警

设置质量阈值,超过阈值自动告警:

告警规则:
  总体评分低于 80: 发送邮件
  空值率超过 10%: 发送短信
  重复率超过 5%: 发送邮件

最佳实践

1. 定期评估

建议定期执行数据质量评估:

  • 每日评估:关键数据每日评估
  • 每周评估:一般数据每周评估
  • 每月评估:全部数据每月评估

2. 建立基线

为每个数据集建立质量基线:

  • 初次评估作为基线
  • 后续评估与基线对比
  • 追踪质量变化趋势

3. 持续改进

根据评估结果持续改进:

  • 清洗问题数据:根据评估结果清洗
  • 优化采集流程:改进数据采集方式
  • 更新验证规则:及时更新验证规则

常见问题

Q: 评估任务执行失败?

A: 排查步骤:

  1. 检查数据集:确认数据集存在
  2. 检查规则配置:确认评估规则正确
  3. 查看执行日志:获取详细错误信息
  4. 减少样本量:先用小样本测试

Q: 评估结果不准确?

A: 改进建议:

  1. 调整评估规则:根据实际需求调整
  2. 增加评估维度:添加更多评估维度
  3. 人工审核:人工抽检验证结果
  4. 更新基线:定期更新质量基线

Q: 如何提高数据质量?

A: 改进建议:

  1. 数据清洗:使用数据清洗模块清洗
  2. 源头控制:在数据采集阶段控制质量
  3. 建立规范:制定数据标准和规范
  4. 定期评估:定期评估并改进

API 参考

详细的 API 文档请参考:

相关文档

7 - 知识库管理

使用 DataMate 构建和管理 RAG 知识库

知识库管理模块帮助您构建企业知识库,实现高效的向量检索和 RAG 应用。

功能概述

知识库管理模块提供:

  • 文档上传:支持多种文档格式的上传
  • 文本切分:智能文本分块策略
  • 向量化:自动将文本转换为向量
  • 向量检索:基于相似度的语义检索
  • 知识库问答:集成 RAG 的智能问答

支持的文档格式

格式说明推荐场景
TXT纯文本通用文本
PDFPDF 文档文档、报告
MarkdownMarkdown 文件技术文档
JSONJSON 数据结构化数据
CSVCSV 表格表格数据
DOCXWord 文档Office 文档

快速开始

1. 创建知识库

步骤 1:进入知识库页面

在左侧导航栏选择 知识生成

步骤 2:创建知识库

点击右上角 创建知识库 按钮。

步骤 3:配置基本信息

  • 知识库名称:例如 company_docs_kb
  • 知识库描述:描述知识库用途(可选)
  • 知识库类型:通用 / 专业领域

步骤 4:配置向量参数

  • 嵌入模型:选择嵌入模型

    • OpenAI text-embedding-ada-002
    • BGE-M3
    • 自定义模型
  • 向量维度:根据模型自动设置

  • 索引类型:IVF_FLAT / HNSW / IVF_PQ

步骤 5:配置切分策略

  • 切分方式

    • 按字符数切分
    • 按段落切分
    • 按语义切分
  • 块大小:每个文本块的大小(字符数)

  • 重叠大小:相邻块的重叠大小

步骤 6:创建知识库

点击 创建 按钮完成创建。

2. 上传文档

步骤 1:进入知识库详情

点击知识库名称进入详情页面。

步骤 2:上传文档

  1. 点击 上传文档 按钮
  2. 选择本地文件
  3. 等待上传完成

系统会自动:

  1. 解析文档内容
  2. 切分文本
  3. 生成向量
  4. 建立索引

步骤 3:查看处理状态

在文档列表中可以看到处理状态:

文件名大小状态文本块数向量化进度操作
doc1.pdf2.3 MB已完成150100%查看详情
doc2.txt156 KB处理中-50%查看详情
doc3.md45 KB等待中-0%查看详情

3. 向量检索

步骤 1:进入检索页面

在知识库详情页面,点击 向量检索 标签。

步骤 2:输入查询

在搜索框输入查询内容,例如:

如何使用 DataMate 进行数据清洗?

步骤 3:查看检索结果

系统返回最相关的文本块及其相似度分数:

排名文本块相似度来源文档操作
1DataMate 的数据清洗模块…0.92user_guide.pdf查看
2配置清洗任务…0.87tutorial.md查看
3清洗算子列表…0.81reference.txt查看

高级检索

点击 高级检索,可以:

  • 设置 Top-K:返回前 K 个结果(默认 5)
  • 设置阈值:过滤低于相似度阈值的结果
  • 过滤文档:限定检索范围
  • 重排序:使用重排序模型优化结果

4. 知识库问答(RAG)

步骤 1:启用 RAG

在知识库详情页面,点击 RAG 问答 标签。

步骤 2:配置 RAG 参数

  • 大语言模型:选择使用的 LLM
  • 检索数量:检索的文本块数量
  • 温度:控制生成随机性
  • 提示词模板:自定义问答模板

步骤 3:进行问答

在对话框输入问题,例如:

用户:DataMate 支持哪些数据清洗算子?

助手:DataMate 支持丰富的数据清洗算子,包括:
1. 数据质量算子:去重、空值处理、异常值检测...
2. 文本清洗算子:去除特殊字符、大小写转换...
3. 图像清洗算子:格式转换、质量检测...
[来源:user_guide.pdf, tutorial.md]

助手会:

  1. 检索相关文本块
  2. 基于检索内容生成答案
  3. 标注答案来源

高级功能

文本切分策略

字符切分

按固定字符数切分:

  • 块大小:500 字符
  • 重叠:50 字符

段落切分

按段落边界切分:

  • 保持段落完整性
  • 适合结构化文档

语义切分

基于语义相似度切分:

  • 保持语义完整性
  • 适合长文档
  • 需要额外模型

自定义嵌入模型

使用本地模型

  1. 部署本地嵌入模型服务
  2. 在知识库配置中选择自定义模型
  3. 填写模型服务地址

示例:

模型服务地址:http://localhost:8000/embeddings
请求格式:
{
  "texts": ["文本1", "文本2"],
  "model": "bge-m3"
}

使用 OpenAI

{
  "provider": "openai",
  "model": "text-embedding-ada-002",
  "api_key": "your-api-key"
}

知识库管理

更新知识库

当文档变更时,可以:

  1. 重新索引:重新生成所有文档的向量
  2. 增量更新:只更新变更的文档
  3. 删除文档:从知识库中删除文档

导出知识库

支持导出:

  • 文档列表:导出为 CSV
  • 向量数据:导出为 NPY/CSV
  • 元数据:导出为 JSON

知识库统计

查看知识库统计信息:

  • 文档数量:总文档数
  • 文本块数量:总文本块数
  • 向量数量:总向量数
  • 存储大小:向量存储大小
  • 更新时间:最后更新时间

多知识库管理

创建多个知识库

可以根据不同主题创建多个知识库:

  • product_kb:产品文档
  • technical_kb:技术文档
  • hr_kb:人力资源文档

联合检索

在多个知识库中同时检索:

  1. 选择要检索的知识库
  2. 执行检索
  3. 结果汇总并排序

最佳实践

1. 文档准备

上传文档前的准备工作:

  • 格式统一:转换为统一的格式(如 PDF、Markdown)
  • 清理内容:删除无关内容(页眉页脚、广告等)
  • 结构化:保持良好的文档结构
  • 元数据:添加文档元数据(作者、日期、标签等)

2. 切分策略选择

根据文档类型选择:

文档类型推荐策略块大小
技术文档段落切分-
长报告语义切分-
短文本字符切分500
代码字符切分300

3. 向量参数调优

根据需求调整:

场景向量维度索引类型
高精度1536HNSW
快速检索768IVF_FLAT
大规模512IVF_PQ

4. RAG 提示词设计

设计有效的 RAG 提示词:

你是一个专业的客服助手。请基于以下知识库内容回答用户问题。

知识库内容:
{context}

用户问题:
{question}

回答要求:
1. 只基于知识库内容回答
2. 如果知识库中没有相关信息,明确告知
3. 回答要准确、详细
4. 标注信息来源

请回答:

常见问题

Q: 文档上传后一直处于"处理中"状态?

A: 检查以下项目:

  1. 文档格式:确保文档格式被支持
  2. 文档大小:单个文档不超过 100MB
  3. 向量服务:检查向量服务是否正常运行
  4. 查看日志:查看详细错误信息

Q: 检索结果不准确?

A: 优化建议:

  1. 调整切分策略:尝试不同的切分方式
  2. 增加块大小:增加上下文信息
  3. 使用重排序:启用重排序模型
  4. 优化查询:使用更明确的查询语句
  5. 更换嵌入模型:尝试其他嵌入模型

Q: RAG 回答质量不佳?

A: 改进建议:

  1. 增加检索数量:检索更多相关文本块
  2. 优化提示词:改进问答提示词模板
  3. 更换 LLM:尝试更强大的模型
  4. 人工审核:人工审核和优化回答

Q: 如何处理大文档?

A: 大文档处理建议:

  1. 拆分文档:将大文档拆分为多个小文档
  2. 分批上传:分批上传和处理
  3. 使用语义切分:保持语义完整性
  4. 异步处理:选择异步处理模式

Q: 如何更新知识库?

A: 知识库更新方式:

  1. 单个文档更新:删除旧文档,上传新文档
  2. 批量更新:使用批量导入功能
  3. 全量重建:清空知识库,重新上传
  4. API 更新:通过 API 接口更新

API 参考

详细的 API 文档请参考:

相关文档

8 - 算子市场

使用和管理 DataMate 算子

算子市场提供丰富的数据处理算子,支持自定义算子开发。

功能概述

算子市场模块提供:

  • 内置算子:丰富的内置数据处理算子
  • 算子发布:发布和分享自定义算子
  • 算子安装:安装第三方算子
  • 自定义开发:开发自定义算子

内置算子

数据清洗算子

算子功能输入输出
去重算子删除重复数据数据集去重数据
空值处理处理空值数据集填充数据
格式转换转换数据格式原格式新格式
类型转换转换数据类型原类型新类型

文本处理算子

算子功能
文本分词中文分词
去除停用词删除常见停用词
文本清洗清洗特殊字符
情感分析分析文本情感

图像处理算子

算子功能
格式转换转换图像格式
尺寸调整调整图像大小
质量检测检测图像质量
特征提取提取图像特征

数据增强算子

算子功能
文本增强同义词替换、回译
图像增强旋转、裁剪、颜色调整
数据合成基于模型的数据合成

快速开始

1. 浏览算子

步骤 1:进入算子市场

在左侧导航栏选择 算子市场

步骤 2:浏览算子

在算子市场页面,可以看到所有可用算子:

算子名称类别功能描述评分安装数操作
文本清洗算子文本处理清洗文本特殊字符⭐⭐⭐⭐⭐1.2K查看 安装
图像去重算子图像处理基于内容去重⭐⭐⭐⭐856查看 安装
数据合成算子数据增强使用 LLM 合成数据⭐⭐⭐⭐⭐2.3K查看 安装

步骤 3:查看算子详情

点击算子名称或 查看 按钮,可以看到:

  • 算子简介:功能和用途
  • 使用示例:如何使用算子
  • 输入输出:输入输出格式
  • 参数说明:可配置参数
  • 用户评价:其他用户的评价

2. 安装算子

安装内置算子

内置算子默认已安装,可以直接使用。

安装第三方算子

  1. 在算子详情页,点击 安装 按钮
  2. 等待安装完成
  3. 安装后可以在数据清洗等模块中使用

3. 使用算子

安装算子后,可以在以下场景使用:

数据清洗

  1. 创建数据清洗任务
  2. 在清洗流程中添加算子节点
  3. 配置算子参数
  4. 执行清洗任务

流水线编排

  1. 创建流水线
  2. 添加算子节点
  3. 配置算子参数
  4. 执行流水线

4. 开发自定义算子

创建算子

  1. 在算子市场页,点击 创建算子 按钮
  2. 填写算子信息:
    • 算子名称:例如 my_text_cleaner
    • 算子类别:选择类别
    • 功能描述:描述算子功能
    • 版本号:例如 1.0.0

编写算子代码

Python 算子示例

from typing import Dict, Any

class MyTextCleaner:
    """自定义文本清洗算子"""

    def __init__(self, config: Dict[str, Any]):
        """
        初始化算子

        Args:
            config: 算子配置
                - remove_special_chars: 是否去除特殊字符
                - to_lowercase: 是否转为小写
        """
        self.remove_special_chars = config.get('remove_special_chars', True)
        self.to_lowercase = config.get('to_lowercase', True)

    def process(self, data: Any) -> Any:
        """
        处理数据

        Args:
            data: 输入数据

        Returns:
            处理后的数据
        """
        if isinstance(data, str):
            result = data
            if self.to_lowercase:
                result = result.lower()
            if self.remove_special_chars:
                # 去除特殊字符
                import re
                result = re.sub(r'[^\w\s]', '', result)
            return result
        return data

    def get_config_schema(self) -> Dict[str, Any]:
        """
        获取配置模式

        Returns:
            配置模式定义
        """
        return {
            "type": "object",
            "properties": {
                "remove_special_chars": {
                    "type": "boolean",
                    "title": "去除特殊字符",
                    "default": True
                },
                "to_lowercase": {
                    "type": "boolean",
                    "title": "转为小写",
                    "default": True
                }
            }
        }

打包算子

  1. 创建算子目录结构:
my_text_cleaner/
├── __init__.py
├── operator.py       # 算子代码
├── config.json       # 配置文件
├── README.md         # 说明文档
└── requirements.txt  # 依赖列表
  1. 打包为 ZIP 文件

发布算子

  1. 在创建算子页,上传算子包
  2. 填写算子信息
  3. 点击 发布 按钮

发布选项

  • 私有算子:仅自己可见
  • 公开算子:所有人可见
  • 团队共享:团队成员可见

高级功能

算子版本管理

创建新版本

  1. 进入算子详情页
  2. 点击 版本 标签
  3. 点击 创建版本
  4. 上传新版本代码
  5. 填写版本说明

版本回退

如果新版本有问题,可以回退到旧版本。

算子测试

单元测试

为算子编写单元测试:

import unittest

class TestMyTextCleaner(unittest.TestCase):
    def setUp(self):
        config = {
            'remove_special_chars': True,
            'to_lowercase': True
        }
        self.cleaner = MyTextCleaner(config)

    def test_lowercase(self):
        input_text = "Hello World"
        output = self.cleaner.process(input_text)
        self.assertEqual(output, "hello world")

    def test_remove_special_chars(self):
        input_text = "Hello!!! World..."
        output = self.cleaner.process(input_text)
        self.assertEqual(output, "hello world")

在线测试

在算详情页,点击 测试 按钮:

  1. 输入测试数据
  2. 配置算子参数
  3. 执行测试
  4. 查看输出结果

算子权限管理

权限级别

级别说明
私有仅创建者可见和使用
团队团队成员可见和使用
公开所有用户可见和使用

权限设置

  1. 进入算子详情页
  2. 点击 设置 标签
  3. 修改权限级别
  4. 保存设置

最佳实践

1. 算子设计

好的算子设计:

  • 单一职责:每个算子只做一件事
  • 可配置:提供丰富的配置选项
  • 错误处理:完善的错误处理机制
  • 性能优化:考虑大数据量场景

2. 文档编写

完善的文档应该包含:

  • 功能说明:清晰描述算子功能
  • 使用示例:提供使用示例
  • 参数说明:详细说明每个参数
  • 注意事项:说明使用注意事项

3. 测试覆盖

充分的测试:

  • 单元测试:测试核心功能
  • 边界测试:测试边界情况
  • 性能测试:测试大数据量场景

常见问题

Q: 算子执行失败怎么办?

A: 排查步骤:

  1. 查看日志:查看详细错误信息
  2. 检查配置:确认参数配置正确
  3. 检查数据:确认输入数据格式正确
  4. 本地测试:在本地环境测试算子

Q: 如何优化算子性能?

A: 优化建议:

  1. 减少内存使用:使用生成器、迭代器
  2. 并行处理:使用多进程/多线程
  3. 批量处理:批量处理数据
  4. 缓存结果:缓存重复计算

Q: 如何分享算子?

A: 分享方式:

  1. 公开发布:发布为公开算子
  2. 团队共享:团队内共享
  3. 导出分享:导出算子包文件分享

相关文档

9 - 流水线编排

使用 DataMate 进行可视化流程编排

流水线编排模块提供拖拽式可视化界面,帮助您设计和管理复杂的数据处理流程。

功能概述

流水线编排模块提供:

  • 可视化设计器:拖拽式流程设计
  • 丰富的节点类型:数据处理、条件判断、循环等
  • 流程执行:自动执行和监控流程
  • 模板管理:保存和复用流程模板
  • 版本管理:流程版本控制

节点类型

数据节点

节点功能配置
输入数据集从数据集读取数据选择数据集
输出数据集写入数据到数据集选择数据集
数据采集执行数据采集任务选择采集任务
数据清洗执行数据清洗任务选择清洗任务
数据标注执行数据标注任务选择标注任务
数据合成执行数据合成任务选择合成任务
数据评估执行数据评估任务选择评估任务

逻辑节点

节点功能配置
条件分支根据条件执行不同分支条件表达式
循环重复执行节点循环次数/条件
并行并行执行多个分支分支数量
等待等待指定时间等待时长
跳转跳转到指定节点目标节点

算子节点

节点功能配置
清洗算子执行单个清洗算子算子类型、参数
合成算子执行数据合成指令模板、参数
自定义算子执行自定义算子算子文件、参数

集成节点

节点功能配置
HTTP 请求发送 HTTP 请求URL、方法、参数
API 调用调用 DataMate APIAPI 端点、参数
消息队列发送/接收消息队列配置
Webhook触发 WebhookWebhook URL

快速开始

1. 创建流水线

步骤 1:进入流水线编排页面

在左侧导航栏选择 流水线编排

步骤 2:创建流水线

点击右上角 创建流水线 按钮。

步骤 3:填写基本信息

  • 流水线名称:例如 data_processing_pipeline
  • 流水线描述:描述流水线用途(可选)
  • 标签:添加标签(可选)

步骤 4:进入流程设计器

点击 创建 后,自动进入流程设计器。

2. 设计流程

步骤 1:添加节点

  1. 从左侧节点库拖拽节点到画布
  2. 或双击节点库中的节点

示例流程:

输入数据集 → 数据清洗 → 条件分支
                              ├── 满足条件 → 数据标注 → 输出数据集
                              └── 不满足条件 → 数据合成 → 输出数据集

步骤 2:配置节点

点击节点,在右侧配置面板填写参数:

输入数据集节点

  • 选择数据集:raw_data
  • 数据过滤:(可选)

数据清洗节点

  • 清洗任务:选择已创建的清洗任务
  • 失败策略:跳过 / 终止

条件分支节点

  • 条件表达式:{quality_score} > 0.8

步骤 3:连接节点

  1. 从源节点的输出端口拖拽到目标节点的输入端口
  2. 或选择两个节点后点击连接按钮

步骤 4:保存流程

点击右上角 保存 按钮保存流程。

3. 执行流水线

步骤 1:进入执行页面

在流水线列表页,点击流水线名称进入详情。

步骤 2:执行流水线

点击 立即执行 按钮。

步骤 3:监控执行

在执行监控页面可以看到:

  • 执行状态:运行中 / 已完成 / 失败
  • 执行进度:当前节点、总进度
  • 节点状态:每个节点的执行状态
  • 执行日志:详细的执行日志

示例执行状态:

[✓] 输入数据集 - 已完成 (1000 条记录)
[✓] 数据清洗 - 已完成 (950 条记录)
[→] 条件分支 - 运行中
  [→] 分支 1 (满足条件) - 等待中
  [→] 分支 2 (不满足条件) - 运行中
    [✓] 数据合成 - 已完成 (500 条记录)
    [→] 输出数据集 - 运行中

4. 管理流水线

查看流水线列表

在流水线编排页面,可以看到所有流水线:

流水线名称状态最后执行时间执行次数操作
数据处理流程已启用2024-01-1515执行 编辑
模型训练流程已禁用2024-01-148执行 编辑

编辑流水线

点击 编辑 按钮可以修改流程设计。

启用/禁用流水线

点击 启用/禁用 按钮切换流水线状态。

删除流水线

点击 删除 按钮删除流水线(需确认)。

高级功能

流程模板

保存为模板

  1. 设计好流程后
  2. 点击 保存为模板
  3. 输入模板名称和描述
  4. 点击保存

使用模板

  1. 创建流水线时,点击 使用模板
  2. 从模板列表选择模板
  3. 系统加载模板到设计器

参数化流程

流程中可以使用参数,实现动态配置:

定义参数

在流水线配置中定义参数:

{
  "parameters": [
    {
      "name": "input_dataset",
      "type": "dataset",
      "required": true,
      "description": "输入数据集"
    },
    {
      "name": "threshold",
      "type": "number",
      "default": 0.8,
      "description": "质量阈值"
    }
  ]
}

使用参数

在节点配置中使用参数:

条件表达式:{quality_score} > ${threshold}

定时执行

配置定时执行流水线:

  1. 在流水线详情页,点击 定时执行
  2. 添加定时规则:
    • Cron 表达式:0 0 2 * * ?(每天凌晨 2 点)
    • 执行参数:填写参数值
  3. 启用定时任务

事件触发

配置事件触发:

  1. 在流水线详情页,点击 事件触发
  2. 添加触发事件:
    • 数据上传完成
    • 任务执行完成
    • Webhook 触发
  3. 配置触发条件

错误处理

节点级错误处理

为每个节点配置失败策略:

  • 跳过:跳过失败节点,继续执行
  • 重试:自动重试(可配置重试次数)
  • 终止:终止整个流程

流程级错误处理

配置全局错误处理:

  • 失败通知:发送通知(邮件、Webhook)
  • 回滚操作:执行回滚流程
  • 记录日志:详细记录错误信息

版本管理

创建版本

在流水线编辑页,点击 保存版本

  • 输入版本号:v1.0.0
  • 输入版本说明
  • 点击保存

查看版本历史

在流水线详情页,点击 版本历史

版本创建时间创建者说明操作
v1.0.02024-01-15admin初始版本查看 恢复
v1.1.02024-01-16admin添加数据清洗查看 恢复

恢复版本

点击版本的 恢复 按钮,将流程恢复到该版本。

最佳实践

1. 流程设计

推荐的设计原则:

  • 模块化:将复杂流程拆分为多个子流程
  • 可重用:使用模板和参数化
  • 可维护:添加注释和说明
  • 可测试:先测试单个节点再组合

2. 性能优化

优化流程性能:

  • 并行执行:使用并行节点提高效率
  • 减少数据传输:尽量在数据所在位置处理
  • 批量处理:使用批量操作代替循环
  • 缓存中间结果:避免重复计算

3. 错误处理

完善的错误处理:

  • 设置超时:为每个节点设置合理的超时时间
  • 配置重试:对可能失败的操作配置重试
  • 记录日志:详细记录执行日志
  • 通知机制:关键节点失败时发送通知

4. 监控和调试

有效的监控调试:

  • 实时监控:监控流程执行状态
  • 查看日志:查看详细的执行日志
  • 断点调试:在关键节点设置断点
  • 数据预览:预览中间结果

常见问题

Q: 流程执行失败怎么办?

A: 排查步骤:

  1. 查看执行日志:获取详细错误信息
  2. 检查节点配置:确认节点参数正确
  3. 检查数据:确认输入数据格式正确
  4. 单独测试:单独执行问题节点
  5. 检查依赖:确认依赖服务正常

Q: 如何优化流程性能?

A: 优化建议:

  1. 并行化:使用并行节点并行执行
  2. 批量操作:合并多个小操作
  3. 减少数据传输:尽量在本地处理
  4. 缓存结果:缓存中间结果避免重复计算
  5. 优化节点顺序:先过滤数据再处理

Q: 如何处理复杂的条件逻辑?

A: 处理复杂逻辑:

  1. 使用多个条件节点:拆分复杂条件
  2. 使用表达式:编写复杂的条件表达式
  3. 自定义脚本:使用自定义算子处理复杂逻辑
  4. 子流程:将复杂逻辑封装为子流程

Q: 流程可以嵌套吗?

A: 支持流程嵌套:

  1. 子流程节点:调用其他流程作为子流程
  2. 参数传递:在父子流程间传递参数
  3. 返回值:子流程可以返回结果给父流程

Q: 如何调试流程?

A: 调试方法:

  1. 单步执行:逐步执行流程观察中间结果
  2. 数据预览:预览每个节点的输入输出
  3. 日志查看:查看详细的执行日志
  4. 断点设置:在关键节点设置断点
  5. 模拟执行:使用测试数据模拟执行

相关文档

10 - Agent 对话

使用 DataMate Agent 进行智能对话

Agent 对话模块集成大语言模型,提供智能问答和知识库检索能力。

功能概述

Agent 对话模块提供:

  • 智能对话:基于大模型的自然语言对话
  • 知识库问答:集成 RAG 的知识库问答
  • 多轮对话:支持上下文的多轮对话
  • 对话管理:对话历史和管理
  • 快捷指令:常用操作的快捷指令

快速开始

1. 访问 Agent

在左侧导航栏选择 Agent 对话,或直接访问:

  • 本地部署:http://localhost:30000/chat
  • 生产环境:https://your-domain/chat

2. 开始对话

在对话框中输入问题,例如:

用户:DataMate 支持哪些数据格式?

助手:DataMate 支持多种数据格式:

图像:JPG、PNG、GIF、BMP、WebP
文本:TXT、MD、JSON、CSV
音频:MP3、WAV、FLAC、AAC
视频:MP4、AVI、MOV、MKV

这些格式可以在数据管理模块中上传和管理。

3. 使用知识库问答

启用知识库

  1. 点击 设置 按钮
  2. 知识库 设置中,选择要使用的知识库
  3. 保存设置

进行知识库问答

用户:如何创建数据清洗任务?

助手:根据知识库文档,创建数据清洗任务步骤如下:

1. 进入数据处理页面
2. 点击创建任务按钮
3. 配置基本信息(任务名称、源数据集、输出数据集)
4. 配置清洗流程(拖拽算子到画布)
5. 配置执行参数
6. 创建并执行任务

详细的配置说明请参考用户指南。

[来源:user_guide.md, data_cleansing.md]

高级功能

对话模式

通用对话

使用大模型进行通用对话,不使用知识库:

  • 适合:闲聊、常识性问题、创意任务
  • 模型:GPT-4、Claude 3、文心一言等

知识库问答

基于知识库内容回答问题:

  • 适合:产品文档、技术文档、企业知识
  • 特点:答案基于知识库,标注来源

混合模式

结合通用对话和知识库问答:

  • 先检索知识库
  • 如果知识库中没有相关信息,使用通用对话

快捷指令

使用快捷指令快速执行操作:

指令功能示例
/dataset查询数据集/dataset list
/task查询任务/task status
/help显示帮助/help
/clear清空对话/clear

对话历史

查看历史

  1. 点击左侧 历史记录 标签
  2. 选择历史对话
  3. 查看对话内容

继续对话

点击历史对话可以继续之前的对话。

导出对话

导出对话记录:

  • Markdown:导出为 Markdown 文件
  • JSON:导出为 JSON 格式
  • PDF:导出为 PDF 文件

提示词模板

创建提示词模板用于特定场景:

技术支持模板

你是一个专业的技术支持助手。请基于 DataMate 知识库回答用户问题。

要求:
1. 只基于知识库内容回答
2. 如果知识库中没有相关信息,明确告知用户
3. 回答要准确、详细
4. 提供操作步骤时,要清晰明了
5. 标注信息来源

用户问题:{question}

知识库内容:
{context}

请回答:

数据分析模板

你是一个数据分析专家。请分析以下数据并提供洞察。

数据:
{data}

分析要求:
1. 数据概览
2. 关键发现
3. 趋势分析
4. 建议和结论

请提供分析报告:

最佳实践

1. 有效的提问

获得更好的回答:

  • 明确具体:问题描述要清晰明确
  • 提供上下文:提供相关的背景信息
  • 分步骤提问:复杂问题拆分为多个小问题

好的提问示例:

❌ 怎么用 DataMate?
✅ 如何在 DataMate 中创建一个数据清洗任务,清洗包含空值和重复值的 CSV 文件?

2. 知识库使用

充分利用知识库:

  • 选择合适知识库:根据问题选择对应的知识库
  • 查看来源:查看答案来源文档
  • 验证信息:重要信息要验证来源文档

3. 对话管理

管理对话历史:

  • 定期清理:删除不需要的对话历史
  • 重要对话:导出保存重要对话
  • 使用标题:为对话添加描述性标题

常见问题

Q: Agent 回答不准确怎么办?

A: 改进建议:

  1. 优化提问:更明确、更具体的问题
  2. 检查知识库:确认知识库中有相关信息
  3. 更换模型:尝试使用更强大的模型
  4. 提供上下文:提供更多背景信息
  5. 分步提问:将复杂问题拆分

Q: Agent 不回答我的问题?

A: 可能原因:

  1. 知识库中没有:检查知识库是否有相关内容
  2. 问题不明确:重新表述问题
  3. 知识库未启用:检查知识库设置
  4. 模型限制:某些模型可能有内容限制

Q: 如何切换知识库?

A: 切换步骤:

  1. 点击 设置 按钮
  2. 在知识库设置中,选择其他知识库
  3. 保存设置
  4. 开始新的对话

Q: 对话历史保存在哪里?

A: 存储位置:

  • 本地存储:存储在浏览器本地
  • 云端存储:(可选)存储在服务器
  • 导出保存:导出为文件保存

相关文档