google/seqio
Task-based datasets, preprocessing, and evaluation for sequence models.
何を解決するか
SeqIO は、シーケンス対シーケンスモデル向けの順序データ処理を簡素化するためのライブラリです。タスクベースのデータセット、前処理パイプライン、評価メトリクスを統一された方法で扱うことを可能にし、T5 や他のシーケンスモデルを異なるフレームワークで使用する際のデータ準備に必要なボイラープレートコードを削減します。
動作方法
SeqIO は tf.data.Dataset を使用してスケーラブルなデータパイプラインを構築しますが、フレームワークに依存しない設計となっており、JAX や PyTorch で使用可能な numpy イテレータにデータセットを変換できます。コア抽象化は Task で、生データソース、順次的な前処理ステップ、トークン化用の語彙、評価用のポストプロセッサ、および特定のメトリクスを1つのオブジェクトにまとめています。
ユーザーは複数の Task オブジェクトを定義し、Mixture に結合して、指定された割合で異なるタスクからサンプルを抽出できます。パイプラインの流れは以下の通りです:タスク/ミクスチャーの定義 → 前処理の適用 → フィーチャーによるトークン化 → 最終的なデータセットの生成。
対象ユーザー
テキスト、音声、またはシーケンス表現された画像を扱うシーケンスモデルの研究者や開発者で、マルチタスクデータセットや評価パイプラインをスケーラブルかつ柔軟に管理したい方を対象としています。
特徴
- フレームワーク非依存:TensorFlow のデータ API を基盤としていますが、numpy イテレータを介して JAX および PyTorch と互換性があります。
- タスク抽象化:データ読み込み、前処理、トークン化、評価を1つのオブジェクトに統合しています。
- 柔軟なミキシング:カスタムサンプリングレートで複数のタスクを組み合わせる
Mixtureレジストリをサポートしています。 - スケーラブルなパイプライン:効率的で並列化されたデータ読み込みと前処理を
tf.data.Datasetで実現しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト