このプロジェクトについて
Hugging Face Datasetsは、公開データセットのための一行データローダーと、効率的で再現可能なデータ前処理という2つの主要な機能に焦点を当てた軽量Pythonライブラリです。
データの読み込み
- `load_dataset()`は、Hugging Face Hubまたはローカルファイルからデータセットを取得します。Hubには、画像、音声、テキスト(数百の言語と方言)、3D医用画像、動画、AIエージェントのトレースをカバーする、大規模で成長を続けるデータセットコレクションがホストされています。
- サポートされるローカル形式には、CSV、JSON、JSONL、Parquet、Arrow、HDF5、XML、プレーンテキスト、PNG、JPEG、WAV、MP3、PDF、NIfTIが含まれます。
- データセットは、辞書、リスト、Pandas DataFrame、またはジェネレータなどのPythonオブジェクトから構築することもできます。
データの処理
- `dataset.map()`は、バッチ処理とマルチプロセッシング(`num_proc`)による並列高速化を備え、ユーザー定義関数をサンプルに適用します。
- 結果はキャッシュされるため、繰り返しの処理ステップが再計算されることはありません。
- Apache Arrowバックエンドは、ゼロコピーでメモリマップされたストレージを提供し、データセットが利用可能なRAMを超えることを可能にします。
- ストリーミングモード(`streaming=True`)は、データを事前にダウンロードせずにその場で反復処理し、非常に大規模またはディスク制約のあるワークロードに役立ちます。
相互運用性
- NumPy、Pandas、Polars、Arrow、PyTorch、TensorFlow、JAX、Sparkとのネイティブ変換。
- 類似性検索のための組み込みのFAISSおよびElasticsearchインデックスサポート。
- `Json()`フィーチャータイプは、柔軟な構造化データを処理します。
主要クラス
- `Dataset`:インメモリまたはメモリマップ型で、インデックス付け、スライス、ランダムアクセス、キャッシュをサポートします。
- `IterableDataset`:アウトオブコア処理のための遅延かつストリーム可能。
- 両方とも、トレイン/テスト/バリデーションなどのマルチスプリットデータセット用に`DatasetDict` / `IterableDatasetDict`でラップされます。
インストールと拡張機能
- pip(`pip install datasets`)またはconda(`conda install -c huggingface -c conda-forge datasets`)でインストール可能。
- オプションの拡張機能は、オーディオ、ビジョン、PDF/NIfTI、およびPyTorch、TensorFlow、JAXのフレームワーク統合をカバーします。
コミュニティと再現性
- プロジェクトでは、Web、Python、またはGitを介してHubでデータセットをアップロードおよび共有する方法を文書化しています。
- ユーザーは、再現性のためにデータセットのリビジョンを固定することが推奨されています。
- 貢献は歓迎されており、問題、プルリクエスト、コードスタイル(Ruff)、テスト、ドキュメントをカバーする貢献ガイドがあります。
- このライブラリは、EMNLP 2021システムデモンストレーションペーパーで説明されており、引用用にバージョン管理されたZenodo DOIがあります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.