Sarghaby Araghatta
Home / Knowledge Base / Dataset & version management
Data & pipelines · AI Engineering

Dataset & version management

Tracking, versioning, and lineage of datasets so any model or eval result is reproducible and auditable — which rows, which cleaning, which split trained this checkpoint.

createstagsproducesenforcesrecordsDatasetVersioning ToolContent-AddressedSnapshotsTraining RunRecordsModelCheckpointLineageTracking
Dataset version management flow

How it works

Dataset and version management relies on content-addressed snapshots, which are essentially unique identifiers generated from the data itself. This means every version of a dataset can be traced back to its original content, ensuring that you can always reproduce results. Tools like DVC (Data Version Control) and Git LFS (Large File Storage) work together to manage large files by storing pointers to these snapshots alongside your code. When you train a model, it records the exact hash of the dataset it used, so you can always retrieve that specific version later. For more complex data environments, systems like lakeFS, Delta Lake, and Iceberg provide branching and commit semantics over object stores, allowing data scientists to experiment with different dataset versions without losing track of the lineage.

When you tag a dataset version, you create a clear reference point that training runs can use to ensure reproducibility. For instance, if you have a dataset that has undergone several cleaning steps and splits, tagging it allows you to pinpoint exactly which version was used for a specific training run. This is crucial for maintaining the integrity of your experiments, as it allows you to audit and verify results by checking the exact dataset configuration that led to a particular model checkpoint. The ability to track changes and maintain a history of dataset modifications is what makes this process reliable and trustworthy.

In addition to versioning, these tools often integrate with model training frameworks and CI/CD pipelines, creating a cohesive workflow. For example, when using Hugging Face Datasets or Weights & Biases (W&B) Artifacts, you can tie dataset versions to specific model training runs. This means that if you encounter issues with a model's performance, you can trace back through the dataset versions to identify potential problems, whether they stem from data quality issues or changes in the dataset itself.

  • Use DVC for file-based workflows.
  • Choose lakeFS for lakehouse data.
  • Tag dataset versions during training.
  • Track lineage for compliance.
  • Rollback to previous dataset versions.

The software-engineering analogue

In software engineering, we often rely on Git for version control, which allows us to track changes in code over time. Just as we use semantic versioning to manage releases and updates in software, dataset version management serves a similar purpose for data. The key difference here is scale: datasets can be enormous, often reaching terabytes in size, and may contain sensitive information like personally identifiable information (PII). This require a different approach where we focus on versioning pointers or hashes rather than just diffs between versions, ensuring that we can maintain data lineage and enforce retention policies effectively.

While Git allows for easy branching and merging of code, managing datasets requires more strong strategies. For instance, when working with large datasets, you can't simply track changes as you would with code. Instead, you need systems that can handle the complexities of data management, such as enforcing access controls and ensuring compliance with regulations. This is where tools like DVC and lakeFS come into play, providing the necessary infrastructure to manage data alongside code while addressing the unique challenges posed by large-scale datasets.

Why not the obvious alternative

Many newcomers might think that simply storing data in a cloud service like S3 is sufficient for versioning. However, this approach is fundamentally flawed because it doesn't provide true version control. If someone overwrites a file in S3, the previous version is lost, making it impossible to reproduce models trained on that data. This leads to issues such as drifting evaluation metrics and an inability to answer critical questions about data lineage, like whether a deleted user's data was included in training sets. Without proper versioning, you risk losing the ability to audit your models and ensure compliance with data regulations.

The root cause of this failure lies in the lack of a systematic approach to managing dataset versions. Without version control, you cannot guarantee that the data used for training is the same as the data used for evaluation, leading to inconsistencies and unreliable results. This is particularly problematic in regulated industries where you must demonstrate that your models are built on compliant and traceable datasets. Proper dataset and version management addresses these issues by enforcing lineage and providing a clear audit trail for every dataset used in model training and evaluation.

When to use which

When deciding which tool to use for dataset version management, consider the nature of your workflow. If you're working with file-based datasets that are closely tied to your code, DVC and Git LFS are excellent choices. They provide a straightforward way to version large files while keeping everything in sync with your codebase. On the other hand, if you're dealing with large lakehouse-scale data that requires branching and time-travel capabilities, tools like lakeFS, Delta Lake, or Iceberg are more suitable. These tools allow you to manage complex data workflows and maintain a clear history of changes.

Artifact trackers like Weights & Biases or MLflow are ideal when you want to connect specific dataset versions to individual training runs and models. They help you maintain a clear relationship between the data and the models, ensuring that you can reproduce results and trace back any issues to their source. The choice of tool ultimately depends on your specific needs, the size of your datasets, and the complexity of your data workflows, so weigh these factors carefully when making your decision.

Beware of overwrites Overwriting datasets without versioning can lead to unreproducible results and compliance issues.

In production: when it breaks

The scenario Dataset versioning issues led to a 15% drop in accuracy.
Check dataset versioningVersion mismatch in modeltrainingIncorrect data cleaningstepsSplit ratio not followedUpdate model with correctversionReapply correct cleaningstepsAdjust split ratios
Debugging dataset versioning failure

Why it happens. This discrepancy often occurs due to dataset drift, where the data used for training has changed over time, or due to improper versioning of the dataset, leading to the model being trained on an outdated or incorrect dataset version. If the dataset is not properly tracked, it can lead to inconsistencies between the training and evaluation phases, resulting in unexpected model performance.

  • Check the version of the dataset used for training the model.
  • Compare the current dataset against the version used for the previous successful training.
  • Log the data distribution statistics (mean, variance) for both datasets.
The call The fix involves implementing strict version control for datasets, ensuring that every training run uses the correct dataset version. The tradeoff is the overhead of maintaining this versioning system, but it increases reproducibility and trust in model results. Monitor the accuracy and data distribution metrics to catch any drift early.

What it delivers

Effective dataset and version management delivers reproducibility, auditability, and the ability to roll back to previous states. This capability transforms your experiments from mere trials into reliable processes. By ensuring that you can trace every dataset version used in your models, you gain confidence in your results and can easily address any issues that arise. This not only enhances the quality of your work but also builds trust with stakeholders, as you can provide clear evidence of how and why decisions were made based on specific data.