/vscode-dvc

Machine learning experiment tracking and data versioning with DVC extension for VS Code

Primary LanguageTypeScriptApache License 2.0Apache-2.0

banner

DVC Extension for Visual Studio Code

Version Installs Downloads Ratings

Continuous Integration Maintainability Test Coverage

Quick startWhat you getCommandsConfigurationRoadmapDebuggingContributingTelemetry

Run, compare, visualize, and track machine learning experiments right in VS Code. This extension uses DVC, an open-source data versioning and ML experiment management tool. No additional services or databases are required.

Extension Overview

  • Experiment tracking: Record training data, parameters, and metrics on top of Git. Navigate your experiments, compare their results, and find the best ML models.
  • Visualization: Plot performance data in a customizable dashboard including one or more overlaid experiments.
  • Live tracking: Capture and see metrics changing in real time.
  • Reproducibility: Make sure that anyone can recover or confirm previous experiments, and run new experiments based on their results.
  • Data Management: Handle and version large datasets, files, and models effectively right from VS Code.

Note: We are in public beta and welcome early adopter feedback!
Feel free to reach out via Discord or open issues in GitHub.

Why prefer this extension?

  • Enjoy the best developer experience with the first experiment tracking interface for an IDE.
  • No external servers, databases, subscriptions, etc. Data stays fully under your control and your existing Git hosting is used to share and collaborate.
  • Go beyond a simple metrics dashboard with complete ML experiments that include metrics, code, and data. Powered by DVC experiment versioning.
  • Implement data versioning on top of your favorite cloud storage, such as Amazon S3, Azure Blob Storage, Google Cloud Storage, NFS, etc.

Quick start

  1. Install DVC on your system.
  2. Install this extension in VS Code.
  3. Follow the Get Started walkthrough!

💡 Feel free to try our example DVC project first! Opening it with Github Codespaces will include this extension automatically.

Initial Get Started page

Learn more about DVC (Data Version Control)

See the DVC documentation to Get Started with Experiment Versioning or Data Management. For deeper learning, try our free course! More resources

What you get

This extension augments VS Code in the following ways:

  • Adds a brand-new new DVC View (DVC logo icon in the Activity Bar) with panels to visualize and manage DVC Experiments.
  • Provides special Editors to manage Experiments and display Plots in IDE Tabs.
  • Adds a DVC Tracked panel to the Explorer view. This shows a tree of the data files and directories tracked by DVC, including their state, and options to synchronize them (from/to remote storage).
  • Adds a DVC panel to the Source Control view to display the workspace status. You can restore or reset project versions (based on the current Git HEAD commit) as well as manage new and existing data from here.
  • Registers several Commands in the Command Palette (see next section).
  • Includes a DVC channel for the Output panel (useful for debugging).

Useful commands

Open the Command Palette (F1 or ⇧⌃P on Windows/Linux or ⇧⌘P on macOS) and type in one of the following commands:

Command Description
DVC: Get Started Open the extension's walkthrough. Which details all of the current features and provides links to extra learning resources.
View: Show DVC Open the extension's view container.
DVC: Setup The Workspace Activate the extension's workspace setup wizard.
DVC: Show Experiments Show an interactive version of DVC's exp show command.
DVC: Show Plots Show an interactive version of DVC's plots diff command.

Learn more about the extension's commands.

Configuration

These are the VS Code settings available for the Extension:

Option Description
dvc.dvcPath Path or shell command to the DVC binary. Required unless Microsoft's Python extension is installed and the dvc package found in its environment.
dvc.pythonPath Path to the desired Python interpreter to use with DVC. Required when using a virtual environment.
dvc.doNotShowWalkthroughAfterInstall Do not prompt to show the Get Started page after installing. Useful for pre-configured development environments
dvc.doNotRecommendRedHatExtension Do not prompt to install the Red Hat YAML extension, which helps with DVC YAML schema validation (dvc.yaml and .dvc files).
dvc.doNotShowCliUnavailable Do not warn when the workspace contains a DVC project but the DVC binary is unavailable.
dvc.doNotShowUnableToFilter Do not warn before disabling auto-apply filters when these would result in too many experiments being selected.

Note that the Setup The Workspace command helps you set up the basic ones at the Workspace level (saved to .vscode/setting.json).

Developer roadmap

We are working on increasing the quantity and quality of DVC features supported by this GUI. Remember that you can always use dvc commands from the Integrated Terminal!

  • DVC metafile editor (2022 Q3) Wouldn't it be cool to manage stages, parameters, metrics, data and model paths, and other metadata in-place inside corresponding DVC metafiles? E.g. dvc.yaml and .dvc files, param or metrics files, even dvc.lock

  • More and better plots! (2022 Q3)
    DVC Experiment comparison is easier with interactive parallel coordinate plots, which can be generated from command line with dvc exp show --pcp. We plan to incorporate that and brand new IDE-exclusive plots! (TBD)

  • Performance improvements (2022 Q3)
    Our extension will be faster and more reliable with better internal usage of DVC and more efficient data management.

  • ML pipelines (2022 Q4)
    The extension examines dvc.yaml files to identify tracked data and changes, but it does not currently provide a graphic interface to write or modify stages.

  • Remote execution (2022 Q4)
    DVC Experiments can be run in remote environments. We intend to integrate this with VS Code's robust remote development features.

  • Data registry (2022 Q4)
    DVC data registries can help you centralize and secure data management across all your ML projects. You'll be able to construct and handle them right from the IDE.

  • More tools from Iterative.ai (2023)
    Expect this extension to become a full-fledged suite for the ecosystem of tools from Iterative, such as CML, MLEM + GTO model registry management, and future surprises! (TBD)

Debugging

The DVC Extension

Please see the DVC channel in the IDE's Output panel to see the underlying DVC commands being run, as well as their error output. Feel free to share this with us via Discord or use it to report issues in GitHub.

Your DVC project

Due to the way DVC pipelines run scripts of any language from the command line, users must debug pipeline scripts (e.g. train.py) standalone in whatever way debuggers are run on the base language - this is standard for debugging DVC pipelines, and most scripts are capable of running outside of DVC.

Contributing

See the development and contributing guidelines in CONTRIBUTING.md.

GitHub Contributors Image

Data and telemetry

The DVC Extension for Visual Studio Code collects usage data and sends it to Azure to help improve our products and services. This extension respects the telemetry.enableTelemetry setting which you can learn more about at https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting.