大家好,我是 ConardLi。
今天跟大家来正式介绍一下我的开源项目:Easy Dataset。
3.13 号,我对外发布了第一个版本,到 3.16 Star
数破千,截止目前,已经 1.7K Star
。
为啥这个工具一发布就受到广泛的关注和喜爱呢,下面我来具体介绍一下。
目前各行各业都在积极探索微调自己行业的大模型,其实微调的过程不是难事,最难的是数据集准备的环节,高质量领域数据集的构建始终面临多重挑战,所以我之前大模型微调的教程一发出,大家问的最多的就是数据集的问题:
我总结了常见问题就是这些:
- 完全不知道怎么做,目前就在纯人工去做,想提高效率
- 直接将文档丢给 AI ,但是 AI 对于大文件生成的 QA 对效果比较差
- AI 本身有上下文的限制,一次不能生成太多的问题,分批生成后面又会生成重复的问题
- 已经有整理出来的数据集了,想有一个批量管理数据集的地方,可以进行标注和验证
- 对于数据集有细分领域的需求,不知道如何去构建领域标签
- 想要微调推理模型,但是不知道推理微调数据集中的 COT 怎么构造
- 想从一个格式的数据集转换成另一个格式的数据集,不知道怎么转换
目前市面上确实没有一款工具可以满足这样的需求,因此,借助 AI,我大概花了 3 个晚上的时间构建出了 Easy DataSet (github.com/ConardLi/ea...
架构设计
Easy DataSet 以 项目制 为核心单元,贯穿「文献处理-问题生成-答案构建-标签管理-格式导出」全链路:
核心模块:
- 模型配置中心 :支持 OpenAI 格式 API(如 DeepSeek、各种三方模型提供商)及本地模型(Ollama),内置模型测试
Playground
,支持多模型对比。 - 智能文献处理 :采用「章节感知递归分块」算法,基于
Markdown
结构(#/##标题)实现语义级分割,确保单块内容完整(最小/最大长度可配),附带大纲提取与摘要生成。 - 领域标签体系:AI 自动生成二级领域树(如「Web安全-XSS攻击」),支持手动修正,为每个 QA对绑定精准标签,降低重复率。
数据生成引擎:
- 问题批量生成:基于文本块语义,按字符密度动态生成问题(可配置),支持批量创建与中断恢复。
- 答案智能构建:关联原始文本块生成答案,支持推理模型(如DeepSeek-R1)生成带思维链(COT)的复杂答案。
- 质量校验机制:提供问题/答案的批量删除、手动编辑及AI优化(输入指令自动润色),确保数据可用。
格式生态适配:
- 多格式导出:支持Alpaca、ShareGPT标准格式,自定义字段映射,包含领域标签与 COT 信息。
- 数据集广场:聚合 HuggingFace、Kaggle 等多平台数据源,支持关键字一键检索,解决「数据从哪来」的初始难题。
工具使用
目前 Easy Dataset 支持客户端、NPM、Docker 三种启动方式,完全在本地处理数据,无需担心数据隐私问题。
客户端启动(适合新手)
为了解决各种本地部署的环境问题,可以直接用客户端启动,支持以下平台:
可以直接到 github.com/ConardLi/ea... 下载适合自己系统的安装包:
NPM 启动(适合开发者)
本项目基于 Next 构建,所以本地只要有 Node 环境就可以通过 NPM 直接启动,适合开发者,需要调试项目的同学:
- 克隆仓库:
bash
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- 安装依赖:
bash
npm install
- 启动服务器:
bash
npm run build
npm run start
Docker启动(适合私有部署):
如果你想自行构建镜像,在云服务或者内网环境私有部署,可以使用项目根目录中的 Dockerfile
:
- 克隆仓库:
bash
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- 构建 Docker 镜像:
bash
docker build -t easy-dataset .
- 运行容器:
bash
docker run -d -p 1717:1717 -v {YOUR_LOCAL_DB_PATH}:/app/local-db --name easy-dataset easy-dataset
注意: 请将
{YOUR_LOCAL_DB_PATH}
替换为你希望存储本地数据库的实际路径。
功能介绍
项目设置
多模型统一管理:支持 OpenAI 标准协议 的模型接入,兼容 Ollama,用户仅需配置 模型名称、API地址、密钥 即可完成适配。内置模型库预填主流厂商端点,支持删除/新增自定义模型,所有配置 本地加密存储,保障数据安全。
任务参数精细化配置:
- 文本分块:设置最小/最大字符数(默认150-300字),支持递归分块时的章节感知(优先保留 Markdown 标题结构);
- 问题生成:自定义每N字符生成1个问题(默认240字/问题),控制生成密度;
- 并发数量:支持配置批量任务并发数量(批量问题、数据集生成),加快任务速度;
文献处理
智能分块引擎:
- 输入:当前仅支持 Markdown(可以通过 MinerU 等工具自行转换 PDF/Word 等格式),后续会支持更多格式。
- 处理流程 :
- 章节感知分割 :优先按
#/##/###
标题切分,保留完整章节 - 递归字符截断:超长段落按句号→逗号递归切分,确保块长在配置区间
- 块元数据:自动生成每块摘要(基于模型抽取)、字数统计、关联原始目录
- 章节感知分割 :优先按
领域标签树构建:
- 自动分析:基于文档内容生成领域树(如"2.3 提示词设计→2.3.1 结构化模板")
- 手动校准:支持增删改标签,形成项目专属的领域分类体系,用于后续问题标注
问题生成
- 单块生成:点击文本块「+问题」,基于块内容生成多个问题(密度可调)
- 批量生成:勾选多块→一键生成,支持中断/恢复任务
- 质量过滤:自动过滤低相关问题(如作者信息、格式说明),人工可批量删除
问题管理
列表视图,可查看和管理已经生成好的所有问题:
领域树视图(基于领域树视图查看和管理问题,可以更方便的掌握全貌,便捷管理问题:):
- 自动匹配:通过提示词模板,将问题映射到领域树(如"XSS攻击原理"→"2.2 XSS攻击")
- 手动修正:支持拖拽问题到目标标签,或批量修改标签层级
答案生成:
- 基础答案:基于问题+块内容生成(支持多模型对比)
- 推理答案(COT):切换推理模型(如 DeepSeek-R1 )生成带思维链的答案
数据集管理
数据集列表:
可以查看已经生成好的所有数据集,包括创建时间、使用模型、领域标签、是否有思维链等,可对不满意的数据集进行调整和删除。
数据集质检与标注:
- 状态标记:「待确认/已保留」,支持批量标注
- 手动编辑:支持直接修改答案/思维链,保留修改记录
- 详情视图:展示问题、答案、标签、模型、生成时间全链路信息
- AI优化:输入优化指令(如"更口语化"),一键润色答案
- 快速翻页:支持「上一条/下一条」快捷键,提升质检效率
多格式导出:
- 标准格式:Alpaca(instruction/output)、ShareGPT(messages结构)
- 自定义模板:配置字段映射(如{question}→instruction,{answer}→output)
- 过滤选项:可选仅导出已确认数据、是否包含标签/COT
导出示例:
数据集广场
多平台搜索:
聚合 HuggingFace、Kaggle、Opendatalab 等多个平台,输入关键词即可一站式检索,支持跳转原平台下载。
未来规划
当前 Easy Dataset 还处于比较早期的阶段,刚实现了最基本的构想,后续还会陆续支持以下功能,致力于打造成最完善和专业的大模型数据集构造平台:
- 文献格式:单项目支持上传多个文件、支持多种类型(PDF、Word、Excel)的文献解析;
- 多模态支持:支持图片、视频、音频等多模态数据集生成;
- 质量评估:引入 BLEU、ROUGE 等指标,自动标注数据置信度,降低人工校验成本;
- 数据标注:支持强化学习偏好数据集的质量标注,完善数据集评估能力;
- 蒸馏数据集:支持不基于领域文献,直接基于大模型生成用于模型蒸馏的数据集;
- 平台联动:支持 HuggingFace 数据集一键上传,支持从 HuggingFace 等平台一键拉取数据集,进行二次评估。
本项目完全开源( Apache 2.0 协议),欢迎广大开发者提交 PR 共建,也欢迎大家提出宝贵意见(可直接提交 Issues 或者加作者微信 ConardLi 反馈),作者会根据反馈数量确定后续迭代优先级。