liveBook · Manning

Dataset management service

As explained in Designing Deep Learning Systems: A guide for software engineers

A system service that stores, organizes, governs, and provides access to machine learning datasets.

A dataset management service is a specialized data store between raw data sources and model training. It ingests and organizes raw data, then returns training-ready datasets in a consistent format so training applications can focus on algorithm development. Its central operational purpose is to decouple data collection from data consumption while retaining the exact data used by a training run. section 2.1 section 2.1.1

Figure 2.1 A dataset management service is a specialized data store; it ingests data into its internal storage with its own raw data format. During training, it converts the raw data into training data in a consistent data format that favors model training.

The service owns an internal raw-data representation and converts it into a stable format designed for training consumers. section 2.1

This separation matters most when several teams and projects share a platform. Without a data contract, every upstream format change can disrupt downstream preprocessing or training. Strongly typed schemas at both boundaries let data development and model development iterate independently. Dataset versions also make a prior model run reproducible: a version identifier retrieves the same training examples again, and data differences between versions can support troubleshooting. section 2.1.1 section 2.1.2

A practical service design targets five properties:

  • Reproducibility: return the same training examples for a dataset version, ideally with data-diff support. section 2.1.2
  • A unified API: use the same upload and fetch interface across structured and unstructured dataset types while hiding storage details. section 2.1.2
  • Strong schemas: define contracts for raw ingestion and training-data output for each typed dataset. section 2.2.8
  • Consistent scaling behavior: pass data URLs rather than dataset contents so API behavior remains stable as datasets grow. section 2.2.8
  • Persistence: make creation and update commits, plus prepared training snapshots, immutable and durable. section 2.2.8

A reference implementation has three layers: data ingestion, internal dataset storage, and training-dataset fetching. Creation and updates produce commits with metadata such as tags and statistics. Preparing a training dataset assembles committed data into a versioned snapshot, identified by a version hash; fetching reports readiness and returns paths to the prepared parts. A schema-free GENERIC dataset can support early prototyping, then be promoted to a strongly typed format once requirements stabilize. section 2.2.1 section 2.4

Local language-intent dataset workflow

Run MinIO and the service locally, upload a CSV, then call CreateDataset for a LANGUAGE_INTENT dataset. Call UpdateDataset to append training data with a commit message and category tag. PrepareTrainingDataset produces a version hash over the commits; FetchTrainingDataset polls until READY and returns object-storage paths for examples and labels. The minimal sample keeps metadata in memory, so restarting it loses datasets; production storage must replace that shortcut. section 2.2.1 section 2.2.8

Choose the component deliberately rather than treating ETL as sufficient. ETL pipelines process data, but dataset management governs the evolving training-data interface and its history. Build a tailored component or adopt tooling according to requirements; cited approaches include Delta Lake with Petastorm for Spark-based deep learning and Pachyderm for Kubernetes-based, Git-style data versioning and pipelines. Keep the service simple enough that data scientists can use it without learning underlying platform details. section 2.0 section 1.2.4 section 2.4

During research and prototyping, notebooks invoke the service to track training datasets while experimentation iterates. For stronger experimental lineage, pair dataset tracking with source control and a metadata store that associates metrics with the training dataset and code. In production workflows, the service remains responsible for training data while workflow, training, metadata, and serving components take on their separate roles. section 10.0 section 10.1.3

How Designing Deep Learning Systems: A guide for software engineers covers it

How deep it goes
Works through design principles, a three-layer reference implementation, gRPC operations, commits, and versioned training snapshots.
Examples
Demonstrates a local Java 11 service that creates, updates, prepares, and fetches a language-intent dataset through gRPC.
What it assumes
Introduces dataset management from data-driven project needs while assuming familiarity with data pipelines and model training workflows.
What you can do after
Build it from scratch or adapt a service that versions datasets, exposes stable APIs, and prepares reproducible training snapshots.
How it connects
Connects dataset versioning and strongly typed schemas with ETL, object storage, model training, source control, and metadata stores.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Designing Deep Learning Systems: A guide for software engineers. The section links point to the parts of the book it draws on.