google/seqio

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

해결하는 문제

SeqIO는 시퀀스-투-시퀀스 모델을 위한 순차 데이터 처리를 간소화하기 위해 설계된 라이브러리입니다. 태스크 기반 데이터셋, 전처리 파이프라인, 평가 메트릭을 통합된 방식으로 처리하여 T5 및 기타 시퀀스 모델을 다양한 프레임워크에서 사용할 때 데이터 준비에 필요한 반복 코드를 줄입니다.

작동 방식

SeqIO는 tf.data.Dataset를 사용하여 확장 가능한 데이터 파이프라인을 생성하지만, 프레임워크에 독립적이도록 설계되어 JAX 또는 PyTorch에서 사용 가능한 numpy 반복자로 데이터셋을 변환할 수 있습니다. 핵심 추상화는 Task로, 원시 데이터 소스, 순차적 전처리 단계, 토큰화를 위한 어휘, 평가를 위한 포스트프로세서, 그리고 특정 메트릭을 하나의 객체에 묶어줍니다.

사용자는 여러 Task 객체를 정의하고, Mixture에 결합하여 지정된 비율로 다양한 태스크에서 예제를 샘플링할 수 있습니다. 파이프라인의 흐름은 다음과 같습니다: 태스크/믹스처 정의 → 전처리 적용 → 피처를 통한 토큰화 → 최종 데이터셋 생성.

대상 사용자

텍스트, 오디오, 또는 시퀀스로 표현된 이미지를 다루는 시퀀스 모델을 사용하는 연구자 및 개발자로, 다중 태스크 데이터셋과 평가 파이프라인을 확장 가능하고 유연하게 관리하고자 하는 분들을 대상으로 합니다.

주요 특징

  • 프레임워크 독립성: TensorFlow의 데이터 API를 기반으로 하지만, numpy 반복자를 통해 JAX 및 PyTorch와 호환됩니다.
  • 태스크 추상화: 데이터 로딩, 전처리, 토큰화, 평가를 하나의 객체로 통합합니다.
  • 유연한 믹싱: 사용자 정의 샘플링 비율로 여러 태스크를 결합하는 Mixture 레지스트리 지원.
  • 확장 가능한 파이프라인: 효율적이고 병렬화된 데이터 로딩과 전처리를 위해 tf.data.Dataset를 활용합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트