Skip to content

yuanhechen/DataCreator

Repository files navigation

自动数据蒸馏工具 (DataSetCreator)

GitHub stars GitHub forks GitHub issues GitHub license

Python Version Gradio HuggingFace ModelScope

一个功能强大的数据集管理和处理工具,支持从多个平台下载、预览、处理和转换数据集。

🚀 快速开始📖 文档🤝 贡献👥 团队💬 讨论

🚀 主要功能

📥 数据集下载

  • 多平台支持: Hugging Face 和 ModelScope
  • 智能URL解析: 自动从URL中提取数据集信息
  • 断点续传: 支持下载失败后的重试机制
  • 进度监控: 实时显示下载进度和状态
  • 多任务管理: 支持同时下载多个数据集

👀 数据集预览

  • 多格式支持: JSON、JSONL、CSV等常见格式
  • 分页浏览: 支持大数据集的分页预览
  • 自定义目录: 支持预览任意目录中的数据集
  • 实时刷新: 动态更新数据集列表

🔧 数据处理

  • 格式转换: 支持JSON、JSONL、CSV之间的相互转换
  • 字段映射: 灵活的字段重命名和结构调整
  • 数据清洗: 自动清理临时文件和无效数据
  • 批量处理: 支持批量处理多个数据集

📊 系统监控

  • 资源监控: 实时显示内存和磁盘使用情况
  • 日志管理: 详细的操作日志记录
  • 错误追踪: 完整的错误信息和调试支持

📋 系统要求

  • Python: 3.8+
  • 操作系统: Windows、Linux、macOS
  • 内存: 建议4GB以上
  • 磁盘空间: 根据数据集大小而定

🛠️ 安装指南

方法一:Conda环境(推荐)

# 创建conda环境
conda create -n data-distil python=3.12
conda activate data-distil

# 克隆项目
git clone <repository-url>
cd DataSetCreator/DataCreator

# 安装依赖
pip install -r requirements.txt

方法二:虚拟环境

# 创建虚拟环境
python -m venv venv

# 激活环境(Windows)
venv\Scripts\activate
# 激活环境(Linux/macOS)
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

方法三:直接安装

pip install -r requirements.txt

🎯 快速开始

启动Web界面

python main.py --ui

界面将在 http://localhost:7860 启动。

命令行使用

# 下载Hugging Face数据集
python main.py --download --platform huggingface --dataset "facebook/opt-350m" --token "your_token"

# 下载ModelScope数据集
python main.py --download --platform modelscope --url "https://www.modelscope.cn/models/pai/DistilQwen_100k"

# 预览数据集
python main.py --preview --dataset "huggingface/facebook/opt-350m"

📖 详细使用指南

Web界面操作

1. 下载配置区

  • 平台选择: 选择Hugging Face或ModelScope
  • 数据集名称:
    • Hugging Face: 格式为用户名/数据集名,如facebook/opt-350m
    • ModelScope: 可选,系统会从URL自动提取
  • 下载地址:
    • Hugging Face: 可选
    • ModelScope: 必填完整URL
  • 下载目录: 自定义下载路径,留空使用默认目录
  • API密钥: 访问私有数据集所需的令牌
  • 重试设置: 下载失败时的重试次数和间隔

2. 数据预览区

  • 目录同步: 可同步下载配置区的目录设置
  • 数据集选择: 从下拉菜单选择要预览的数据集
  • 分页设置: 调整每页显示的数据条数
  • 实时预览: 在表格中查看数据集内容

3. 数据处理区

  • 源数据集: 选择要处理的数据集
  • 字段映射: JSON格式的字段重命名配置
  • 输出格式: 选择转换后的文件格式
  • 批量处理: 支持同时处理多个数据集

4. 日志监控区

  • 日志类型: 选择查看不同类型的日志
  • 资源状态: 监控系统资源使用情况
  • 实时更新: 自动刷新状态信息

命令行参数

python main.py [OPTIONS]

