easy-dataset

ConardLi更新放缓

面向大模型微调、RAG 和评测的数据集制作工具,支持数据生成、清洗与导出,省去手工整理训练数据的麻烦。

A powerful tool for creating datasets for LLM fine-tuning 、RAG and Eval

1.7.3发布于 2026-04-09 13:08 UTC15,107star +14 / 7 天1,545fork同步于 2026-11-10 17:26 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/ConardLi/easy-dataset.git && cd easy-dataset && npm install && npm run build && npm run start
硬件要求按 README 说明

README 未说明本地硬件要求;模型推理通过 OpenAI 兼容 API 或 Ollama 本地模型完成,显存需求取决于所选模型

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把领域文档转成微调、RAG 和评测数据集的可视化工具

面向大模型微调、RAG 和评测的数据集制作工具,支持数据生成、清洗与导出,省去手工整理训练数据的麻烦。

核心能力

  • 解析 PDF、DOCX、EPUB 等文档并智能分段
  • 自动生成问题、答案与思维链并清洗数据
  • 支持单轮 QA、多轮对话、图片 QA 数据集
  • 用 Judge 模型自动评测并支持人工盲测
  • 导出 Alpaca、ShareGPT 格式并接入 LLaMA Factory

容易踩的坑

默认访问端口为 1717,不是常见的 3000 或 8080;需自行准备 OpenAI 兼容的 LLM API 或本地 Ollama 模型,否则无法生成数据;Docker 部署建议挂载 local-db 和 prisma 目录以保持数据库路径一致

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.7.3
  1. 1.7.3[1.7.3] 2026-04-09最新正式版2026-04-09 · 2026-04-09 13:08 UTC

    🔧 修复

    1. 修复大量蒸馏数据场景下,数据蒸馏页面渲染卡顿的问题
    2. 修复高并发场景下,全自动蒸馏进度弹框卡顿的问题 #694
    3. 修复使用 Ollama 进行模型评估时,思维链处理异常的问题 #714
    4. 修复自定义模型评估提示词不生效的问题 #687

    ⚡ 优化

    1. 优化 OpenAI-Compatible API 兼容性问题
    2. 优化模型设置中 Temperature 和 TOP-P 参数的配置问题 #717

    ✨ 新功能

    1. 新增 MiniMax 作为内置模型提供商支持
    2. 新增主动 COT 合成功能(未提取到原始模型 COT 时自动启用),确保所有数据集均携带思维链 #722

    🌍 国际化支持

    1. 新增土耳其语支持,完善大量国际化文案兼容 #702 #706 #708
    2. 新增意大利语支持

    🙏 特别感谢

    • @workcode-del 优化 OpenAI-Compatible API 兼容性
    • @chengqiangrd 修复蒸馏页面与进度弹框卡顿问题 #694
    • @octo-patch 新增 MiniMax 内置提供商支持
    • @bakiburakogun 新增土耳其语及国际化文案支持 #702 #706 #708
    • @nikypalma 新增意大利语支持

    🔧 Fixes

    1. Fixed the rendering lag of the data distillation page when processing a large amount of distillation data
    2. Fixed the lag of the fully automatic distillation progress popup in high-concurrency scenarios #694
    3. Fixed the thought chain processing issue during model evaluation with Ollama #714
    4. Fixed the issue that custom model evaluation prompts did not take effect #687

    ⚡ Optimizations

    1. Optimized the compatibility of OpenAI-Compatible API
    2. Optimized the configuration of Temperature and TOP-P parameters in model settings #717

    ✨ New Features

    1. Added MiniMax as a built-in model provider
    2. Added active COT synthesis function (automatically enabled when the original model COT is not extracted), ensuring all datasets are equipped with thought chains #722

    🌍 Internationalization

    1. Added Turkish support and improved compatibility with a large number of international copy #702 #706 #708
    2. Added Italian support

    🙏 Special Thanks

    • @workcode-del for optimizing OpenAI-Compatible API compatibility
    • @chengqiangrd for fixing distillation page and progress popup lag issues #694
    • @octo-patch for adding MiniMax built-in provider support
    • @bakiburakogun for adding Turkish and international copy support #702 #706 #708
    • @nikypalma for adding Italian support
  2. 1.7.2[1.7.2] 2026-02-252026-02-25 · 2026-02-25 06:56 UTC
    查看更新说明

    如果遇到 Github 下载慢的问题可以使用网盘下载:https://pan.quark.cn/s/194b7eedf16e

    🔧 修复(Fixes)
    1. 修复自定义评估题目 Prompt 无法生效的问题 #676
    2. 修复筛选重置时仍使用旧条件发起请求的竞态问题,确保任务进度、状态展示更稳定
    3. 修复多轮对话与评估功能切换时页面卡顿/假死的问题
    ⚡ 优化(Optimizations)
    1. 模型提供商交互体验
    • 新增/接入多家模型提供商(provider)图标资源,统一 provider logo 映射工具,标准化视觉展示
    • 调整模型设置、项目模型配置、会话列表展示等页面与接口的配置逻辑,优化提供商选择流程与展示一致性
    2. 页面性能与响应速度
    • 解决多轮对话/评估功能切换卡顿问题,提升页面切换、高频筛选场景的响应速度
    • 前端新增请求取消机制(AbortController),避免快速切换操作时旧请求堆积导致的页面卡顿
    3. 接口与数据请求轻量化
    • 优化多轮对话列表接口:分页查询不再返回 rawMessages 等大字段,显著降低列表请求数据体积
    • 优化批量任务“全选”逻辑:获取待操作数据时仅查询 ID,避免拉取整条记录,减少数据传输量
    • 优化评估数据集接口:
      • 需统计数据时,并发查询列表与统计信息,提升加载效率;
      • 筛选/翻页场景默认仅拉取列表数据,减少重复查询压力

    感谢 @AdamPlatin123 的贡献


    🔧 Fixes
    1. Fixed the issue where custom evaluation question Prompts failed to take effect #676
    2. Fixed the race condition where old filter conditions were still used for requests after reset, ensuring stable display of task and progress status
    3. Fixed freezing/unresponsiveness when switching between multi-turn dialogue and evaluation features
    ⚡ Optimizations
    1. Model Provider Display & Selection Experience
    • Added/connected icon resources for multiple model providers, unified the provider logo mapping tool to standardize visual display
    • Adjusted configuration logic of related pages and interfaces (covering model settings, project model configuration, session list display, etc.), optimizing provider selection experience
    2. Page Performance & Response Speed
    • Resolved freezing/unresponsiveness when switching between multi-turn dialogue and evaluation features, improved response speed for page switching and high-frequency filtering scenarios
    • Added request cancellation mechanism (AbortController) on the frontend to avoid page lag caused by accumulated old requests during rapid switching
    3. Interface & Data Request Lightweight
    • Optimized multi-turn dialogue list interface: paginated queries no longer return large fields such as rawMessages, significantly reducing request data volume
    • Optimized batch task "select all" logic: only query IDs of data to be operated on when fetching data, avoiding pulling entire records and reducing data transmission
    • Optimized evaluation dataset interface:
      • Concurrently queries list and statistical data when statistics are needed to improve loading efficiency;
      • Only pulls list data by default for filtering/pagination scenarios to reduce repeated query pressure
  3. 1.7.1[1.7.1] 2026-01-242026-01-24 · 2026-01-24 08:25 UTC
    查看更新说明

    如果遇到 Github 下载慢的问题可以使用网盘下载:https://pan.quark.cn/s/194b7eedf16e

    🔧 Fixes
    1. Fixed the synchronization issue between text block full selection status and filter conditions
    2. Fixed the problem where model API call failures were incorrectly displayed as successful in asynchronous tasks
    3. Fixed the filter box experience issues in the dataset management module (e.g., invalid conditions, style anomalies)
    ⚡ Optimizations
    1. Added batch deletion support for text blocks to improve efficiency in multi-block scenarios
    2. Increased the maximum upload file size limit from 50MB to 300MB, enabling processing of larger documents or images
    3. Exposed image answer generation prompts in custom prompt configurations for fine-grained control of VQA generation logic #658
    4. Optimized export speed for extremely large datasets to reduce waiting time #667

    🔧 修复
    1. 修复文本块全选状态与筛选条件不同步的问题
    2. 修复模型API调用失败,但异步任务状态仍显示为成功的异常
    3. 修复数据集管理模块筛选框的交互体验问题(如筛选条件不生效、样式异常等)
    ⚡ 优化
    1. 文本块支持批量删除,提升多文本块场景下的操作效率
    2. 上传文件大小限制从 50MB 放宽至 300MB,支持处理更大体积的文档或图像
    3. 自定义提示词配置中开放图像答案生成的提示词,支持精细化控制图像问答生成逻辑 #658
    4. 优化超大量数据集的导出速度,减少导出等待时间 #667

  4. 1.7.0[1.7.0] 2026-01-122026-01-12 · 2026-01-12 15:25 UTC
    查看更新说明

    In v1.7.0, we focus on addressing the core pain points of model evaluation: difficult test set construction, lack of quantitative metrics, and the gap between automation and manual testing. This release introduces a brand-new Evaluation Module, creating a closed loop from Test Set Generation to Automated Scoring and Human Blind Testing.

    Here are the detailed updates:

    🎉 Core Highlights

    • One-Stop Evaluation Loop: Support automatic test question generation from raw documents, one-click multi-model automated scoring, and visualized comparison reports.
    • LMArena Mode Integration: Built-in "Chatbot Arena" style human blind testing to quantify subjective "feelings" into actionable data.
    • Multi-Dimensional Question Support: Covers 5 core question types, satisfying evaluation needs ranging from fact-checking to logical reasoning.

    🚀 New Features

    1. Intelligent Test Set Generation

    Stop worrying about the lack of QA pairs. You can now quickly build high-quality evaluation datasets through multiple methods:

    • Document Extraction: Automatically slice and extract questions from PDF/Markdown/Docx domain literature.

    • Dataset Variants: Generate variants based on existing training sets (e.g., converting multiple-choice questions to true/false) to expand testing diversity.

    • 5 Core Question Types:

    • ✅ True/False: Detect model hallucinations.

    • ✅ Single/Multiple Choice: Test knowledge extraction and discrimination.

    • ✅ Short Answer: Test the ability to capture and express core knowledge concisely.

    • ✅ Open-Ended: Evaluate long-text reasoning and summarization skills.

    • Ratio Configuration: Support custom distribution ratios for different question types during the generation task.

    2. Automated Evaluation Tasks (Auto-Evaluation)

    Conduct concurrent assessments on multiple models just like an "exam". The system supports two grading modes:

    • Rule-Based Scoring (Objective): For Choice and True/False questions. No LLM is required; the system uses direct code-level comparison for zero cost and zero error.
    • Teacher Model Scoring (LLM-as-a-Judge): For Short Answer and Open-Ended questions. Configure a "Teacher Model" to score and comment on answers with customizable criteria (Prompts).

    3. Human Blind Test Arena

    Return to the authentic "Side-by-Side" evaluation experience:

    • Anonymous Battle: Model names are hidden. Answers are displayed side-by-side (supports streaming output).
    • Intuitive Voting: Simply click "Left is better", "Right is better", or "Tie".
    • Win Rate Statistics: Automatically generate win-rate comparison charts to eliminate brand bias.

    4. Data & Ecosystem

    • Multi-Format Import/Export: Fully supports JSON, XLS, and XLSX formats for test set management.
    • Built-in Domain Question Banks: Pre-loaded standard test sets across multiple disciplines and domains, ready to use out of the box.
    • Fully Open Prompts: Complete access to configure prompts for the evaluation system (Question Generation, Answer Extraction, Scoring Standards), allowing for high customization.

    在 v1.7.0 版本中,我们重点解决了模型评估中 “测试集难构造”、“量化指标难获取” 以及 “自动化与人工割裂” 的痛点。新增全新的 「评估」 模块,打通了从 测试集生成 到 自动化评分 再到 人工盲测 的全流程闭环。

    以下是本次更新的详细内容:

    🎉 核心亮点

    • 一站式评估闭环:支持从原始文档自动生成测试题,一键发起多模型自动化评分,并提供可视化的对比报告。
    • LMArena 模式集成:内置类似 Chatbot Arena 的人工盲测竞技场,解决“感觉”无法量化的问题。
    • 多维题型支持:覆盖 5 种核心题型,满足从事实核查到逻辑推理的全方位评估需求。

    🚀 新增功能 (New Features)

    1. 智能测试集构造 (Test Set Generation)

    不再为没有 QA 对而发愁,现在支持通过多种方式快速构建高质量评估数据集:

    • 文档提取:支持从 PDF/Markdown/Docx 领域文献中自动切片并提取题目。

    • 数据集变体:支持基于现有训练集生成变体(如将选择题改为判断题),扩充测试多样性。

    • 五大题型支持:

    • ✅ 判断题:检测模型幻觉。

    • ✅ 单选/多选题:考察知识提取与辨析。

    • ✅ 简答题:考察核心知识点的精简表达。

    • ✅ 开放题:考察长文本推理与逻辑总结。

    • 比例配置:支持自定义生成任务中各题型的分布比例。

    2. 自动化评估任务 (Auto-Evaluation)

    像“考试”一样对多个模型进行并发测评,支持两种阅卷模式:

    • 客观题规则评分:针对选择、判断
  5. 1.6.2[1.6.2] 2025-12-292025-12-29 · 2025-12-29 12:10 UTC
    查看更新说明

    如果遇到 Github 下载慢的问题可以使用网盘下载:https://pan.quark.cn/s/194b7eedf16e

    🔧 修复
    1. 修复导入数据删除报错的Bug #645
    2. 修复部分OPEN AI模型max_completion_tokens设置失效的问题 #623
    3. 修复部分阿里云百炼视觉模型无法识别图片的问题 #622
    4. 修复首页卡片未统计图片数据集数量的问题 #611 #607
    5. 修复MAC图片设计不规范的问题 #630
    6. 修复大量标签数据时,标签树查询接口阻塞导致问题管理列表加载异常的问题 #629
    7. 修复大量标签数据情况下,自动蒸馏任务构建标签速度极慢的问题 #629
    ✨ 新功能
    1. 支持单独导出问题 #644
    2. 支持批量选择文件并自定义添加GA #643
    3. 支持全选批量删除已上传文件 #636
    4. 问题管理支持“不匹配关键字”筛选,可快速过滤不符合需求的问题 #613
    5. 增加 Token 统计面板(从首页,右上角统计图标可进入此功能) #133
    ⚡ 优化
    1. 优化项目选择弹框的关闭方式
    🔧 Fixes
    1. Fixed the error when deleting imported data #645
    2. Fixed the invalid max_completion_tokens setting issue for some OPEN AI models #623
    3. Fixed the image unrecognition problem of some Alibaba Cloud Bailian visual models #622
    4. Fixed the homepage card's failure to count image dataset quantities #611 #607
    5. Fixed the irregular design issue of MAC images #630
    6. Fixed the question management list loading exception caused by label tree query interface blocking (with large label data) #629
    7. Fixed the slow label construction speed of automatic distillation tasks (with large label data) #629
    ✨ New Features
    1. Supported exporting questions individually #644
    2. Supported batch selecting files and custom adding GA #643
    3. Supported selecting all and batch deleting uploaded files #636
    4. Added "exclude keyword" filtering in question management to quickly filter out unwanted questions #613
    ⚡ Optimizations
    1. Optimized the closing method of the project selection pop-up

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    A powerful tool for creating fine-tuning datasets for Large Language Models

    简体中文 | English | Türkçe

    Features • Quick Start • Documentation • Contributing • License

    If you like this project, please give it a Star⭐️, or buy the author a coffee => Donate ❤️!

    Overview

    Easy Dataset is an application specifically designed for building large language model (LLM) datasets. It features an intuitive interface, along with built-in powerful document parsing tools, intelligent segmentation algorithms, data cleaning and augmentation capabilities. The application can convert domain-specific documents in various formats into high-quality structured datasets, which are applicable to scenarios such as model fine-tuning, retrieval-augmented generation (RAG), and model performance evaluation.

    News

    🎉🎉 Easy Dataset Version 1.7.0 launches brand-new evaluation capabilities! You can effortlessly convert domain-specific documents into evaluation datasets (test sets) and automatically run multi-dimensional evaluation tasks. Additionally, it comes with a human blind test system, enabling you to easily meet needs such as vertical domain model evaluation, post-fine-tuning model performance assessment, and RAG recall rate evaluation. Tutorial: https://www.bilibili.com/video/BV1CRrVB7Eb4/

    Features

    📄 Document Processing & Data Generation

    • Intelligent Document Processing: Supports PDF, Markdown, DOCX, TXT, EPUB and more formats with intelligent recognition
    • Intelligent Text Splitting: Multiple splitting algorithms (Markdown structure, recursive separators, fixed length, code-aware chunking), with customizable visual segmentation
    • Intelligent Question Generation: Auto-extract relevant questions from text segments, with question templates and batch generation
    • Domain Label Tree: Intelligently builds global domain label trees based on document structure, with auto-tagging capabilities
    • Answer Generation: Uses LLM API to generate comprehensive answers and Chain of Thought (COT), with AI optimization
    • Data Cleaning: Intelligent text cleaning to remove noise and improve data quality

    🔄 Multiple Dataset Types

    • Single-Turn QA Datasets: Standard question-answer pairs for basic fine-tuning
    • Multi-Turn Dialogue Datasets: Customizable roles and scenarios for conversational format
    • Image QA Datasets: Generate visual QA data from images, with multiple import methods (directory, PDF, ZIP)
    • Data Distillation: Generate label trees and questions directly from domain topics without uploading documents

    📊 Model Evaluation System

    • Evaluation Datasets: Generate true/false, single-choice, multiple-choice, short-answer, and open-ended questions
    • Automated Model Evaluation: Use Judge Model to automatically evaluate model answer quality with customizable scoring rules
    • Human Blind Test (Arena): Double-blind comparison of two models' answers for unbiased evaluation
    • AI Quality Assessment: Automatic quality scoring and filtering of generated datasets

    🛠️ Advanced Features

    • Custom Prompts: Project-level customization of all prompt templates (question generation, answer generation, data cleaning, etc.)
    • GA Pair Generation: Genre-Audience pair generation to enrich data diversity
    • Task Management Center: Background batch task processing with monitoring and interruption support
    • Resource Monitoring Dashboard: Token consumption statistics, API call tracking, model performance analysis
    • Model Testing Playground: Compare up to 3 models simultaneously

    📤 Export & Integration

    • Multiple Export Formats: Alpaca, ShareGPT, Multilingual-Thinking formats with JSON/JSONL file types
    • Balanced Export: Configure export counts per tag for dataset balancing
    • LLaMA Factory Integration: One-click LLaMA Factory configuration file generation
    • Hugging Face Upload: Direct upload datasets to Hugging Face Hub

    🤖 Model Support

    • Wide Model Compatibility: Compatible with all LLM APIs that follow the OpenAI format
    • Multi-Provider Support: OpenAI, MiniMax, Ollama (local models), Zhipu AI, Alibaba Bailian, OpenRouter, and more
    • Vision Models: Support Gemini, Claude, etc. for PDF parsing and image QA

    🌐 User Experience

    • User-Friendly Interface: Modern, intuitive UI designed for both technical and non-technical users
    • Multi-Language Support: Complete Chinese, English, Turkish and Portuguese language support 🇹🇷
    • Dataset Square: Discover and explore public dataset resources
    • Desktop Clients: Available for Windows, macOS, and Linux

    Quick Demo

    https://github.com/user-attachments/assets/6ddb1225-3d1b-4695-90cd-aa4cb01376a8

    Local Run

    Download Client

    Install with NPM

    1. Clone the repository:
       git clone https://github.com/ConardLi/easy-dataset.git
       cd easy-dataset
    
    1. Install dependencies:
       npm install
    
    1. Start the development server:
       npm run build
    
       npm run start
    
    1. Open your browser and visit http://localhost:1717

    Using the Official Docker Image

    1. Clone the repository:
    git clone https://github.com/ConardLi/easy-dataset.git
    cd easy-dataset
    
    1. Modify the docker-compose.yml file:
    services:
      easy-dataset:
        image: ghcr.io/conardli/easy-dataset
        container_name: easy-dataset
        ports:
          - '1717:1717'
        volumes:
          - ./local-db:/app/local-db
          - ./prisma:/app/prisma
        restart: unless-stopped
    

    Note: It is recommended to use the local-db and prisma folders in the current code repository directory as mount paths to maintain consistency with the database paths when starting via NPM.

    Note: The database file will be automatically initialized on first startup, no need to manually run npm run db:push.

    1. Start with docker-compose:
    docker-compose up -d
    
    1. Open a browser and visit http://localhost:1717

    Building with a Local Dockerfile

    If you want to build the image yourself, use the Dockerfile in the project root directory:

    1. Clone the repository:
    git clone https://github.com/ConardLi/easy-dataset.git
    cd easy-dataset
    
    1. Build the Docker image:
    docker build -t easy-dataset .
    
    1. Run the container:
    docker run -d \
      -p 1717:1717 \
      -v ./local-db:/app/local-db \
      -v ./prisma:/app/prisma \
      --name easy-dataset \
      easy-dataset
    

    Note: It is recommended to use the local-db and prisma folders in the current code repository directory as mount paths to maintain consistency with the database paths when starting via NPM.

    Note: The database file will be automatically initialized on first startup, no need to manually run npm run db:push.

    1. Open a browser and visit http://localhost:1717

    Documentation

    Community Practice

    Contributing

    We welcome contributions from the community! If you'd like to contribute to Easy Dataset, please follow these steps:

    1. Fork the repository
    2. Create a new branch (git checkout -b feature/amazing-feature)
    3. Make your changes
    4. Commit your changes (git commit -m 'Add some amazing feature')
    5. Push to the branch (git push origin feature/amazing-feature)
    6. Open a Pull Request (submit to the DEV branch)

    Please ensure that tests are appropriately updated and adhere to the existing coding style.

    Join Discussion Group & Contact the Author

    https://docs.easy-dataset.com/geng-duo/lian-xi-wo-men

    License

    This project is licensed under the AGPL 3.0 License - see the LICENSE file for details.

    Citation

    If this work is helpful, please kindly cite as:

    @misc{miao2025easydataset,
      title={Easy Dataset: A Unified and Extensible Framework for Synthesizing LLM Fine-Tuning Data from Unstructured Documents},
      author={Ziyang Miao and Qiyu Sun and Jingyuan Wang and Yuchen Gong and Yaowei Zheng and Shiqi Li and Richong Zhang},
      year={2025},
      eprint={2507.04009},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2507.04009}
    }
    

    Star History

    Star History Chart