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

git clone https://github.com/ConardLi/easy-dataset.git && cd easy-dataset && npm install && npm run build && npm run startREADME 未说明本地硬件要求;模型推理通过 OpenAI 兼容 API 或 Ollama 本地模型完成,显存需求取决于所选模型
把领域文档转成微调、RAG 和评测数据集的可视化工具
面向大模型微调、RAG 和评测的数据集制作工具,支持数据生成、清洗与导出,省去手工整理训练数据的麻烦。
核心能力
- 解析 PDF、DOCX、EPUB 等文档并智能分段
- 自动生成问题、答案与思维链并清洗数据
- 支持单轮 QA、多轮对话、图片 QA 数据集
- 用 Judge 模型自动评测并支持人工盲测
- 导出 Alpaca、ShareGPT 格式并接入 LLaMA Factory
容易踩的坑
- 1.7.3[1.7.3] 2026-04-09最新正式版2026-04-09 · 2026-04-09 13:08 UTC
🔧 修复
- 修复大量蒸馏数据场景下,数据蒸馏页面渲染卡顿的问题
- 修复高并发场景下,全自动蒸馏进度弹框卡顿的问题 #694
- 修复使用 Ollama 进行模型评估时,思维链处理异常的问题 #714
- 修复自定义模型评估提示词不生效的问题 #687
⚡ 优化
- 优化 OpenAI-Compatible API 兼容性问题
- 优化模型设置中 Temperature 和 TOP-P 参数的配置问题 #717
✨ 新功能
- 新增 MiniMax 作为内置模型提供商支持
- 新增主动 COT 合成功能(未提取到原始模型 COT 时自动启用),确保所有数据集均携带思维链 #722
🌍 国际化支持
- 新增土耳其语支持,完善大量国际化文案兼容 #702 #706 #708
- 新增意大利语支持
🙏 特别感谢
- @workcode-del 优化 OpenAI-Compatible API 兼容性
- @chengqiangrd 修复蒸馏页面与进度弹框卡顿问题 #694
- @octo-patch 新增 MiniMax 内置提供商支持
- @bakiburakogun 新增土耳其语及国际化文案支持 #702 #706 #708
- @nikypalma 新增意大利语支持
🔧 Fixes
- Fixed the rendering lag of the data distillation page when processing a large amount of distillation data
- Fixed the lag of the fully automatic distillation progress popup in high-concurrency scenarios #694
- Fixed the thought chain processing issue during model evaluation with Ollama #714
- Fixed the issue that custom model evaluation prompts did not take effect #687
⚡ Optimizations
- Optimized the compatibility of OpenAI-Compatible API
- Optimized the configuration of Temperature and TOP-P parameters in model settings #717
✨ New Features
- Added MiniMax as a built-in model provider
- 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
- Added Turkish support and improved compatibility with a large number of international copy #702 #706 #708
- 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
- 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)
- 修复自定义评估题目 Prompt 无法生效的问题 #676
- 修复筛选重置时仍使用旧条件发起请求的竞态问题,确保任务进度、状态展示更稳定
- 修复多轮对话与评估功能切换时页面卡顿/假死的问题
⚡ 优化(Optimizations)
1. 模型提供商交互体验
- 新增/接入多家模型提供商(provider)图标资源,统一 provider logo 映射工具,标准化视觉展示
- 调整模型设置、项目模型配置、会话列表展示等页面与接口的配置逻辑,优化提供商选择流程与展示一致性
2. 页面性能与响应速度
- 解决多轮对话/评估功能切换卡顿问题,提升页面切换、高频筛选场景的响应速度
- 前端新增请求取消机制(AbortController),避免快速切换操作时旧请求堆积导致的页面卡顿
3. 接口与数据请求轻量化
- 优化多轮对话列表接口:分页查询不再返回
rawMessages等大字段,显著降低列表请求数据体积 - 优化批量任务“全选”逻辑:获取待操作数据时仅查询 ID,避免拉取整条记录,减少数据传输量
- 优化评估数据集接口:
- 需统计数据时,并发查询列表与统计信息,提升加载效率;
- 筛选/翻页场景默认仅拉取列表数据,减少重复查询压力
感谢 @AdamPlatin123 的贡献
🔧 Fixes
- Fixed the issue where custom evaluation question Prompts failed to take effect #676
- Fixed the race condition where old filter conditions were still used for requests after reset, ensuring stable display of task and progress status
- 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
- 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
- Fixed the synchronization issue between text block full selection status and filter conditions
- Fixed the problem where model API call failures were incorrectly displayed as successful in asynchronous tasks
- Fixed the filter box experience issues in the dataset management module (e.g., invalid conditions, style anomalies)
⚡ Optimizations
- Added batch deletion support for text blocks to improve efficiency in multi-block scenarios
- Increased the maximum upload file size limit from 50MB to 300MB, enabling processing of larger documents or images
- Exposed image answer generation prompts in custom prompt configurations for fine-grained control of VQA generation logic #658
- Optimized export speed for extremely large datasets to reduce waiting time #667
🔧 修复
- 修复文本块全选状态与筛选条件不同步的问题
- 修复模型API调用失败,但异步任务状态仍显示为成功的异常
- 修复数据集管理模块筛选框的交互体验问题(如筛选条件不生效、样式异常等)
⚡ 优化
- 文本块支持批量删除,提升多文本块场景下的操作效率
- 上传文件大小限制从 50MB 放宽至 300MB,支持处理更大体积的文档或图像
- 自定义提示词配置中开放图像答案生成的提示词,支持精细化控制图像问答生成逻辑 #658
- 优化超大量数据集的导出速度,减少导出等待时间 #667
- 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)
像“考试”一样对多个模型进行并发测评,支持两种阅卷模式:
- 客观题规则评分:针对选择、判断
- 1.6.2[1.6.2] 2025-12-292025-12-29 · 2025-12-29 12:10 UTC
查看更新说明
如果遇到 Github 下载慢的问题可以使用网盘下载:https://pan.quark.cn/s/194b7eedf16e
🔧 修复
- 修复导入数据删除报错的Bug #645
- 修复部分OPEN AI模型
max_completion_tokens设置失效的问题 #623 - 修复部分阿里云百炼视觉模型无法识别图片的问题 #622
- 修复首页卡片未统计图片数据集数量的问题 #611 #607
- 修复MAC图片设计不规范的问题 #630
- 修复大量标签数据时,标签树查询接口阻塞导致问题管理列表加载异常的问题 #629
- 修复大量标签数据情况下,自动蒸馏任务构建标签速度极慢的问题 #629
✨ 新功能
- 支持单独导出问题 #644
- 支持批量选择文件并自定义添加GA #643
- 支持全选批量删除已上传文件 #636
- 问题管理支持“不匹配关键字”筛选,可快速过滤不符合需求的问题 #613
- 增加 Token 统计面板(从首页,右上角统计图标可进入此功能) #133
⚡ 优化
- 优化项目选择弹框的关闭方式
🔧 Fixes
- Fixed the error when deleting imported data #645
- Fixed the invalid
max_completion_tokenssetting issue for some OPEN AI models #623 - Fixed the image unrecognition problem of some Alibaba Cloud Bailian visual models #622
- Fixed the homepage card's failure to count image dataset quantities #611 #607
- Fixed the irregular design issue of MAC images #630
- Fixed the question management list loading exception caused by label tree query interface blocking (with large label data) #629
- Fixed the slow label construction speed of automatic distillation tasks (with large label data) #629
✨ New Features
- Supported exporting questions individually #644
- Supported batch selecting files and custom adding GA #643
- Supported selecting all and batch deleting uploaded files #636
- Added "exclude keyword" filtering in question management to quickly filter out unwanted questions #613
⚡ Optimizations
- Optimized the closing method of the project selection pop-up
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