选项:
  --ui                    启动Web界面
  --download             下载模式
  --preview              预览模式
  --process              处理模式
  --platform TEXT        平台名称 (huggingface/modelscope)
  --dataset TEXT         数据集名称
  --url TEXT             下载URL (ModelScope必需)
  --token TEXT           API令牌
  --dir TEXT             自定义目录
  --retry INTEGER        重试次数 (默认: 3)
  --interval INTEGER     重试间隔秒数 (默认: 5)
  --port INTEGER         Web界面端口 (默认: 7860)
  --help                 显示帮助信息

平台特定配置

Hugging Face

  1. 获取令牌: 访问 Hugging Face Settings
  2. 数据集格式: 用户名/数据集名,如microsoft/DialoGPT-medium
  3. 私有数据集: 需要提供有效的访问令牌

ModelScope

  1. 获取令牌: 访问 ModelScope个人中心
  2. URL格式:
    • 模型: https://www.modelscope.cn/models/用户名/模型名
    • 数据集: https://www.modelscope.cn/datasets/用户名/数据集名
  3. 自动提取: 系统会自动从URL中提取数据集信息

📁 项目结构

DataSetCreator/DataCreator/
├── main.py                  # 主程序入口
├── ui_launcher.py          # Web界面启动器
├── dataset_downloader.py   # 数据集下载模块
├── dataset_previewer.py    # 数据集预览模块
├── dataset_processor.py    # 数据处理模块
├── dir_browser.py          # 目录浏览器
├── utils.py               # 工具函数
├── requirements.txt       # 依赖包列表
├── README.md             # 说明文档
├── logs/                 # 日志目录
├── raw/                  # 原始数据目录
├── processed/            # 处理后数据目录
└── temp/                 # 临时文件目录

🔧 配置说明

目录结构说明

  • raw/: 存储原始下载的数据集
  • processed/: 存储处理后的数据集
  • temp/: 存储临时文件,可定期清理
  • logs/: 存储操作日志

环境变量

可通过环境变量配置默认设置:

export HF_TOKEN="your_huggingface_token"
export MS_TOKEN="your_modelscope_token"
export DEFAULT_DOWNLOAD_DIR="/path/to/download/dir"

🐛 常见问题

1. 依赖冲突

# 问题:pyarrow版本冲突
# 解决:使用指定版本
pip install pyarrow==14.0.2 numpy==1.26.4 datasets==2.14.0

2. ModelScope导入错误

# 问题:MsDataset导入失败
# 解决:系统会自动使用备用下载方法

3. 下载失败

  • 检查网络连接
  • 验证API令牌有效性
  • 确认数据集名称正确
  • 检查磁盘空间是否充足

4. UI界面无法访问

  • 确认端口7860未被占用
  • 检查防火墙设置
  • 尝试使用 --port 参数指定其他端口

📝 开发说明

添加新平台支持

  1. dataset_downloader.py 中添加新的下载逻辑
  2. 更新 dataset_previewer.py 支持新的数据格式
  3. ui_launcher.py 中添加对应的UI选项

扩展数据处理功能

  1. dataset_processor.py 中添加新的处理函数
  2. 更新Web界面添加相应的控件
  3. 添加相应的命令行参数支持

自定义主题

可以修改 ui_launcher.py 中的CSS样式自定义界面外观。

🤝 贡献指南

我们热烈欢迎社区贡献!请阅读我们的 贡献指南 了解详细信息。

快速开始贡献

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

贡献方式

🏆 贡献者

感谢所有为这个项目做出贡献的开发者!

核心维护者


18621098785
项目创建者 & 核心维护者
📧
联系

所有贡献者

感谢每一位贡献者!您的每一个PR都让这个项目变得更好。

贡献者

贡献统计

  • 🔢 总提交数: GitHub commits
  • 👥 贡献者数量: GitHub contributors
  • ⭐ Stars: GitHub stars
  • 🍴 Forks: GitHub forks

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🆘 支持

如果遇到问题:

  1. 查看本README的常见问题部分
  2. 检查日志文件获取详细错误信息
  3. 在项目GitHub页面提交Issue
  4. 联系开发团队获取技术支持

🔄 更新日志

v1.0.0 (2025-08-19)

  • ✨ 初始版本发布
  • 🎯 支持Hugging Face和ModelScope平台
  • 🎨 完整的Web界面
  • 📊 实时进度监控
  • 🔧 数据处理和转换功能

享受数据集管理的便利! 🎉

About

数据处理全管线

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published