一个强大的工具,用于为大语言模型(LLM)创建高质量的训练数据集 | Switch to English
- 智能文档处理:支持多种格式文档的智能分割
- 问题生成:基于文档内容自动生成相关问题
- 答案生成:使用 LLM 生成高质量答案
- 异步处理:支持大规模文档的异步处理
- 多种导出格式:支持多种数据集格式导出(Alpaca、ShareGPT等)
- 直接SFT就绪输出:生成适用于监督微调的数据集
- 知识蒸馏:从大模型中提取知识到训练数据集
- 指令扩增:自动生成指令变体,扩充训练数据
- 质量优化:使用 LLM 优化和提升数据质量
- 多格式支持:支持从多种格式的数据集进行蒸馏
- Python 3.8+
- 依赖包:见
requirements.txt
# 克隆仓库
git clone https://github.com/ZhuLinsen/FastDatasets.git
cd FastDatasets
# 创建并激活虚拟环境(可选)
conda create -n fast_datasets python=3.10
conda activate fast_datasets
# 安装依赖
pip install -e .
# 创建环境配置文件
cp .env.example .env
# 使用编辑器修改.env文件,配置大模型API等必要信息
- 首先配置您的 LLM
# 创建并编辑.env文件,从.env.example复制并修改
cp .env.example .env
# 编辑.env文件并配置您的大模型API
# LLM_API_KEY=your_api_key_here
# LLM_API_BASE=https://api.deepseek.com/v1 (或其他模型API地址)
# 使用以下命令测试LLM连接和能力
python scripts/test_llm.py
- 从文档生成数据集
# 使用测试文档生成数据集
python scripts/dataset_generator.py tests/test.txt -o ./output
# 处理自定义文档
python scripts/dataset_generator.py 路径/到/你的文档.pdf -o ./输出目录
# 处理整个目录下的文档
python scripts/dataset_generator.py 路径/到/文档目录/ -o ./输出目录
- 使用知识蒸馏创建训练数据集
# 从Huggingface数据集提取问题并生成高质量回答
python scripts/distill_dataset.py --mode distill --dataset_name open-r1/s1K-1.1 --sample_size 10
# 使用高质量样本生成变体并进行知识蒸馏(可选)
python scripts/distill_dataset.py --mode augment --high_quality_file data/high_quality_samples.json --num_aug 3
更多详细用法,请参考:知识蒸馏指南 | 文档处理与数据集生成
- PDF (*.pdf)
- Word (*.docx)
- Markdown (*.md)
- 纯文本 (*.txt)
- 其他主流格式文档
处理完成后,在指定的输出目录会生成以下文件:
chunks.json
: 文档切分后的文本块questions.json
: 生成的问题answers.json
: 生成的答案optimized.json
: 优化后的问答对dataset-alpaca.json
: Alpaca 格式的数据集dataset-sharegpt.json
: ShareGPT 格式的数据集(如果配置了此输出格式)
知识蒸馏过程会在output目录下创建带时间戳的子目录,并生成以下文件:
distilled.json
: 蒸馏后的原始数据distilled-alpaca.json
: Alpaca 格式的蒸馏数据distilled-sharegpt.json
: ShareGPT 格式的蒸馏数据
启动 Web 界面,提供可视化的文档处理和数据集生成功能:
# 进入 web 目录
cd web
# 启动 Web 应用
python web_app.py
-
文件上传:支持拖拽或点击上传多种格式的文档
- 支持 PDF、Word、Markdown、纯文本等格式
- 可同时上传多个文件进行批量处理
-
参数配置:
- 文本分块设置:配置最小/最大分块长度
- 输出格式选择:支持 Alpaca、ShareGPT 等格式
- LLM 配置:设置 API Key、Base URL、模型名称
- 并发控制:调整 LLM 和文件处理的并发数
- 高级选项:启用思维链(CoT)、设置每块问题数量
-
实时处理监控:
- 显示处理进度和当前状态
- 实时更新处理日志
- 显示已处理文件数量和剩余时间
-
结果管理:
- 查看生成的问答对数量和质量
- 下载生成的数据集文件
- 支持多种格式的数据集导出
- 配置环境:确保已正确配置
.env
文件中的 LLM API 信息 - 启动服务:运行
python web_app.py
启动 Web 界面 - 上传文件:在界面中上传需要处理的文档
- 配置参数:根据需要调整处理参数
- 开始处理:点击开始处理按钮,实时监控进度
- 下载结果:处理完成后下载生成的数据集
启动 RESTful API 服务:
python -m app.main
- 处理速度慢:增加 MAX_LLM_CONCURRENCY 值,或减少 LLM_MAX_TOKENS
- 内存不足:减小处理的文档数量或文档大小
- API 超时:检查网络连接,或减少 MAX_LLM_CONCURRENCY