google/grain

Library for reading and processing ML training data.

What it solves

Grain provides a fast, flexible, and deterministic way to read and process data for training and evaluating machine learning models, specifically optimized for JAX models but compatible with other frameworks.

How it works

It uses a declarative Python API to define data processing pipelines. Users can chain operations such as shuffling, mapping, and batching to prepare their datasets for training steps.

Who it’s for

Developers and researchers working with JAX models who need a reliable and high-performance data loading pipeline, though it can be used with any ML framework.

Highlights

  • Deterministic processing: Ensures reproducibility in data loading.
  • Declarative API: Simplifies the definition of data processing steps.
  • JAX-optimized: Designed specifically for JAX but remains framework-agnostic.
  • CPU-based transformations: Processing is handled on the CPU by default.

Related

  • Project
  • Project
  • Project
  • Project
  • Project