这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
用户指南
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 等关系型数据库
- 异构同步:不同数据源之间的数据同步
- 批量归集:大规模数据的批量归集和同步
- 定时任务:支持定时执行归集任务
- 任务监控:实时监控归集任务执行状态
支持的数据源
| 数据源类型 | Reader | Writer | 说明 |
|---|
| 通用关系型数据库 | ✅ | ✅ | 支持 MySQL、PostgreSQL、OpenGauss、SQL Server、达梦、DB2 |
| MySQL | ✅ | ✅ | 关系型数据库 |
| PostgreSQL | ✅ | ✅ | 关系型数据库 |
| OpenGauss | ✅ | ✅ | 关系型数据库 |
| SQL Server | ✅ | ✅ | 微软数据库 |
| 达梦 | ✅ | ✅ | 国产数据库 |
| DB2 | ✅ | ✅ | IBM 数据库 |
| StarRocks | ✅ | ✅ | 分析型数据库 |
| NAS | ✅ | ✅ | 网络存储 |
| S3 | ✅ | ✅ | 对象存储 |
| GlusterFS | ✅ | ✅ | 分布式文件系统 |
| API 归集 | ✅ | ✅ | API 接口数据 |
| JSON 文件 | ✅ | ✅ | JSON 格式文件 |
| CSV 文件 | ✅ | ✅ | CSV 格式文件 |
| TXT 文件 | ✅ | ✅ | 文本文件 |
| FTP | ✅ | ✅ | FTP 服务器 |
| HDFS | ✅ | ✅ | Hadoop 分布式文件系统 |
快速开始
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: 按以下步骤排查:
- 检查数据源连接:确保数据源地址、端口、用户名、密码正确
- 检查网络连接:确保 DataMate 能访问数据源
- 查看执行日志:获取详细错误信息
- 检查数据格式:确保数据格式与配置一致
- 检查目标数据集:确保目标数据集存在且有写入权限
Q: 如何采集大表数据?
A: 对于大表数据采集:
- 使用增量采集:配置时间字段进行增量同步
- 分批采集:将大表拆分为多个小任务
- 调整并发参数:适当增加 channel 数量
- 使用过滤条件:只采集需要的数据
Q: 如何实现增量采集?
A: 配置增量采集条件:
在数据源配置中,可以设置查询条件(如 SQL WHERE 子句),例如:
WHERE update_time > '${lastTime}'
系统会在每次执行时记录最后一次执行时间,下次执行时自动使用该时间进行增量采集。
Q: 采集速度慢怎么办?
A: 优化采集速度:
- 增加并发通道:将 channel 设置为 3-5
- 调整流控参数:增加 byte 和 record 限制
- 优化 SQL 查询:使用索引、减少查询字段
- 使用批量写入:启用批量写入模式
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. 上传文件
方式一:拖拽上传
- 进入数据集详情页面
- 将文件直接拖拽到上传区域
- 等待上传完成
方式二:点击上传
- 点击 上传文件 按钮
- 选择本地文件
- 等待上传完成
方式三:分片上传(大文件)
对于大文件(>100MB),系统自动使用分片上传:
- 选择大文件上传
- 系统自动切分文件
- 逐片上传
- 自动合并
方式四:批量上传
支持批量选择多个文件上传:
- 点击 上传文件 按钮
- 按住 Ctrl/Cmd 多选文件
- 点击确定开始上传
3. 创建目录
步骤 1:进入数据集
在数据管理页面,点击数据集名称进入详情。
步骤 2:创建目录
- 点击 创建目录 按钮
- 输入目录名称
- 选择父目录(可选)
- 点击确定
目录结构示例:
user_images_dataset/
├── train/
│ ├── cat/
│ └── dog/
├── test/
│ ├── cat/
│ └── dog/
└── validation/
├── cat/
└── dog/
4. 管理文件
查看文件
在数据集详情页面,可以看到所有文件列表:
| 文件名 | 大小 | 包含文件数 | 上传时间 | 标签 | 标签更新时间 | 操作 |
|---|
| image1.jpg | 2.3 MB | 1 | 2024-01-15 | 训练集 | 2024-01-16 | 下载 重命名 删除 |
| image2.png | 1.8 MB | 1 | 2024-01-15 | 验证集 | 2024-01-16 | 下载 重命名 删除 |
预览文件
点击 预览 按钮,可以在浏览器中预览文件:
- 图像:显示缩略图和详细信息
- 文本:显示文本内容
- 音频:在线播放
- 视频:在线播放
下载文件
目前不支持批量下载和打包下载。
删除文件
目前不支持批量删除。
5. 数据集操作
查看统计信息
在数据集详情页面,可以看到:
- 总文件数:数据集中的文件总数
- 总大小:所有文件的总大小
编辑数据集
点击数据集的 编辑 按钮,可以修改:
删除数据集
点击数据集的 删除 按钮,可以删除整个数据集。
注意:删除数据集会同时删除其中的所有文件,此操作不可恢复。
高级功能
标签管理
创建标签
- 在数据集列表页,点击 标签管理
- 点击 创建标签
- 输入标签名称
使用标签
- 编辑数据集
- 在标签栏选择已有标签
- 保存数据集
标签筛选
在数据集列表页,点击标签可以筛选具有该标签的数据集。
最佳实践
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. 数据备份
目前系统不支持自动备份功能,如需备份数据,可以通过以下方式手动下载单个文件:
- 进入数据集详情页面
- 找到需要备份的文件
- 点击文件的 下载 按钮
常见问题
Q: 上传大文件失败怎么办?
A: 大文件上传建议:
- 使用分片上传:系统自动启用分片上传
- 检查网络连接:确保网络稳定
- 调整上传参数:增加超时时间
- 使用 FTP/SFTP:对于超大文件,建议使用 FTP 上传
Q: 如何导入已有的数据?
A: 三种方式导入已有数据:
- 上传文件:通过界面上传
- 添加文件:如果文件已在服务器上,使用添加文件功能
- 数据采集:使用数据采集模块从外部数据源采集
Q: 如何共享数据集?
A: 目前数据集共享方式:
- 导出数据集:导出为文件分享
- 设置权限:(即将推出)设置数据集访问权限
- API 访问:通过 API 接口访问数据集
Q: 数据集有大小限制吗?
A: 数据集大小限制:
- 单个文件:最大 5GB(分片上传)
- 数据集总大小:受存储空间限制
- 文件数量:没有明确限制
建议定期清理不需要的文件以释放空间。
Q: 如何查看数据集的详细信息?
A: 在数据集详情页面可以查看:
- 基本信息:名称、描述、类型、标签
- 统计信息:文件数、总大小、完成率
- 文件列表:所有文件及其详情
- 操作日志:数据集的操作历史
API 参考
详细的 API 文档请参考:
相关文档
3 - 数据清洗
使用 DataMate 清洗和预处理数据
数据清洗模块提供强大的数据处理能力,帮助您清洗、转换和优化数据质量。
功能概述
数据清洗模块提供:
- 内置清洗算子:丰富的前置清洗算子库
- 可视化配置:拖拽式配置清洗流程
- 模板管理:保存和复用清洗模板
- 批量处理:支持大规模数据批量清洗
- 实时预览:预览清洗结果
清洗算子类型
数据质量算子
| 算子 | 功能 | 适用数据类型 |
|---|
| 去重 | 删除重复数据 | 所有类型 |
| 空值处理 | 删除或填充空值 | 所有类型 |
| 异常值检测 | 检测和处理异常值 | 数值型 |
| 格式校验 | 校验数据格式 | 所有类型 |
文本清洗算子
| 算子 | 功能 |
|---|
| 去除特殊字符 | 去除文本中的特殊符号 |
| 大小写转换 | 统一大小写格式 |
| 去除停用词 | 去除常见停用词 |
| 文本分词 | 中文分词处理 |
| HTML 标签清理 | 清理 HTML 标签 |
图像清洗算子
| 算子 | 功能 |
|---|
| 格式转换 | 转换图像格式 |
| 尺寸调整 | 统一图像尺寸 |
| 质量检测 | 检测图像质量 |
| 去重 | 基于内容去重 |
数据转换算子
| 算子 | 功能 |
|---|
| 类型转换 | 转换数据类型 |
| 归一化 | 数值归一化处理 |
| 编码转换 | 字符编码转换 |
| 日期格式化 | 统一日期格式 |
快速开始
1. 创建清洗任务
步骤 1:进入数据清洗页面
在左侧导航栏选择 数据处理。
步骤 2:创建任务
点击右上角 创建任务 按钮。
步骤 3:配置基本信息
- 任务名称:例如
user_data_cleansing - 任务描述:描述清洗任务的目的(可选)
- 源数据集:选择要清洗的数据集
- 输出数据集:选择或创建输出数据集
步骤 4:配置清洗流程
在清洗流程配置页面:
- 从左侧算子库拖拽算子到中间画布
- 连接算子形成处理流程
- 配置每个算子的参数
- 预览清洗结果
示例流程:
输入数据 → 去重 → 空值处理 → 格式校验 → 输出数据
步骤 5:配置执行参数
- 执行模式:立即执行 / 定时执行
- 并发数:任务并发数(默认 1)
- 失败策略:跳过失败记录 / 终止任务
步骤 6:创建并执行
点击 创建 按钮创建任务。如果选择立即执行,任务将自动开始运行。
2. 使用清洗模板
创建模板
- 配置好清洗流程
- 点击 保存为模板
- 输入模板名称和描述
- 点击保存
使用模板
- 创建清洗任务时,点击 使用模板
- 从模板列表选择模板
- 系统自动加载模板配置
- 根据需要调整配置
3. 监控清洗任务
查看任务列表
在数据清洗页面,可以看到所有清洗任务:
| 任务名称 | 源数据集 | 输出数据集 | 状态 | 进度 | 操作 |
|---|
| 文本清洗 | raw_text | clean_text | 运行中 | 50% | 查看详情 |
| 图像去重 | images | unique_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: 按以下步骤排查:
- 检查数据格式:确保数据格式与算子要求一致
- 查看执行日志:获取详细错误信息
- 检查参数配置:确保算子参数配置正确
- 测试单个算子:单独测试问题算子
- 减少数据量:先用小数据集测试
Q: 如何处理大量数据?
A: 大数据量清洗建议:
- 分批处理:将大数据集拆分为多个小批次
- 增加并发:适当增加并发数
- 使用增量清洗:只清洗新增或变更的数据
- 优化流程:简化清洗流程,移除不必要的算子
Q: 清洗速度慢怎么办?
A: 优化清洗速度:
- 减少算子数量:只使用必要的算子
- 优化算子顺序:先过滤数据再处理
- 增加并发:提高任务并发数
- 使用增量处理:避免重复处理
Q: 如何保证清洗质量?
A: 建议的清洗流程:
- 数据探索:先了解数据质量状况
- 制定规则:根据业务需求制定清洗规则
- 小批量测试:先在小数据集上测试
- 验证结果:清洗后验证数据质量
- 定期审查:定期审查和更新清洗规则
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:进行标注
- 查看当前待标注样本
- 根据标注类型进行标注
- 点击 提交 完成标注
- 自动加载下一个样本
步骤 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. 标注效率
提高标注效率:
- 使用快捷键:使用键盘快捷键
- 批量操作:支持批量标注
- 智能推荐:使用 AI 辅助标注
- 合理分工:根据难度分配任务
常见问题
Q: 标注质量不理想怎么办?
A: 改进建议:
- 完善标注指南:更详细的标注说明
- 加强培训:培训标注员
- 增加审核:提高审核比例
- 使用预标注:使用模型辅助
- 提供反馈:及时反馈问题
Q: 标注速度慢怎么办?
A: 提高效率:
- 使用预标注:减少从零开始标注
- 优化界面:使用快捷键和批量操作
- 合理分工:根据难度分配任务
- 激励标注员:设置激励机制
Q: 如何处理标注不一致?
A: 处理方法:
- 明确标准:制定明确的标注标准
- 多数投票:使用多个标注员投票
- 专家裁决:专家处理争议标注
- 计算一致性:使用 Cohen’s Kappa 等指标
Q: 支持哪些标注格式?
A: 导出格式:
- JSON
- CSV
- COCO (用于目标检测)
- YOLO (用于目标检测)
- Pascal VOC (用于目标检测)
- 自定义格式
相关文档
5 - 数据合成
使用大模型进行数据增强和合成
数据合成模块利用大模型能力,自动生成高质量的训练数据,降低数据采集成本。
功能概述
数据合成模块提供:
- 指令模板管理:创建和管理合成指令模板
- 单任务合成:创建单个合成任务
- 比例合成任务:按指定比例合成多类别数据
- 大模型集成:支持多种大模型 API
- 质量评估:自动评估合成数据质量
快速开始
1. 创建指令模板
步骤 1:进入数据合成页面
在左侧导航栏选择 数据合成 → 合成任务。
步骤 2:创建指令模板
- 点击 指令模板 标签
- 点击 创建模板 按钮
步骤 3:配置模板
基本信息:
- 模板名称:例如
qa_generation_template - 模板描述:描述模板用途(可选)
- 模板类型:选择模板类型(问答、对话、摘要等)
提示词配置:
示例提示词:
你是一个专业的数据生成助手。请根据以下要求生成数据:
任务:生成问答对
主题:{topic}
数量:{count}
难度:{difficulty}
要求:
1. 问题要清晰明确
2. 答案要准确完整
3. 涵盖不同难度级别
输出格式:JSON
[
{
"question": "...",
"answer": "..."
}
]
参数配置:
- 模型:选择使用的大模型(GPT-4、Claude、本地模型等)
- 温度:控制生成随机性(0-1)
- 最大 tokens:限制生成长度
- 其他参数:根据模型配置
步骤 4:保存模板
点击 保存 按钮保存模板。
2. 创建合成任务
步骤 1:填写基本信息
- 返回 数据合成 页面
- 点击 创建任务 按钮
- 填写基本信息:
- 任务名称:例如
medical_qa_synthesis - 任务描述:描述任务目的(可选)
步骤 2:选择数据集和选择文件
从现有数据集中选择合成所需的数据:
- 选择数据集:从列表中选择需要使用的数据集
- 选择文件:
- 可以选择整个数据集的所有文件
- 也可以选择数据集中的部分特定文件
- 支持多选多个文件
步骤 3:选择合成指令模板
选择已创建的指令模板,或创建新模板:
- 从模板库选择:从已创建的模板中选择
- 模板类型:问答生成、对话生成、摘要生成等
- 预览模板:可以查看模板的提示词内容
步骤 4:填写合成配置
合成配置包含以下四个部分:
1. 设置合成总数
设置整个任务生成的数据总量上限:
| 参数 | 说明 | 默认值 | 取值范围 |
|---|
| 合成总数上限 | 整个任务生成的最大问答对数量 | 5000 | 1-100,000 |
此设置可选,适用于大规模合成任务的总量控制。
2. 配置文本切片策略
对输入的文本文件进行切片处理,支持多种切片方式:
| 参数 | 说明 | 默认值 |
|---|
| 切片方式 | 选择切片策略 | 默认分块 |
| 切片大小 | 每个切片的字符数 | 3000 |
| 重叠大小 | 相邻切片之间的重叠字符数 | 100 |
切片方式选项:
- 默认分块:使用系统默认的智能分块策略
- 按章节分块:根据章节结构进行分块
- 按段落分块:按照段落边界进行分块
- 固定长度分块:按照固定的字符长度进行分块
- 自定义分隔符分块:使用自定义分隔符进行分块
3. 配置问题合成参数
设置问题生成的相关参数:
| 参数 | 说明 | 默认值 | 取值范围 |
|---|
| 问题生成数量 | 每个切片生成的问题数量 | 1 | 1-20 |
| 温度 | 控制问题生成的随机性和多样性 | 0.7 | 0-2 |
| 使用模型 | 选择用于生成问题的 CHAT 模型 | - | 从模型列表选择 |
参数说明:
- 问题生成数量:每个文本切片生成的问题个数,数值越高生成的问题越多
- 温度:值越高生成的问题越多样,值越低生成的问题越稳定
4. 配置答案合成参数
设置答案生成的相关参数:
| 参数 | 说明 | 默认值 | 取值范围 |
|---|
| 温度 | 控制答案生成的稳定性 | 0.7 | 0-2 |
| 使用模型 | 选择用于生成答案的 CHAT 模型 | - | 从模型列表选择 |
参数说明:
- 温度:值越低答案越保守和准确,值越高答案越多样和创造性
合成类型:
系统支持两种合成类型:
- SFT 问答数据合成:生成监督微调用的问答对数据
- COT 链式推理合成:生成包含推理过程的数据
步骤 5:开始任务
点击 开始任务 按钮,任务将自动开始执行。
3. 创建比例合成任务
比例合成任务用于按指定比例合成多类别平衡数据。
步骤 1:创建比例任务
- 在左侧导航栏选择 数据合成 → 配比任务
- 点击 创建任务 按钮
步骤 2:填写基本信息
| 参数 | 说明 | 是否必填 |
|---|
| 任务名称 | 任务的唯一标识名称 | 是 |
| 目标总数量 | 整个配比任务的目标总数量 | 是 |
| 任务描述 | 描述配比任务的目的和要求 | 否 |
示例:
- 任务名称:
balanced_dataset_synthesis - 目标总数量:10000
- 任务描述:生成训练集和验证集的平衡数据
步骤 3:选择数据集
从现有数据集中选择需要参与配比的数据集:
数据集选择功能:
- 搜索数据集:通过关键词搜索数据集
- 多选支持:可以同时选择多个数据集
- 数据集信息:显示每个数据集的详细信息
- 数据集名称和类型
- 数据集描述
- 文件数量
- 数据集大小
- 标签分布预览(最多显示 8 个标签)
选择数据集后,系统会自动加载每个数据集的标签分布信息。
步骤 4:填写配比配置
为每个选中的数据集配置具体的合成规则:
配比配置项:
| 参数 | 说明 | 取值范围 |
|---|
| 标签 | 从数据集的标签分布中选择标签 | 根据数据集标签 |
| 标签值 | 选中标签下的具体值 | 根据标签值列表 |
| 标签更新时间 | 选择标签更新日期范围(可选) | 日期选择器 |
| 数量 | 该配置项生成的数据数量 | 0 到目标总数量 |
功能说明:
- 自动分配:点击"自动分配"按钮,系统会自动将目标总数量均匀分配到各数据集
- 数量限制:每个配置项的数量不能超过该数据集的文件总数
- 百分比计算:系统自动计算每个配置项占总数量的百分比
- 删除配置:可以删除不需要的配置项
- 添加配置:每个数据集可以添加多个不同的标签配置
示例配置:
| 数据集 | 标签 | 标签值 | 标签更新时间 | 数量 |
|---|
| 训练数据集 | 类别 | 训练 | - | 6000 |
| 训练数据集 | 类别 | 验证 | - | 2000 |
| 测试数据集 | 类别 | 测试 | 2024-01-01 至 2024-12-31 | 2000 |
步骤 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-4 | OpenAI | 高质量生成 |
| GPT-3.5-Turbo | OpenAI | 快速生成 |
| Claude 3 | Anthropic | 长文本生成 |
| 文心一言 | 百度 | 中文优化 |
| 通义千问 | 阿里 | 中文优化 |
| 本地模型 | 部署本地模型 | 私有化部署 |
数据质量控制
启用数据质量评估:
- 格式验证:验证输出格式
- 内容检查:检查敏感词、不当内容
- 重复检测:检测重复生成的内容
- 质量评分:对生成内容打分
批量生成
对于大规模数据生成:
- 分批生成:将大批量任务拆分为多个小批次
- 并发控制:控制并发请求数量
- 失败重试:自动重试失败的生成请求
- 断点续传:支持从中断处继续生成
最佳实践
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.5 | 0.1-0.3 | 0.7-1.0 |
| 最大 tokens | 根据需求 | 较短 | 较长 |
| Top P | 0.9-0.95 | 0.9 | 0.95-1.0 |
3. 数据验证
生成后进行数据验证:
- 格式检查:检查输出格式是否正确
- 内容审核:人工抽查部分数据
- 质量评估:使用评估工具打分
- 去重:去除重复或高度相似的内容
常见问题
Q: 生成数据质量不理想怎么办?
A: 优化建议:
- 改进提示词:更详细、更明确的指令
- 调整参数:降低温度、增加最大 tokens
- 提供示例:在提示词中给出示例
- 更换模型:尝试其他大模型
- 人工审核:人工审核和筛选
Q: 生成速度慢怎么办?
A: 加速建议:
- 减少数量:分批生成,不要一次性生成过多
- 调整并发:适当增加并发数
- 使用更快的模型:如 GPT-3.5-Turbo
- 缩短输出:减少最大 tokens
- 使用本地模型:部署本地模型加速
Q: 如何保证生成数据的多样性?
A: 增加多样性:
- 提高温度:设置温度为 0.7-1.0
- 丰富提示词:在提示词中加入变化元素
- 多次生成:多次生成后去重
- 使用不同种子:改变随机种子
- 混合模型:使用多个模型生成
Q: 生成的数据有重复怎么办?
A: 去重方法:
- 启用去重:在任务配置中启用去重功能
- 调整温度:提高温度增加随机性
- 丰富提示词:在提示词中加入更多变化
- 后处理去重:使用去重工具处理
Q: 如何控制生成成本?
A: 成本控制:
- 选择合适模型:根据需求选择模型
- 控制长度:限制最大 tokens
- 批量处理:使用批量 API(如果支持)
- 缓存复用:缓存相似请求的结果
- 本地模型:对于大规模生成,考虑部署本地模型
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. 执行评估
自动评估
任务创建后自动执行,或点击 立即执行。
手动评估
- 点击 手动评估 标签
- 查看待评估样本
- 人工评估样本质量
- 提交评估结果
3. 查看评估报告
总体评分
评估报告提供总体质量评分:
总体质量评分:85 分 (优秀)
完整性:90 分 ⭐⭐⭐⭐⭐
准确性:82 分 ⭐⭐⭐⭐
唯一性:95 分 ⭐⭐⭐⭐⭐
时效性:75 分 ⭐⭐⭐⭐
详细指标
每个维度的详细指标:
完整性:
- 空值率:3.2% ✅
- 缺失字段率:1.5% ✅
- 记录完整率:96.8% ✅
准确性:
- email 格式正确率:98.5% ✅
- age 值域符合率:95.2% ✅
- phone 格式正确率:88.7% ⚠️
唯一性:
时效性:
- 数据新鲜度:平均 7 天前
- 过期数据率:12.5% ⚠️
问题列表
列出发现的数据质量问题:
| 序号 | 问题 | 类型 | 严重程度 | 影响范围 | 建议 |
|---|
| 1 | phone 格式不正确 | 准确性 | 中 | 11.3% | 检查并清洗 |
| 2 | 部分数据过期 | 时效性 | 高 | 12.5% | 更新数据 |
| 3 | 少量记录有空值 | 完整性 | 低 | 3.2% | 填充或删除 |
质量趋势
查看数据质量变化趋势:
质量评分趋势
90 │ ╭─╮
85 │ ╭─╮╭─╯ ╭─╮
80 │╭─╯╭─╯ ╭─╯
75 │╭─╯╭─╯ ╭─╯
70 │╭─╯╭─╯ ╭─╯
└─────────────
1月 2月 3月 4月
4. 导出评估报告
导出为 PDF
- 点击 导出报告 按钮
- 选择 PDF 格式
- 下载报告文件
导出为 Excel
- 点击 导出报告 按钮
- 选择 Excel 格式
- 下载报告文件
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"
对比评估
对比不同数据集或不同版本的数据质量:
- 选择要对比的数据集/版本
- 执行对比评估
- 查看对比报告
对比维度:
质量阈值告警
设置质量阈值,超过阈值自动告警:
告警规则:
总体评分低于 80: 发送邮件
空值率超过 10%: 发送短信
重复率超过 5%: 发送邮件
最佳实践
1. 定期评估
建议定期执行数据质量评估:
- 每日评估:关键数据每日评估
- 每周评估:一般数据每周评估
- 每月评估:全部数据每月评估
2. 建立基线
为每个数据集建立质量基线:
- 初次评估作为基线
- 后续评估与基线对比
- 追踪质量变化趋势
3. 持续改进
根据评估结果持续改进:
- 清洗问题数据:根据评估结果清洗
- 优化采集流程:改进数据采集方式
- 更新验证规则:及时更新验证规则
常见问题
Q: 评估任务执行失败?
A: 排查步骤:
- 检查数据集:确认数据集存在
- 检查规则配置:确认评估规则正确
- 查看执行日志:获取详细错误信息
- 减少样本量:先用小样本测试
Q: 评估结果不准确?
A: 改进建议:
- 调整评估规则:根据实际需求调整
- 增加评估维度:添加更多评估维度
- 人工审核:人工抽检验证结果
- 更新基线:定期更新质量基线
Q: 如何提高数据质量?
A: 改进建议:
- 数据清洗:使用数据清洗模块清洗
- 源头控制:在数据采集阶段控制质量
- 建立规范:制定数据标准和规范
- 定期评估:定期评估并改进
API 参考
详细的 API 文档请参考:
相关文档
7 - 知识库管理
使用 DataMate 构建和管理 RAG 知识库
知识库管理模块帮助您构建企业知识库,实现高效的向量检索和 RAG 应用。
功能概述
知识库管理模块提供:
- 文档上传:支持多种文档格式的上传
- 文本切分:智能文本分块策略
- 向量化:自动将文本转换为向量
- 向量检索:基于相似度的语义检索
- 知识库问答:集成 RAG 的智能问答
支持的文档格式
| 格式 | 说明 | 推荐场景 |
|---|
| TXT | 纯文本 | 通用文本 |
| PDF | PDF 文档 | 文档、报告 |
| Markdown | Markdown 文件 | 技术文档 |
| JSON | JSON 数据 | 结构化数据 |
| CSV | CSV 表格 | 表格数据 |
| DOCX | Word 文档 | Office 文档 |
快速开始
1. 创建知识库
步骤 1:进入知识库页面
在左侧导航栏选择 知识生成。
步骤 2:创建知识库
点击右上角 创建知识库 按钮。
步骤 3:配置基本信息
- 知识库名称:例如
company_docs_kb - 知识库描述:描述知识库用途(可选)
- 知识库类型:通用 / 专业领域
步骤 4:配置向量参数
步骤 5:配置切分策略
切分方式:
块大小:每个文本块的大小(字符数)
重叠大小:相邻块的重叠大小
步骤 6:创建知识库
点击 创建 按钮完成创建。
2. 上传文档
步骤 1:进入知识库详情
点击知识库名称进入详情页面。
步骤 2:上传文档
- 点击 上传文档 按钮
- 选择本地文件
- 等待上传完成
系统会自动:
- 解析文档内容
- 切分文本
- 生成向量
- 建立索引
步骤 3:查看处理状态
在文档列表中可以看到处理状态:
| 文件名 | 大小 | 状态 | 文本块数 | 向量化进度 | 操作 |
|---|
| doc1.pdf | 2.3 MB | 已完成 | 150 | 100% | 查看详情 |
| doc2.txt | 156 KB | 处理中 | - | 50% | 查看详情 |
| doc3.md | 45 KB | 等待中 | - | 0% | 查看详情 |
3. 向量检索
步骤 1:进入检索页面
在知识库详情页面,点击 向量检索 标签。
步骤 2:输入查询
在搜索框输入查询内容,例如:
如何使用 DataMate 进行数据清洗?
步骤 3:查看检索结果
系统返回最相关的文本块及其相似度分数:
| 排名 | 文本块 | 相似度 | 来源文档 | 操作 |
|---|
| 1 | DataMate 的数据清洗模块… | 0.92 | user_guide.pdf | 查看 |
| 2 | 配置清洗任务… | 0.87 | tutorial.md | 查看 |
| 3 | 清洗算子列表… | 0.81 | reference.txt | 查看 |
高级检索
点击 高级检索,可以:
- 设置 Top-K:返回前 K 个结果(默认 5)
- 设置阈值:过滤低于相似度阈值的结果
- 过滤文档:限定检索范围
- 重排序:使用重排序模型优化结果
4. 知识库问答(RAG)
步骤 1:启用 RAG
在知识库详情页面,点击 RAG 问答 标签。
步骤 2:配置 RAG 参数
- 大语言模型:选择使用的 LLM
- 检索数量:检索的文本块数量
- 温度:控制生成随机性
- 提示词模板:自定义问答模板
步骤 3:进行问答
在对话框输入问题,例如:
用户:DataMate 支持哪些数据清洗算子?
助手:DataMate 支持丰富的数据清洗算子,包括:
1. 数据质量算子:去重、空值处理、异常值检测...
2. 文本清洗算子:去除特殊字符、大小写转换...
3. 图像清洗算子:格式转换、质量检测...
[来源:user_guide.pdf, tutorial.md]
助手会:
- 检索相关文本块
- 基于检索内容生成答案
- 标注答案来源
高级功能
文本切分策略
字符切分
按固定字符数切分:
段落切分
按段落边界切分:
语义切分
基于语义相似度切分:
自定义嵌入模型
使用本地模型
- 部署本地嵌入模型服务
- 在知识库配置中选择自定义模型
- 填写模型服务地址
示例:
模型服务地址:http://localhost:8000/embeddings
请求格式:
{
"texts": ["文本1", "文本2"],
"model": "bge-m3"
}
使用 OpenAI
{
"provider": "openai",
"model": "text-embedding-ada-002",
"api_key": "your-api-key"
}
知识库管理
更新知识库
当文档变更时,可以:
- 重新索引:重新生成所有文档的向量
- 增量更新:只更新变更的文档
- 删除文档:从知识库中删除文档
导出知识库
支持导出:
- 文档列表:导出为 CSV
- 向量数据:导出为 NPY/CSV
- 元数据:导出为 JSON
知识库统计
查看知识库统计信息:
- 文档数量:总文档数
- 文本块数量:总文本块数
- 向量数量:总向量数
- 存储大小:向量存储大小
- 更新时间:最后更新时间
多知识库管理
创建多个知识库
可以根据不同主题创建多个知识库:
product_kb:产品文档technical_kb:技术文档hr_kb:人力资源文档
联合检索
在多个知识库中同时检索:
- 选择要检索的知识库
- 执行检索
- 结果汇总并排序
最佳实践
1. 文档准备
上传文档前的准备工作:
- 格式统一:转换为统一的格式(如 PDF、Markdown)
- 清理内容:删除无关内容(页眉页脚、广告等)
- 结构化:保持良好的文档结构
- 元数据:添加文档元数据(作者、日期、标签等)
2. 切分策略选择
根据文档类型选择:
| 文档类型 | 推荐策略 | 块大小 |
|---|
| 技术文档 | 段落切分 | - |
| 长报告 | 语义切分 | - |
| 短文本 | 字符切分 | 500 |
| 代码 | 字符切分 | 300 |
3. 向量参数调优
根据需求调整:
| 场景 | 向量维度 | 索引类型 |
|---|
| 高精度 | 1536 | HNSW |
| 快速检索 | 768 | IVF_FLAT |
| 大规模 | 512 | IVF_PQ |
4. RAG 提示词设计
设计有效的 RAG 提示词:
你是一个专业的客服助手。请基于以下知识库内容回答用户问题。
知识库内容:
{context}
用户问题:
{question}
回答要求:
1. 只基于知识库内容回答
2. 如果知识库中没有相关信息,明确告知
3. 回答要准确、详细
4. 标注信息来源
请回答:
常见问题
Q: 文档上传后一直处于"处理中"状态?
A: 检查以下项目:
- 文档格式:确保文档格式被支持
- 文档大小:单个文档不超过 100MB
- 向量服务:检查向量服务是否正常运行
- 查看日志:查看详细错误信息
Q: 检索结果不准确?
A: 优化建议:
- 调整切分策略:尝试不同的切分方式
- 增加块大小:增加上下文信息
- 使用重排序:启用重排序模型
- 优化查询:使用更明确的查询语句
- 更换嵌入模型:尝试其他嵌入模型
Q: RAG 回答质量不佳?
A: 改进建议:
- 增加检索数量:检索更多相关文本块
- 优化提示词:改进问答提示词模板
- 更换 LLM:尝试更强大的模型
- 人工审核:人工审核和优化回答
Q: 如何处理大文档?
A: 大文档处理建议:
- 拆分文档:将大文档拆分为多个小文档
- 分批上传:分批上传和处理
- 使用语义切分:保持语义完整性
- 异步处理:选择异步处理模式
Q: 如何更新知识库?
A: 知识库更新方式:
- 单个文档更新:删除旧文档,上传新文档
- 批量更新:使用批量导入功能
- 全量重建:清空知识库,重新上传
- API 更新:通过 API 接口更新
API 参考
详细的 API 文档请参考:
相关文档
8 - 算子市场
使用和管理 DataMate 算子
算子市场提供丰富的数据处理算子,支持自定义算子开发。
功能概述
算子市场模块提供:
- 内置算子:丰富的内置数据处理算子
- 算子发布:发布和分享自定义算子
- 算子安装:安装第三方算子
- 自定义开发:开发自定义算子
内置算子
数据清洗算子
| 算子 | 功能 | 输入 | 输出 |
|---|
| 去重算子 | 删除重复数据 | 数据集 | 去重数据 |
| 空值处理 | 处理空值 | 数据集 | 填充数据 |
| 格式转换 | 转换数据格式 | 原格式 | 新格式 |
| 类型转换 | 转换数据类型 | 原类型 | 新类型 |
文本处理算子
| 算子 | 功能 |
|---|
| 文本分词 | 中文分词 |
| 去除停用词 | 删除常见停用词 |
| 文本清洗 | 清洗特殊字符 |
| 情感分析 | 分析文本情感 |
图像处理算子
| 算子 | 功能 |
|---|
| 格式转换 | 转换图像格式 |
| 尺寸调整 | 调整图像大小 |
| 质量检测 | 检测图像质量 |
| 特征提取 | 提取图像特征 |
数据增强算子
| 算子 | 功能 |
|---|
| 文本增强 | 同义词替换、回译 |
| 图像增强 | 旋转、裁剪、颜色调整 |
| 数据合成 | 基于模型的数据合成 |
快速开始
1. 浏览算子
步骤 1:进入算子市场
在左侧导航栏选择 算子市场。
步骤 2:浏览算子
在算子市场页面,可以看到所有可用算子:
| 算子名称 | 类别 | 功能描述 | 评分 | 安装数 | 操作 |
|---|
| 文本清洗算子 | 文本处理 | 清洗文本特殊字符 | ⭐⭐⭐⭐⭐ | 1.2K | 查看 安装 |
| 图像去重算子 | 图像处理 | 基于内容去重 | ⭐⭐⭐⭐ | 856 | 查看 安装 |
| 数据合成算子 | 数据增强 | 使用 LLM 合成数据 | ⭐⭐⭐⭐⭐ | 2.3K | 查看 安装 |
步骤 3:查看算子详情
点击算子名称或 查看 按钮,可以看到:
- 算子简介:功能和用途
- 使用示例:如何使用算子
- 输入输出:输入输出格式
- 参数说明:可配置参数
- 用户评价:其他用户的评价
2. 安装算子
安装内置算子
内置算子默认已安装,可以直接使用。
安装第三方算子
- 在算子详情页,点击 安装 按钮
- 等待安装完成
- 安装后可以在数据清洗等模块中使用
3. 使用算子
安装算子后,可以在以下场景使用:
数据清洗
- 创建数据清洗任务
- 在清洗流程中添加算子节点
- 配置算子参数
- 执行清洗任务
流水线编排
- 创建流水线
- 添加算子节点
- 配置算子参数
- 执行流水线
4. 开发自定义算子
创建算子
- 在算子市场页,点击 创建算子 按钮
- 填写算子信息:
- 算子名称:例如
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
}
}
}
打包算子
- 创建算子目录结构:
my_text_cleaner/
├── __init__.py
├── operator.py # 算子代码
├── config.json # 配置文件
├── README.md # 说明文档
└── requirements.txt # 依赖列表
- 打包为 ZIP 文件
发布算子
- 在创建算子页,上传算子包
- 填写算子信息
- 点击 发布 按钮
发布选项
- 私有算子:仅自己可见
- 公开算子:所有人可见
- 团队共享:团队成员可见
高级功能
算子版本管理
创建新版本
- 进入算子详情页
- 点击 版本 标签
- 点击 创建版本
- 上传新版本代码
- 填写版本说明
版本回退
如果新版本有问题,可以回退到旧版本。
算子测试
单元测试
为算子编写单元测试:
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. 测试覆盖
充分的测试:
- 单元测试:测试核心功能
- 边界测试:测试边界情况
- 性能测试:测试大数据量场景
常见问题
Q: 算子执行失败怎么办?
A: 排查步骤:
- 查看日志:查看详细错误信息
- 检查配置:确认参数配置正确
- 检查数据:确认输入数据格式正确
- 本地测试:在本地环境测试算子
Q: 如何优化算子性能?
A: 优化建议:
- 减少内存使用:使用生成器、迭代器
- 并行处理:使用多进程/多线程
- 批量处理:批量处理数据
- 缓存结果:缓存重复计算
Q: 如何分享算子?
A: 分享方式:
- 公开发布:发布为公开算子
- 团队共享:团队内共享
- 导出分享:导出算子包文件分享
相关文档
9 - 流水线编排
使用 DataMate 进行可视化流程编排
流水线编排模块提供拖拽式可视化界面,帮助您设计和管理复杂的数据处理流程。
功能概述
流水线编排模块提供:
- 可视化设计器:拖拽式流程设计
- 丰富的节点类型:数据处理、条件判断、循环等
- 流程执行:自动执行和监控流程
- 模板管理:保存和复用流程模板
- 版本管理:流程版本控制
节点类型
数据节点
| 节点 | 功能 | 配置 |
|---|
| 输入数据集 | 从数据集读取数据 | 选择数据集 |
| 输出数据集 | 写入数据到数据集 | 选择数据集 |
| 数据采集 | 执行数据采集任务 | 选择采集任务 |
| 数据清洗 | 执行数据清洗任务 | 选择清洗任务 |
| 数据标注 | 执行数据标注任务 | 选择标注任务 |
| 数据合成 | 执行数据合成任务 | 选择合成任务 |
| 数据评估 | 执行数据评估任务 | 选择评估任务 |
逻辑节点
| 节点 | 功能 | 配置 |
|---|
| 条件分支 | 根据条件执行不同分支 | 条件表达式 |
| 循环 | 重复执行节点 | 循环次数/条件 |
| 并行 | 并行执行多个分支 | 分支数量 |
| 等待 | 等待指定时间 | 等待时长 |
| 跳转 | 跳转到指定节点 | 目标节点 |
算子节点
| 节点 | 功能 | 配置 |
|---|
| 清洗算子 | 执行单个清洗算子 | 算子类型、参数 |
| 合成算子 | 执行数据合成 | 指令模板、参数 |
| 自定义算子 | 执行自定义算子 | 算子文件、参数 |
集成节点
| 节点 | 功能 | 配置 |
|---|
| HTTP 请求 | 发送 HTTP 请求 | URL、方法、参数 |
| API 调用 | 调用 DataMate API | API 端点、参数 |
| 消息队列 | 发送/接收消息 | 队列配置 |
| Webhook | 触发 Webhook | Webhook URL |
快速开始
1. 创建流水线
步骤 1:进入流水线编排页面
在左侧导航栏选择 流水线编排。
步骤 2:创建流水线
点击右上角 创建流水线 按钮。
步骤 3:填写基本信息
- 流水线名称:例如
data_processing_pipeline - 流水线描述:描述流水线用途(可选)
- 标签:添加标签(可选)
步骤 4:进入流程设计器
点击 创建 后,自动进入流程设计器。
2. 设计流程
步骤 1:添加节点
- 从左侧节点库拖拽节点到画布
- 或双击节点库中的节点
示例流程:
输入数据集 → 数据清洗 → 条件分支
├── 满足条件 → 数据标注 → 输出数据集
└── 不满足条件 → 数据合成 → 输出数据集
步骤 2:配置节点
点击节点,在右侧配置面板填写参数:
输入数据集节点:
数据清洗节点:
- 清洗任务:选择已创建的清洗任务
- 失败策略:跳过 / 终止
条件分支节点:
- 条件表达式:
{quality_score} > 0.8
步骤 3:连接节点
- 从源节点的输出端口拖拽到目标节点的输入端口
- 或选择两个节点后点击连接按钮
步骤 4:保存流程
点击右上角 保存 按钮保存流程。
3. 执行流水线
步骤 1:进入执行页面
在流水线列表页,点击流水线名称进入详情。
步骤 2:执行流水线
点击 立即执行 按钮。
步骤 3:监控执行
在执行监控页面可以看到:
- 执行状态:运行中 / 已完成 / 失败
- 执行进度:当前节点、总进度
- 节点状态:每个节点的执行状态
- 执行日志:详细的执行日志
示例执行状态:
[✓] 输入数据集 - 已完成 (1000 条记录)
[✓] 数据清洗 - 已完成 (950 条记录)
[→] 条件分支 - 运行中
[→] 分支 1 (满足条件) - 等待中
[→] 分支 2 (不满足条件) - 运行中
[✓] 数据合成 - 已完成 (500 条记录)
[→] 输出数据集 - 运行中
4. 管理流水线
查看流水线列表
在流水线编排页面,可以看到所有流水线:
| 流水线名称 | 状态 | 最后执行时间 | 执行次数 | 操作 |
|---|
| 数据处理流程 | 已启用 | 2024-01-15 | 15 | 执行 编辑 |
| 模型训练流程 | 已禁用 | 2024-01-14 | 8 | 执行 编辑 |
编辑流水线
点击 编辑 按钮可以修改流程设计。
启用/禁用流水线
点击 启用/禁用 按钮切换流水线状态。
删除流水线
点击 删除 按钮删除流水线(需确认)。
高级功能
流程模板
保存为模板
- 设计好流程后
- 点击 保存为模板
- 输入模板名称和描述
- 点击保存
使用模板
- 创建流水线时,点击 使用模板
- 从模板列表选择模板
- 系统加载模板到设计器
参数化流程
流程中可以使用参数,实现动态配置:
定义参数
在流水线配置中定义参数:
{
"parameters": [
{
"name": "input_dataset",
"type": "dataset",
"required": true,
"description": "输入数据集"
},
{
"name": "threshold",
"type": "number",
"default": 0.8,
"description": "质量阈值"
}
]
}
使用参数
在节点配置中使用参数:
条件表达式:{quality_score} > ${threshold}
定时执行
配置定时执行流水线:
- 在流水线详情页,点击 定时执行
- 添加定时规则:
- Cron 表达式:
0 0 2 * * ?(每天凌晨 2 点) - 执行参数:填写参数值
- 启用定时任务
事件触发
配置事件触发:
- 在流水线详情页,点击 事件触发
- 添加触发事件:
- 配置触发条件
错误处理
节点级错误处理
为每个节点配置失败策略:
- 跳过:跳过失败节点,继续执行
- 重试:自动重试(可配置重试次数)
- 终止:终止整个流程
流程级错误处理
配置全局错误处理:
- 失败通知:发送通知(邮件、Webhook)
- 回滚操作:执行回滚流程
- 记录日志:详细记录错误信息
版本管理
创建版本
在流水线编辑页,点击 保存版本:
查看版本历史
在流水线详情页,点击 版本历史:
| 版本 | 创建时间 | 创建者 | 说明 | 操作 |
|---|
| v1.0.0 | 2024-01-15 | admin | 初始版本 | 查看 恢复 |
| v1.1.0 | 2024-01-16 | admin | 添加数据清洗 | 查看 恢复 |
恢复版本
点击版本的 恢复 按钮,将流程恢复到该版本。
最佳实践
1. 流程设计
推荐的设计原则:
- 模块化:将复杂流程拆分为多个子流程
- 可重用:使用模板和参数化
- 可维护:添加注释和说明
- 可测试:先测试单个节点再组合
2. 性能优化
优化流程性能:
- 并行执行:使用并行节点提高效率
- 减少数据传输:尽量在数据所在位置处理
- 批量处理:使用批量操作代替循环
- 缓存中间结果:避免重复计算
3. 错误处理
完善的错误处理:
- 设置超时:为每个节点设置合理的超时时间
- 配置重试:对可能失败的操作配置重试
- 记录日志:详细记录执行日志
- 通知机制:关键节点失败时发送通知
4. 监控和调试
有效的监控调试:
- 实时监控:监控流程执行状态
- 查看日志:查看详细的执行日志
- 断点调试:在关键节点设置断点
- 数据预览:预览中间结果
常见问题
Q: 流程执行失败怎么办?
A: 排查步骤:
- 查看执行日志:获取详细错误信息
- 检查节点配置:确认节点参数正确
- 检查数据:确认输入数据格式正确
- 单独测试:单独执行问题节点
- 检查依赖:确认依赖服务正常
Q: 如何优化流程性能?
A: 优化建议:
- 并行化:使用并行节点并行执行
- 批量操作:合并多个小操作
- 减少数据传输:尽量在本地处理
- 缓存结果:缓存中间结果避免重复计算
- 优化节点顺序:先过滤数据再处理
Q: 如何处理复杂的条件逻辑?
A: 处理复杂逻辑:
- 使用多个条件节点:拆分复杂条件
- 使用表达式:编写复杂的条件表达式
- 自定义脚本:使用自定义算子处理复杂逻辑
- 子流程:将复杂逻辑封装为子流程
Q: 流程可以嵌套吗?
A: 支持流程嵌套:
- 子流程节点:调用其他流程作为子流程
- 参数传递:在父子流程间传递参数
- 返回值:子流程可以返回结果给父流程
Q: 如何调试流程?
A: 调试方法:
- 单步执行:逐步执行流程观察中间结果
- 数据预览:预览每个节点的输入输出
- 日志查看:查看详细的执行日志
- 断点设置:在关键节点设置断点
- 模拟执行:使用测试数据模拟执行
相关文档
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. 配置基本信息(任务名称、源数据集、输出数据集)
4. 配置清洗流程(拖拽算子到画布)
5. 配置执行参数
6. 创建并执行任务
详细的配置说明请参考用户指南。
[来源:user_guide.md, data_cleansing.md]
高级功能
对话模式
通用对话
使用大模型进行通用对话,不使用知识库:
- 适合:闲聊、常识性问题、创意任务
- 模型:GPT-4、Claude 3、文心一言等
知识库问答
基于知识库内容回答问题:
- 适合:产品文档、技术文档、企业知识
- 特点:答案基于知识库,标注来源
混合模式
结合通用对话和知识库问答:
- 先检索知识库
- 如果知识库中没有相关信息,使用通用对话
快捷指令
使用快捷指令快速执行操作:
| 指令 | 功能 | 示例 |
|---|
/dataset | 查询数据集 | /dataset list |
/task | 查询任务 | /task status |
/help | 显示帮助 | /help |
/clear | 清空对话 | /clear |
对话历史
查看历史
- 点击左侧 历史记录 标签
- 选择历史对话
- 查看对话内容
继续对话
点击历史对话可以继续之前的对话。
导出对话
导出对话记录:
- 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: 改进建议:
- 优化提问:更明确、更具体的问题
- 检查知识库:确认知识库中有相关信息
- 更换模型:尝试使用更强大的模型
- 提供上下文:提供更多背景信息
- 分步提问:将复杂问题拆分
Q: Agent 不回答我的问题?
A: 可能原因:
- 知识库中没有:检查知识库是否有相关内容
- 问题不明确:重新表述问题
- 知识库未启用:检查知识库设置
- 模型限制:某些模型可能有内容限制
Q: 如何切换知识库?
A: 切换步骤:
- 点击 设置 按钮
- 在知识库设置中,选择其他知识库
- 保存设置
- 开始新的对话
Q: 对话历史保存在哪里?
A: 存储位置:
- 本地存储:存储在浏览器本地
- 云端存储:(可选)存储在服务器
- 导出保存:导出为文件保存
相关文档