treeverse/dvc

🦉 Data Versioning and ML Experiments

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 38 minutes ago
Added to GitGenius on June 4th, 2024
Created on March 4th, 2017
Open Issues & Pull Requests: 201 (+0)
Number of forks: 1,323
Total Stargazers: 15,837 (-1)
Total Subscribers: 131 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 33.9 days
Mean response time: 429.5 days
90th percentile: 1414.1 days
Tracked items: 456

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "awaiting response" is answered fastest, typically in about 9 hours, while "feature request" waits about 24 months. Only 3% of issues opened in the past year have been closed. Three people close 89% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 167
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 867 days
Stale 30+ days: 161
Stale 90+ days: 150

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 2
Events in 7 days: 2

Top labels

  • bug (898)
  • enhancement (606)
  • feature request (453)
  • p2-medium (447)
  • p3-nice-to-have (381)
  • awaiting response (363)
  • p1-important (361)
  • A: experiments (313)

Detailed Description

DVC, or Data Version Control, is a command-line tool and VS Code extension designed to enable reproducible machine learning projects by managing data, models, and experiments alongside code in Git repositories. The project is written in Python and addresses a core challenge in ML development: versioning large data and model files that are impractical to store directly in Git while maintaining reproducibility and collaboration capabilities.

The tool functions as a Git-like system for data artifacts, allowing users to store and share data and models in cloud storage or on-premise networks while keeping version metadata in Git. This approach separates the concerns of code versioning through Git and data versioning through DVC's caching and remote storage system. DVC supports multiple remote storage backends including AWS S3, Azure, Google Cloud Storage, and SSH-accessible network storage, making it flexible for different infrastructure setups.

A central feature of DVC is its pipeline system, which functions similarly to Makefiles for machine learning. Pipelines define computational graphs that connect code and data together, specifying input dependencies, commands to execute, and outputs to preserve. This allows users to version their data processing and model training workflows in Git while ensuring that only impacted pipeline steps re-run when changes occur, enabling fast iteration during development.

DVC's experiment tracking capabilities allow developers to prepare and run multiple experiments locally without requiring external servers. Experiments can be compared based on hyperparameters and metrics, with results visualized through plots. The system integrates with existing Git hosting platforms like GitHub and GitLab, enabling collaboration through standard Git workflows rather than proprietary experiment management infrastructure.

The repository shows significant ongoing activity and maintenance.

The project maintains broad platform support through multiple installation methods including pip, conda, snap, Homebrew, Chocolatey, and platform-specific packages for Linux, Windows, and macOS. Optional dependencies for specific cloud storage backends can be installed as needed, allowing users to customize their installation based on their infrastructure requirements.

DVC's integration with VS Code provides a graphical interface for experiment tracking and data management directly within the IDE, with additional features planned for future releases. The tool has attracted contributions from developers across major open-source projects, as evidenced by GitGenius linking this repository to microsoft/vscode, microsoft/typescript, and rust-lang/rust through overlapping contributor networks, suggesting adoption and interest from experienced software engineers working on large-scale projects.