A powerful tool for creating fine-tuning datasets for Large Language Models
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
- Clone the repository:
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- Install dependencies:
npm install
- Start the development server:
npm run build
npm run start
- Open your browser and visit
http://localhost:1717
Using the Official Docker Image
- Clone the repository:
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- Modify the
docker-compose.ymlfile:
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-dbandprismafolders 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.
- Start with docker-compose:
docker-compose up -d
- 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:
- Clone the repository:
git clone https://github.com/ConardLi/easy-dataset.git
cd easy-dataset
- Build the Docker image:
docker build -t easy-dataset .
- 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-dbandprismafolders 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.
- Open a browser and visit
http://localhost:1717
Documentation
- View the demo video of this project: Easy Dataset Demo Video
- For detailed documentation on all features and APIs, visit our Documentation Site
- View the paper of this project: Easy Dataset: A Unified and Extensible Framework for Synthesizing LLM Fine-Tuning Data from Unstructured Documents
Community Practice
- Complete test set generation and model evaluation with Easy Dataset
- Easy Dataset × LLaMA Factory: Enabling LLMs to Efficiently Learn Domain Knowledge
- Easy Dataset Practical Guide: How to Build High-Quality Datasets?
- Interpretation of Key Feature Updates in Easy Dataset
- Foundation Models Fine-tuning Datasets: Basic Knowledge Popularization
Contributing
We welcome contributions from the community! If you'd like to contribute to Easy Dataset, please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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}
}