[中文主页] | [docs] | [API] | [dj-sora] | [素晴らしいリスト]
Data-Juicerは、データをより高品質、ジューシー、およびLLMSの消化可能にするためのワンストップマルチモーダルデータ処理システムです。
管理されたJupyterLabを備えた遊び場を提供しています。ブラウザですぐにData-Juicerをお試しください!あなたの研究や開発に役立つデータジュイサーを見つけた場合は、私たちの作品を優しく引用してください。
AI of Alibaba Cloud(PAI)のAIのプラットフォームは、データ処理製品に私たちの作業と統合されたデータジューザーを引用しました。 PAIは、データセット管理、コンピューティングパワー管理、モデルツールチェーン、モデル開発、モデルトレーニング、モデル展開、AIアセット管理を提供するAIネイティブの大型モデルおよびAIGCエンジニアリングプラットフォームです。データ処理に関するドキュメントについては、次のことを参照してください:大規模なモデルのPAI-DATA処理。
Data-Juicerは積極的に更新および維持されています。より多くの機能、データレシピ、データセットを定期的に強化して追加します。 (Multimodal)LLMSの研究と応用とともにデータモデルの共同開発を促進するために、(問題、PR、Slack Channel、Dingding Group、...)(Multimodal)LLMSを促進することをお勧めします。
体系的で再利用可能:80+コアOPS、20+再利用可能な構成レシピ、および20+の機能が豊富な専用ツールキットの体系的なライブラリを使用して、特定のマルチモーダルLLMデータセットと処理パイプラインとは独立して機能するように設計されています。
Loop-in-the-Loop&Sandbox :ワンストップデータモデルの共同開発をサポートし、Sandbox Laboratoryを介した迅速な反復を可能にし、データとモデル、視覚化、多次元自動評価に基づいたフィードバックループなどの機能を提供し、データとモデルをよりよく理解し、改善できるようにします。
生産環境に向けて:自動断層計算で最適化されたメモリとCPU使用量を少なくする必要がある、効率的かつ並列データ処理パイプライン(Aliyun-Pai ray slurm cuda op Fusion)を提供します。
包括的なデータ処理レシピ:トレーニング前、微調整、EN、ZH、およびその他のシナリオのために、事前に構築されたデータ処理レシピを数十個提供します。参照llamaおよびllavaモデルで検証されています。
柔軟性と拡張可能:ほとんどのタイプのデータ形式(例えば、JSONL、Parquet、CSVなど)に対応し、OPSの柔軟な組み合わせを可能にします。カスタマイズ可能なデータ処理用の独自のOPSを自由に実装してください。
ユーザーフレンドリーエクスペリエンス:包括的なドキュメント、簡単なスタートガイドとデモ構成を備えたシンプルに設計され、既存の構成からOPSを簡単に追加/削除する直感的な構成。
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] | 基本的なデータジューザーの最小依存関係をインストールします。 |
.[all] | サンドボックスを除くすべての依存関係をインストールします。 |
.[sci] | すべてのOPSのすべての依存関係をインストールします。 |
.[dist] | 分散データ処理の依存関係をインストールします。 (実験的) |
.[dev] | 貢献者としてパッケージを開発するための依存関係をインストールします。 |
.[tools] | 品質分類子などの専用ツールの依存関係をインストールします。 |
.[sandbox] | サンドボックスのすべての依存関係をインストールします。 |
pipを使用して最新リリースされたdata_juicerをインストールします。 pip install py-data-juicerdata_juicerの基本的なAPIと2つの基本的なツール(データ処理と分析)のみがこの方法で利用できます。カスタマイズ可能で完全な機能が必要な場合は、ソースからdata_juicerをインストールすることをお勧めします。data_juicerの最新の機能に従う場合は、ソースからインストールすることをお勧めします。dockerhubから事前に構築された画像を引くか:
docker pull datajuicer/data-juicer: < version_tag >または、次のコマンドを実行して、提供されたDockerFileを備えた最新のdata-juicerを含むDocker画像を構築します。
docker build -t datajuicer/data-juicer: < version_tag > . <version_tag>の形式はv0.2.0のようなもので、リリースバージョンタグと同じです。
import data_juicer as dj
print ( dj . __version__ )ビデオ関連のオペレーターを使用する前に、 FFMPEGは$ PATH環境変数を介してインストールし、アクセスできるようにする必要があります。
パッケージマネージャーを使用してFFMPEGをインストールし(debian/ubuntuに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注:コンピューターにローカルに保存されていないサードパーティモデルまたはリソースを含む一部のオペレーターの場合、これらのOPSは最初に対応するリソースを最初にディレクトリにダウンロードする必要があるため、最初のランニングは遅い場合があります。デフォルトのダウンロードキャッシュディレクトリは~/.cache/data_juicerです。シェル環境変数、 DATA_JUICER_CACHE_HOME別のディレクトリに設定してキャッシュの場所を変更します。また、 DATA_JUICER_MODELS_CACHEまたはDATA_JUICER_ASSETS_CACHE同じように変更することもできます。
注:サードパーティモデルを使用してオペレーターを使用する場合、Configurationファイルで対応するmem_required宣言する必要があります( config_all.yamlファイルの設定を参照できます)。ランタイム中に、データジューザーは、メモリの可用性に基づいてプロセス数とオペレーターモデルのメモリ要件を制御して、データ処理効率を向上させます。 CUDA環境で実行する場合、MEM__REQUEREDがオペレーターのために正しく宣言されていない場合、メモリの問題から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_video_deduplicatorおよびray_document_deduplicatorのrayが付いています。これらのオペレーターは、Redisインスタンスにも依存しています。そのため、Rayクラスターの起動に加えて、Redisインスタンスを事前にセットアップし、ConfigurationでRedisインスタンスのhostとportを提供する必要があります。また、ユーザーはRayを使用しないことを選択し、代わりにデータセットを分割してSluRMを使用してクラスターで実行することもできます。この場合、レイなしでデフォルトのデータジュイカーを使用してください。 Aliyun Pai-DLCは、Ray Framework、Slurm Frameworkなどをサポートしています。ユーザーは、DLCクラスターでRay Jobsと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を削除して、OPSのいくつかの引数を絞り込む必要があります。config_all.yaml 、opドキュメント、高度なビルドアップガイドを参照できます。python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=en基本的な構成形式と定義を以下に示します。
Data Sandbox Laboratory(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は、Alibaba CloudのTongyiの産業用LLMを含むさまざまなLLM製品および研究イニシアチブ、Dianjin for Reading AssistantのZhiwen、およびAi(PAI)のAlibaba Cloudのプラットフォームで使用されます。コラボレーションのためのあなたの経験、提案、議論をもっと楽しみにしています!
Data-Juicerの感謝と言及しています。ハグFace-Datasets、Bloom、Redpajama、Pile、Alpaca-Cot、Megatron-LM、Deepspeed、Arrow、Ray、Beam、LM-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 Sandbox:マルチモーダルデータモデルの共同開発のための包括的なスイート
データとマルチモーダルの大手言語モデルの相乗効果:共同開発の観点からの調査
IMGDIFF:Visionの大規模な言語モデルの対照的なデータ合成
効率的になったデータミキシング:言語モデルの事前削除のための二変量スケーリング法則
?インデックスに戻ります