[中文主页] | [DOCS] | [API] | [dj-sora] | [很棒的清单]
Data-Juicer是一种一站式多模式数据处理系统,可使数据更高,更重要且更易于LLM。
我们提供一个带有托管Jupyterlab的操场。在浏览器中立即尝试数据juicer!如果您发现数据简洁者对您的研究或开发有用,请请我们的工作。
阿里巴巴云(PAI)AI的平台已引用了我们的工作,并将数据简化器集成到其数据处理产品中。 PAI是AI本机大型模型和AIGC工程平台,可提供数据集管理,计算电源管理,模型工具链,模型开发,模型培训,模型部署和AI资产管理。有关数据处理的文档,请参阅:大型模型的PAI-DATA处理。
正在积极更新和维护数据。我们将定期增强并添加更多功能,数据配方和数据集。我们欢迎您加入我们(通过问题,PRS,Slack Channel,Dingding Group,...),促进数据模型共同开发以及(多模式)LLMS的研究和应用!
系统和重复使用:通过80+ Core Ops,20+可重用的配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置食谱和20多个专用工具包为用户授权,旨在独立于特定的多模式LLM数据集和处理管道。
数据中的环境和沙箱:支持一站式数据模型协作开发,通过沙箱实验室进行快速迭代,并根据数据和模型,可视化和多维自动评估提供诸如反馈循环之类的功能,以便您可以更好地理解和改善数据和模型。
朝向生产环境:提供有效且并行数据处理管道(Aliyun-Pai ray slurm cuda op Fusion),需要更少的内存和CPU使用,并使用自动断层容量进行了优化。
全面的数据处理配方:为预培训,微调,EN,ZH和更多情况提供数十种预构建的数据处理配方。通过参考骆驼和LLAVA模型进行了验证。
灵活且可扩展:适应大多数类型的数据格式(例如JSONL,PARQUET,CSV,...),并允许操作的灵活组合。随意实施自己的操作,以进行可自定义的数据处理。
用户友好的体验:为简单性而设计,具有全面的文档,简单的启动指南和演示配置以及直观的配置,并通过现有配置的简单添加/删除操作。
data_juicer版本: cd < path_to_data_juicer >
pip install -v -e . cd < path_to_data_juicer >
pip install -v -e . # install a minimal dependencies, which support the basic functions
pip install -v -e .[tools] # install a subset of tools dependencies依赖项选项如下:
| 标签 | 描述 |
|---|---|
.或.[mini] | 为基本的数据juicer安装最小依赖项。 |
.[all] | 安装除沙箱以外的所有依赖项。 |
.[sci] | 为所有操作安装所有依赖项。 |
.[dist] | 安装依赖项以进行分布式数据处理。 (实验) |
.[dev] | 安装依赖项以开发包装作为贡献者。 |
.[tools] | 为专用工具(例如质量分类器)安装依赖项。 |
.[sandbox] | 安装沙箱的所有依赖项。 |
pip安装最新发布的data_juicer : pip install py-data-juicerdata_juicer中的基本API和两个基本工具(数据处理和分析)才能以此方式使用。如果您需要可自定义且完整的功能,建议您从源安装data_juicer 。data_juicer的最新功能,我们建议您从源安装。要么从Dockerhub拿起我们的预构建图像:
docker pull datajuicer/data-juicer: < version_tag >或运行以下命令来构建Docker映像,包括最新的data-juicer其中包括提供的Dockerfile:
docker build -t datajuicer/data-juicer: < version_tag > . <version_tag>的格式就像v0.2.0 ,与realease版本标签相同。
import data_juicer as dj
print ( dj . __version__ )在使用与视频相关的操作员之前,应通过$路径环境变量安装FFMPEG并访问。
您可以使用软件包管理器安装FFMPEG(例如在Debian/Ubuntu上的Sudo APT安装FFMPEG,在OS X上酿造FFMPEG或访问官方FFMPEG链接。
通过从终端运行FFMPEG命令,检查是否正确设置了环境路径。
?返回索引
process_data.py工具或dj-process命令行工具将您的配置作为处理数据集的参数。 # only for installation from source
python tools/process_data.py --config configs/demo/process.yaml
# use command line tool
dj-process --config configs/demo/process.yaml注意:对于某些涉及未在本地存储在您的计算机上的第三方模型或资源的运营商,对于第一次运行,它可能会很慢,因为这些操作需要首先将相应的资源下载到目录中。默认下载缓存目录是~/.cache/data_juicer 。通过设置Shell环境变量, DATA_JUICER_CACHE_HOME将缓存位置更改为另一个目录,您还可以以相同的方式更改DATA_JUICER_MODELS_CACHE或DATA_JUICER_ASSETS_CACHE :
注意:当使用具有第三方模型的操作员时,必须在配置文件中声明相应的mem_required (您可以参考config_all.yaml文件中的设置)。在运行时,Data-Juicer将根据内存可用性和操作员模型的内存要求控制过程数,以实现更好的数据处理效率。使用CUDA环境运行时,如果未正确声明操作员的MEM_REQUERQUER,则可能导致CUDA退出内存问题。
# cache home
export DATA_JUICER_CACHE_HOME= " /path/to/another/directory "
# cache models
export DATA_JUICER_MODELS_CACHE= " /path/to/another/directory/models "
# cache assets
export DATA_JUICER_ASSETS_CACHE= " /path/to/another/directory/assets " 我们提供各种简单的接口供用户选择如下。
#... init op & dataset ...
# Chain call style, support single operator or operator list
dataset = dataset . process ( op )
dataset = dataset . process ([ op1 , op2 ])
# Functional programming style for quick integration or script prototype iteration
dataset = op ( dataset )
dataset = op . run ( dataset )现在,我们已经基于Ray实施了多机器分布式数据处理。可以使用以下命令运行相应的演示:
# Run text data processing
python tools/process_data.py --config ./demos/process_on_ray/configs/demo.yaml
# Run video data processing
python tools/process_data.py --config ./demos/process_video_on_ray/configs/demo.yamlray前缀,例如ray_video_deduplicator和ray_document_deduplicator 。这些操作员还依靠重新使用实例。因此,除了启动射线群集外,您还需要提前设置REDIS实例,并在配置中提供REDIS实例的host和port 。用户还可以选择不使用射线,而是将数据集分开以用Slurm在群集上运行。在这种情况下,请使用无射线的默认数据简洁器。 Aliyun Pai-DLC支持射线框架,Slurm Framework等。用户可以直接在DLC群集上创建Ray作业和Slurm作业。
analyze_data.py工具或dj-analyze命令行工具,并将您的配置作为参数分析数据集。 # only for installation from source
python tools/analyze_data.py --config configs/demo/analyzer.yaml
# use command line tool
dj-analyze --config configs/demo/analyzer.yamlapp.py工具以在浏览器中可视化数据集。streamlit run app.pyconfig_all.yaml中修改,其中包括所有操作和默认参数。您只需要删除您不会使用的操作并完善对OPS的一些论点。config_all.yaml ,OP文档和高级堆积指南。python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=en基本配置格式和定义如下所示。
数据沙盒实验室(DJ-Sandbox)为用户提供了不断生产数据食谱的最佳实践。它具有低顶,可移植性和指导。
默认情况下,使用以下命令运行沙箱,有关更多信息和详细信息,请参阅Sandbox文档。
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess中为您提供一些常见的预处理工具,以便您预处理这些数据。data-juicer的Docker映像,则可以使用此Docker映像运行上面提到的命令或工具。 # run the data processing directly
docker run --rm # remove container after the processing
--privileged
--shm-size 256g
--network host
--gpus all
--name dj # name of the container
-v < host_data_path > : < image_data_path > # mount data or config directory into the container
-v ~ /.cache/:/root/.cache/ # mount the cache directory into the container to reuse caches and models (recommended)
datajuicer/data-juicer: < version_tag > # image to run
dj-process --config /path/to/config.yaml # similar data processing commands # start the container
docker run -dit # run the container in the background
--privileged
--shm-size 256g
--network host
--gpus all
--rm
--name dj
-v < host_data_path > : < image_data_path >
-v ~ /.cache/:/root/.cache/
datajuicer/data-juicer:latest /bin/bash
# enter into this container and then you can use data-juicer in editable mode
docker exec -it < container_id > bash?返回索引
Data-Juicer以Apache许可证2.0发布。
我们正在迅速发展的领域,非常受欢迎的新功能,错误修复和更好的文档的贡献。请参阅开发人员的操作指南。
如果您有任何疑问,请加入我们的讨论小组。
Data-Juicer用于各种LLM产品和研究计划,包括来自阿里巴巴云的工业LLM,例如Dianjin进行财务分析,以及Zhiwen的阅读助手,以及阿里巴巴云的AI(PAI)平台。我们期待您更多的协作经验,建议和讨论!
感谢数据,感谢并指的是几个社区项目,例如Huggingface-Datasets,Bloom,Redpajama,Pile,Pile,Apaca-Cot,Megatron-LM,Deepspeed,Deepspeed,Arrow,Ray,Ray,Beam,Lm-Harness,Harness,Helm,... ...
如果您发现我们的工作对您的研究或开发很有用,请邀请以下论文。
@inproceedings{chen2024datajuicer,
title={Data-Juicer: A One-Stop Data Processing System for Large Language Models},
author={Daoyuan Chen and Yilun Huang and Zhijian Ma and Hesen Chen and Xuchen Pan and Ce Ge and Dawei Gao and Yuexiang Xie and Zhaoyang Liu and Jinyang Gao and Yaliang Li and Bolin Ding and Jingren Zhou},
booktitle={International Conference on Management of Data},
year={2024}
}
Data-juicer沙箱:用于多模式数据模型共同开发的综合套件
数据与多模式大语言模型之间的协同作用:从共同开发的角度进行调查
IMGDIFF:视觉大语言模型的对比度数据综合
数据混合提高了:语言模型预处理的双变量缩放定律
?返回索引