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重複排除、および合成データ生成のための、すぐに使えるツールが含まれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト