google/seqio

Task-based datasets, preprocessing, and evaluation for sequence models.

解决的问题

SeqIO 是一个专为序列到序列模型设计的库,旨在简化顺序数据的处理。它提供了一种统一的方式来处理基于任务的数据集、预处理流水线和评估指标,减少了在不同框架中为 T5 及其他序列模型准备数据所需的样板代码。

工作原理

SeqIO 使用 tf.data.Dataset 创建可扩展的数据流水线,但设计为与框架无关,允许将数据集转换为 numpy 迭代器,以便在 JAX 或 PyTorch 中使用。核心抽象是 Task,它将原始数据源、顺序预处理步骤、用于分词的词汇表、用于评估的后处理程序以及特定指标组合在一起。

用户可以定义多个 Task 对象,并将它们组合成一个 Mixture,以指定的速率从不同任务中采样示例。流水线遵循以下流程:定义任务/混合体 → 应用预处理器 → 通过特征进行分词 → 生成最终数据集。

适用人群

适用于需要以可扩展、灵活的方式管理多任务数据集和评估流水线的序列模型(文本、音频或序列表示的图像)研究人员和开发者。

主要亮点

  • 框架无关:基于 TensorFlow 的数据 API,但可通过 numpy 迭代器与 JAX 和 PyTorch 兼容。
  • 任务抽象:将数据加载、预处理、分词和评估整合到一个对象中。
  • 灵活混合:支持 Mixture 注册表,可自定义采样率组合多个任务。
  • 可扩展流水线:利用 tf.data.Dataset 实现高效、并行化的数据加载和预处理。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目