Data Version Control (DVC) is an open-source version control system specifically designed for machine learning projects, treating datasets, machine learning models, and their associated embeddings as first-class citizens alongside code. It leverages existing Git workflows to track the lineage of data artifacts, enabling reproducible experiments and collaborative model development by managing large files in dedicated remote storage.
Glossary
Data Version Control (DVC)

What is Data Version Control (DVC)?
A system for tracking changes to datasets, models, and embeddings, enabling reproducible machine learning pipelines.
DVC functions by creating lightweight metafiles (.dvc files) that are committed to Git, which point to the actual data stored in cloud or on-premises systems like S3, GCS, or a NAS. It automates pipeline construction, capturing dependencies between code, data, and parameters to ensure consistent results. This is foundational for vector data management, as it provides auditable lineage tracking for embedding generation and model iterations.
Core Capabilities of DVC
Data Version Control (DVC) is an open-source version control system for machine learning projects, enabling Git-like operations for large datasets, models, and experiments. It transforms ML workflows into reproducible, shareable pipelines.
Git for Data & Models
DVC extends Git to handle large files—datasets, ML models, and intermediate artifacts—without storing them in the Git repository. It creates small .dvc files that act as pointers to the actual data stored in remote storage (S3, GCS, Azure Blob, SSH). This allows teams to version massive binary files efficiently, using Git for tracking changes to the pointer files while the data resides in scalable, cost-effective object storage.
- Pointer Files: Lightweight metafiles committed to Git, containing checksums and storage paths.
- Immutable Storage: Data is content-addressable; changing a file creates a new checksum, preserving history.
- Checkout: Use
dvc checkoutwith a Git commit to restore the corresponding data state.
Reproducible Pipelines
DVC pipelines codify the sequence of data processing, training, and evaluation steps into a directed acyclic graph (DAG). Defined in dvc.yaml, these pipelines ensure that any stage is automatically rerun only if its dependencies (code or data) change, guaranteeing reproducibility.
- Declarative Syntax: Define stages with
cmd,deps,params, andouts. - Incremental Execution: DVC skips stages whose outputs are already consistent with current dependencies.
- Caching: All pipeline outputs are automatically cached, enabling fast iteration and recovery from failures.
- Example: A pipeline might include stages for
preprocess,train, andevaluate, with DVC managing the data flow between them.
Experiment Tracking & Metrics
DVC provides lightweight, code-centric experiment tracking. It captures parameters, metrics, and plots for each pipeline run, storing them in human-readable files (params.yaml, metrics.json, plots.json) that are versioned alongside code and data.
- Parameter Tracking: Log hyperparameters and configuration in YAML files.
- Metrics Comparison: Use
dvc metrics diffto compare performance metrics (e.g., accuracy, F1-score) across Git commits or branches. - Visual Plots: Generate and version visualization data (e.g., ROC curves, loss plots) for comparative analysis.
- Native Integration: Works seamlessly with MLflow, Weights & Biases, or other trackers, but provides a simple, file-based alternative.
Data Registry & Sharing
DVC enables the creation of a shared data registry—a centralized, versioned repository of datasets and models. Teams can pull specific versions of data artifacts into their local workspace without duplicating storage, fostering collaboration and consistency across environments.
- Remote Storage: Configure multiple remotes (e.g.,
s3://my-bucket/datasets) for backup and sharing. dvc get&dvc import: Commands to fetch data or models from external DVC projects or URLs, bringing them under version control.- Consistency: Ensures all team members and CI/CD systems use the exact same data version for a given Git commit.
Data Lineage & Provenance
DVC automatically tracks the full lineage of all artifacts. By examining the pipeline DAG and version history, you can answer critical questions: What data trained this model? What code version generated this dataset? This is essential for auditability, debugging, and regulatory compliance.
- End-to-End Traceability: Trace any model or result back to its source data and code commit.
dvc dag: Visualize the pipeline dependency graph.- Reproducibility Reports: Use
dvc reproto exactly recreate any past artifact, providing a deterministic audit trail.
Hybrid Workflow with MLOps Tools
DVC is designed to integrate with the broader MLOps ecosystem, not replace it. It handles the core data and pipeline versioning, while connecting to specialized tools for orchestration, serving, and monitoring.
- Orchestration: DVC pipelines can be executed by CI/CD systems (GitHub Actions, GitLab CI) or workflow orchestrators (Airflow, Kubeflow).
- Model Registry: DVC-managed model artifacts can be pushed to dedicated registries (MLflow Model Registry, Neptune) for staging and deployment.
- Infrastructure as Code: Pipeline definitions are portable and can be run on different compute targets (local, cloud VMs, Kubernetes) using DVC's stage templating or tools like CML (Continuous Machine Learning).
How DVC Works: Mechanism and Integration
Data Version Control (DVC) is an open-source version control system specifically designed for machine learning projects, enabling the tracking of datasets, models, and experiments with the same Git workflows used for source code.
DVC functions by replacing large files and directories (datasets, models, embeddings) with small, human-readable .dvc metafiles that are committed to Git. The actual file content is stored in a separate, configurable remote storage (S3, GCS, Azure Blob, SSH, etc.). This decoupling allows teams to version massive binary assets efficiently while using Git for collaboration, branching, and reviewing changes to the data pipeline.
For pipeline and experiment tracking, DVC uses dvc.yaml files to define reproducible stages (data prep, training, evaluation). It captures all dependencies, parameters, and outputs, creating a directed acyclic graph (DAG). Commands like dvc repro execute the pipeline, while dvc exp manages experiments, logging metrics and hyperparameters. This integrates with MLflow or Weights & Biases for enhanced tracking and visualization, forming a complete MLOps stack.
Common Use Cases for DVC
Data Version Control (DVC) is a system for tracking changes to datasets, models, and their associated embeddings, enabling reproducible machine learning pipelines and experiment tracking.
Reproducible Machine Learning Experiments
DVC tracks the exact code, data, and model versions used in each experiment, ensuring any result can be perfectly reproduced. It creates a directed acyclic graph (DAG) of dependencies, linking input datasets, preprocessing scripts, and training code to the final model and metrics. This eliminates the "it worked on my machine" problem by providing a complete, versioned snapshot of the experiment environment.
- Key Feature: DVC uses lightweight metafiles (
.dvcfiles) that point to versioned data in remote storage (S3, GCS, etc.), keeping Git repositories small. - Example: A team can checkout a Git commit hash and run
dvc reproto automatically rerun the pipeline with the exact data and code from that point in history.
Managing Large Datasets and Embeddings
DVC handles files and directories too large for Git, such as training corpora, image datasets, and generated vector embeddings. It versions this data externally in cost-effective object storage while maintaining a pointer in Git. This is critical for vector data management, where embedding files from models like OpenAI's text-embedding-3-large or open-source models can be hundreds of gigabytes.
- Workflow: After generating new embeddings via a re-embedding pipeline, use
dvc add embeddings/to version them. DVC uploads the changes to remote storage and creates a.dvcfile to track the new version. - Benefit: Enables A/B indexing by easily switching between different versions of an embedding dataset to test search quality.
Orchestrating End-to-End ML Pipelines
DVC defines multi-stage pipelines (dvc.yaml) that automate the ML workflow from data preparation to model deployment. Each stage's dependencies and outputs are explicitly declared, enabling incremental processing—only changed stages are rerun. This is essential for maintaining data freshness in vector databases.
- Typical Pipeline Stages:
prepare(data cleaning),featurize(embedding generation),train(model training),evaluate(metric calculation). - Integration: Pipelines can trigger incremental indexing in a vector database after a new batch of embeddings is generated, ensuring the search index is continuously updated.
Collaboration and Model Sharing
DVC facilitates team collaboration by providing a unified way to share code, data, and model artifacts. Team members can dvc pull the specific dataset or model version referenced in a Git branch. This creates a single source of truth and is foundational for evaluation-driven development.
- Process: A data scientist tags a successful model version in Git. Colleagues can
git checkoutthe tag anddvc pullto instantly sync the corresponding model binaries and validation datasets. - Use Case: Coordinating a backfill process across a distributed team, where everyone operates on the same version of a source dataset to regenerate embeddings.
Experiment Tracking and Metric Comparison
While DVC itself is not a full experiment tracker like MLflow, it integrates with them. DVC pipelines can output metrics files (e.g., metrics.json), which DVC tracks. The dvc exp and dvc plots commands allow users to run experiments (with parameters) and compare results across runs. This helps track vector drift by monitoring changes in embedding quality metrics over time.
- Output: DVC can track metrics like recall@k for a vector index or model accuracy, plotting how they change across different experiment branches.
- Lineage: Provides vector provenance, linking a drop in search performance directly to the specific dataset and model version that generated the embeddings.
Model Registry and Deployment
DVC can manage a simple model registry by using Git tags and branches alongside stored model artifacts. Specific model versions (e.g., v1.3.0) can be promoted through environments (staging, production) by pulling the corresponding data. This ensures the model served in production is perfectly linked to the code and data that created it.
- Deployment Pattern: A CI/CD pipeline executes
dvc pullfor the model artifact associated with a production Git tag, then loads it into a serving environment. - Governance: This practice supports enterprise AI governance by maintaining a clear, versioned audit trail for all deployed models.
Frequently Asked Questions
Data Version Control (DVC) is a foundational system for managing the lifecycle of datasets, models, and embeddings in machine learning workflows. These FAQs address its core mechanisms, integration with vector data management, and its role in ensuring reproducible AI.
Data Version Control (DVC) is an open-source version control system specifically designed for machine learning projects, enabling the tracking of datasets, models, and their dependencies alongside code. It works by creating lightweight metafiles (.dvc files) that store pointers and checksums to data artifacts in remote storage (like S3, GCS, or a shared server), while Git manages the code and these metafiles. This decoupling allows teams to version large binary files efficiently without bloating the Git repository, providing a unified history for both code and data.
Key mechanisms include:
- Reproducible Pipelines: DVC defines computational graphs (
dvc.yaml) that capture data processing, training, and evaluation steps as dependencies, ensuring identical results can be reproduced from the same code and data version. - Experiment Tracking: It logs parameters, metrics, and resulting artifacts for each pipeline run, enabling comparison of different model iterations.
- Data Registry: By treating datasets as versioned artifacts, DVC facilitates sharing and collaboration, allowing team members to
dvc pullspecific dataset versions to replicate an environment.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Data Version Control (DVC) operates within a broader ecosystem of tools and concepts essential for managing the machine learning lifecycle. Understanding these related terms is crucial for building reproducible and scalable ML systems.
Experiment Tracking
Experiment tracking is the systematic recording of parameters, code, data, metrics, and outputs for each machine learning experiment. DVC provides basic experiment tracking through its dvc exp commands, which log:
- Hyperparameters used for a training run
- Resulting metrics (accuracy, loss, etc.)
- Links to the specific data and code versions that produced the result This allows data scientists to compare runs, reproduce successful experiments, and understand what factors led to model performance changes. Dedicated tools like MLflow or Weights & Biases offer more extensive UI-based tracking and visualization.
Data Lineage
Data lineage refers to the complete lifecycle of data, including its origins, movements, characteristics, and transformations. In the context of DVC, lineage is automatically captured:
- DVC pipelines (
dvc.yaml) define the directed acyclic graph (DAG) of data processing stages. - Each stage records its dependencies (input data, code) and outputs.
- This creates an auditable trail from raw data through preprocessing, feature engineering, and model training to the final artifact. Lineage is critical for debugging, compliance, and understanding how a specific model version was constructed.
Continuous Training (CT)
Continuous Training (CT) is the automated process of retraining and redeploying ML models in response to new data or concept drift. DVC enables CT by:
- Detecting changes in the versioned training dataset.
- Triggering pipeline execution automatically when data dependencies change.
- Producing new, versioned model artifacts that are ready for evaluation and deployment. CT systems use DVC's data tracking to know when to retrain, ensuring models remain relevant as new data arrives, a key component of a Continuous Model Learning System.
Data Pipelines
A data pipeline is a sequence of automated data processing steps. DVC allows you to define, run, and version ML data pipelines declaratively using dvc.yaml. Key characteristics include:
- Dependency tracking: Each stage specifies its input files and code.
- Incremental execution: DVC only runs stages whose dependencies have changed.
- Reproducibility: The pipeline can be precisely recreated from any commit.
- Support for various languages: Stages can run Python, R, shell scripts, etc. This transforms ad-hoc scripts into a managed, reproducible workflow for creating features, training models, and evaluating results.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us