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 で実現しています。

関連

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