huggingface/datatrove
Freeing data processing from scripting madness by providing a set of platform-agnostic customizable pipeline processing blocks.
解決する課題
DataTroveは、大規模言語モデル(LLM)の学習データ準備に特化して、テキストデータの処理、フィルタリング、重複排除を大規模に行うように設計されています。低メモリ使用量を維持し、分散実行をサポートするプラットフォームに依存しないフレームワークを提供することで、膨大なワークロードの管理という課題に対処します。
仕組み
このライブラリは、データが一連の Document オブジェクト(テキスト、ID、メタデータを含む)として処理されるパイプラインベースのアーキテクチャを採用しています。ユーザーは、リーダー、抽出器、フィルタ、ライターなどの処理ブロックのリストとして pipeline を定義し、それが executor によって実行されます。
実行は、総ワークロードを tasks(データのシャード)に分割し、それらを workers(計算リソース)に割り当てることで並列化されます。このフレームワークは、異なる環境向けに複数のエグゼキュータをサポートしています:
- LocalPipelineExecutor: 単一マシンでのマルチプロセッシング用
- SlurmPipelineExecutor: ジョブ配列を使用するSlurmクラスター用
- RayPipelineExecutor: Rayクラスター用
- JobsPipelineExecutor: Hugging Face Jobs用
対象ユーザー
AIモデルの学習のために、非常に大規模なテキストデータセットの堅牢な処理とクリーニングを必要とする研究者やエンジニアを対象としています。
特徴
- プラットフォームに依存しない: 同じパイプラインを、変更なしにローカルまたはクラスターで実行できます。
- フォールトトレランス(耐障害性): マーカーファイルを通じて完了したタスクを追跡するため、障害発生後も中断した場所からジョブを再開できます。
- Fsspec統合: ローカル、リモート、およびクラウドファイルシステム(例:S3、Hugging Face Hub)をサポートしています。
- 構築済みブロック: テキスト抽出、トークン化、minhash重複排除、および合成データ生成のための、すぐに使えるツールが含まれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト