• Stars
    star
    167
  • Rank 226,635 (Top 5 %)
  • Language
    Python
  • Created over 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Get started DVC project

DVC DVC-metrics

DVC Get Started

This is an auto-generated repository for use in DVC Get Started. It is a step-by-step quick introduction into basic DVC concepts.

The project is a natural language processing (NLP) binary classifier problem of predicting tags for a given StackOverflow question. For example, we want one classifier which can predict a post that is about the R language by tagging it R.

🐛 Please report any issues found in this project here - example-repos-dev.

Installation

Python 3.7+ is required to run code from this repo.

$ git clone https://github.com/iterative/example-get-started
$ cd example-get-started

Now let's install the requirements. But before we do that, we strongly recommend creating a virtual environment with a tool such as virtualenv:

$ virtualenv -p python3 .venv
$ source .venv/bin/activate
$ pip install -r src/requirements.txt

This instruction assumes that DVC is already installed, as it is frequently used as a global tool like Git. If DVC is not installed, see the DVC installation guide on how to install DVC.

This DVC project comes with a preconfigured DVC remote storage that holds raw data (input), intermediate, and final results that are produced. This is a read-only HTTP remote.

$ dvc remote list
storage https://remote.dvc.org/get-started

You can run dvc pull to download the data:

$ dvc pull

Running in your environment

Run dvc exp run to reproduce the pipeline and create a new experiment.

$ dvc exp run
Ran experiment(s): rapid-cane
Experiment results have been applied to your workspace.

If you'd like to test commands like dvc push, that require write access to the remote storage, the easiest way would be to set up a "local remote" on your file system:

This kind of remote is located in the local file system, but is external to the DVC project.

$ mkdir -p /tmp/dvc-storage
$ dvc remote add local /tmp/dvc-storage

You should now be able to run:

$ dvc push -r local

Existing stages

This project with the help of the Git tags reflects the sequence of actions that are run in the DVC get started guide. Feel free to checkout one of them and play with the DVC commands having the playground ready.

  • 0-git-init: Empty Git repository initialized.
  • 1-dvc-init: DVC has been initialized. .dvc/ with the cache directory created.
  • 2-track-data: Raw data file data.xml downloaded and tracked with DVC using dvc add. First .dvc file created.
  • 3-config-remote: Remote HTTP storage initialized. It's a shared read only storage that contains all data artifacts produced during next steps.
  • 4-import-data: Use dvc import to get the same data.xml from the DVC data registry.
  • 5-source-code: Source code downloaded and put into Git.
  • 6-prepare-stage: Create dvc.yaml and the first pipeline stage with dvc run. It transforms XML data into TSV.
  • 7-ml-pipeline: Feature extraction and train stages created. It takes data in TSV format and produces two .pkl files that contain serialized feature matrices. Train runs random forest classifier and creates the model.pkl file.
  • 8-evaluation: Evaluation stage. Runs the model on a test dataset to produce its performance AUC value. The result is dumped into a DVC metric file so that we can compare it with other experiments later.
  • 9-bigrams-model: Bigrams experiment, code has been modified to extract more features. We run dvc repro for the first time to illustrate how DVC can reuse cached files and detect changes along the computational graph, regenerating the model with the updated data.
  • 10-bigrams-experiment: Reproduce the evaluation stage with the bigrams based model.
  • 11-random-forest-experiments: Reproduce experiments to tune the random forest classifier parameters and select the best experiment.

There are three additional tags:

  • baseline-experiment: First end-to-end result that we have performance metric for.
  • bigrams-experiment: Second experiment (model trained using bigrams features).
  • random-forest-experiments: Best of additional experiments tuning random forest parameters.

These tags can be used to illustrate -a or -T options across different DVC commands.

Project structure

The data files, DVC files, and results change as stages are created one by one. After cloning and using dvc pull to download data, models, and plots tracked by DVC, the workspace should look like this:

$ tree
.
├── README.md
├── data                  # <-- Directory with raw and intermediate data
│   ├── data.xml          # <-- Initial XML StackOverflow dataset (raw data)
│   ├── data.xml.dvc      # <-- .dvc file - a placeholder/pointer to raw data
│   ├── features          # <-- Extracted feature matrices
│   │   ├── test.pkl
│   │   └── train.pkl
│   └── prepared          # <-- Processed dataset (split and TSV formatted)
│       ├── test.tsv
│       └── train.tsv
├── dvc.lock
├── dvc.yaml              # <-- DVC pipeline file
├── eval
│   ├── metrics.json      # <-- Binary classifier final metrics (e.g. AUC)
│   └── plots             
│       ├── images
│       │   └── importance.png    # <-- Feature importance plot
│       └── sklearn       # <-- Data points for ROC, confusion matrix
│           ├── cm
│           │   ├── test.json
│           │   └── train.json
│           ├── prc
│           │   ├── test.json
│           │   └── train.json
│           └── roc
│               ├── test.json
│               └── train.json
├── model.pkl             # <-- Trained model file
├── params.yaml           # <-- Parameters file
└── src                   # <-- Source code to run the pipeline stages
    ├── evaluate.py
    ├── featurization.py
    ├── prepare.py
    ├── requirements.txt  # <-- Python dependencies needed in the project
    └── train.py

More Repositories

1

dvc

🦉 ML Experiments and Data Management with Git
Python
13,294
star
2

cml

♾️ CML - Continuous Machine Learning | CI/CD for ML
JavaScript
3,996
star
3

datachain

AI-dataframe to enrich, transform and analyze data from cloud storages for ML training and LLM apps
Python
757
star
4

mlem

🐶 A tool to package, serve, and deploy any ML model on any platform. Archived to be resurrected one day🤞
Python
717
star
5

PyDrive2

Google Drive API Python wrapper library. Maintained fork of PyDrive.
Python
565
star
6

shtab

↔️ Automagic shell tab completion for Python CLI applications
Python
362
star
7

dvc.org

📖 DVC website and documentation
TypeScript
320
star
8

terraform-provider-iterative

☁️ Terraform plugin for machine learning workloads: spot instance recovery & auto-termination | AWS, GCP, Azure, Kubernetes
Go
288
star
9

vscode-dvc

Machine learning experiment tracking and data versioning with DVC extension for VS Code
TypeScript
187
star
10

dvclive

📈 Log and track ML metrics, parameters, models with Git and/or DVC
Python
161
star
11

gto

🏷️ Git Tag Ops. Turn your Git repository into Artifact Registry or Model Registry.
Python
138
star
12

awesome-iterative-projects

A list of projects relying on Iterative.AI tools to achieve awesomeness
64
star
13

dataset-registry

Dataset registry DVC project
60
star
14

magnetic-tiles-defect

Demo Computer Vision Project
Jupyter Notebook
59
star
15

example-get-started-experiments

Get started DVC project
Python
45
star
16

course-ds-base

Jupyter Notebook
44
star
17

demo-bank-customer-churn

Demo DVC project training a classification model on tabular data
Jupyter Notebook
38
star
18

aita_dataset

AITA dataset based on r/AmItheAsshole/
Python
33
star
19

setup-dvc

DVC GitHub action
JavaScript
30
star
20

ldb-resources

Python
27
star
21

mlem.ai

✨ Landing page for MLEM
TypeScript
27
star
22

example_cml

Python
27
star
23

workshop-uncool-mlops

Accompanies the uncool MLOps workshop
Python
26
star
24

setup-cml

GitHub Action for CML setup
TypeScript
24
star
25

scmrepo

SCM wrapper and fsspec filesystem for Git for use in DVC.
Python
21
star
26

cml_base_case

Python
21
star
27

example-repos-dev

Source code and generator scripts for example DVC projects
Python
21
star
28

cml_cloud_case

Python
20
star
29

dvc-bench

Benchmarks for DVC
Shell
20
star
30

cml_dvc_case

Python
18
star
31

dvc-data

DVC's data management subsystem
Python
18
star
32

intellij-dvc

DVC integration plugin for Intellij IDEs including PyCharm, IntelliJ IDEA and CLion
Java
17
star
33

studio-support

❓ DVC Studio Issues, Question, and Discussions
16
star
34

pytest-servers

Create temporary directories on the various filesystems for testing
Python
15
star
35

studio-selfhosted

This repository contains auxiliary installation code for self-hosting Studio
Shell
14
star
36

py-template

Hypermodern Python Cookiecutter
Python
14
star
37

VSCode-DVC-Workshop

Workshop about DVC VSCode Extension
Jupyter Notebook
14
star
38

example-dvc-experiments

DVC Get Started Project with a focus on `dvc experiment` features.
HTML
13
star
39

cml.dev

🔗 CML website and documentation
TypeScript
12
star
40

dvcyaml-schema

Schema for dvc.yaml
Python
10
star
41

dvc-objects

dvc objects - contains filesystem and object-db level abstractions to use in dvc and dvc-data
Python
10
star
42

example-versioning

Data sets and ML models versioning example from DVC get started
Python
9
star
43

dvc-streamlit-components

Streamlit components for DVC
Python
9
star
44

morefs

A collection of self-contained fsspec-based filesystems
Python
9
star
45

priority-list

⛏️ Make a dent in GitHub issue & PR backlogs across repositories
Python
8
star
46

cml_tensorboard_case

Python
8
star
47

dvc-s3

AWS S3 plugin for dvc
Python
8
star
48

llm-demo

Demo of using DVC with LangChain
Python
8
star
49

example-mlem-get-started

Get Started MLEM project
Python
7
star
50

dvc-task

Celery task queue used in DVC
Python
7
star
51

tpi

Python wrapper for terraform-provider-iterative
Python
7
star
52

example-gto

Get Started GTO Project
7
star
53

example-pokemon-classifier

Example project with a CNN to train a Pokémon type classifier.
Python
7
star
54

dvc-render

Library for rendering DVC plots
Python
6
star
55

dvc-studio-client

Client to interact with DVC Studio
Python
6
star
56

pytest-test-utils

Python
6
star
57

workshop-uncool-mlops-solution

Python
6
star
58

gatsby-theme-iterative

A Gatsby theme for shared logic between all the websites from iterative.ai
JavaScript
6
star
59

stale-model-example

This is the repo for the Preventing Stale Models in Production blog post.
Jupyter Notebook
6
star
60

gto-action

⚙️ GTO Github Action
Shell
6
star
61

evidently-dvc

Tutorial: Automate Data Validation and Model Monitoring Pipelines with DVC and Evidently
HTML
6
star
62

features

A collection of development container 'features' for machine learning and data science
Shell
6
star
63

course-checkpoints-project

This is the project we use for the DVC educational course to demonstrate how checkpoints work.
HTML
6
star
64

sqltrie

SQL-based prefix tree implementation inspired by pygtrie and python-diskcache
Python
5
star
65

dvc-checkpoints-mnist

Example of checkpoints in a DVC project training a simple convolutional neural net to classify MNIST data
Python
5
star
66

dvc-s3-repo

Maintain deb and rpm repositories on s3
Python
5
star
67

enhancement-proposals

5
star
68

dvc-gs

Google Storage plugin for dvc
Python
4
star
69

link-check

A Node-based tool to verify if links are alive. Built to be used anywhere!
TypeScript
4
star
70

dvc-snap

dvc snap package
Shell
4
star
71

sagemaker-pipeline

An example project, showcasing a DVC pipeline using SageMaker SDK for data preparation and model training
Python
4
star
72

cml-runner-base-case

Python
4
star
73

cml-playground

Shell
4
star
74

pretrained-model-demo

Python
4
star
75

homebrew-dvc

Automatic updates for dvc homebrew package
Shell
4
star
76

vscode-dvc-demo

Python
3
star
77

example_model_export_cml

Example on how to use CML to provision an AWS EC2 runner, train a model, and export the resulting model.
Python
3
star
78

dvc-azure

Azure plugin for dvc
Python
3
star
79

cnn_tutorial

CNN tutorial for DVC
Python
3
star
80

telemetry-python

Common library to send usage telemetry
Python
3
star
81

dvc-learn-project

This is the project used in the DVC Learn Meetups and videos.
HTML
3
star
82

checkpoints-tutorial

This is the code used in the checkpoints tutorial.
Python
3
star
83

ldb

Python
3
star
84

chocolatey-dvc

Chocolatey package for dvc
PowerShell
3
star
85

blog-tpi-jupyter

Terraform Provider Iterative + Jupyter + TensorBoard + AWS/Azure/GCP/K8s
Jupyter Notebook
3
star
86

dvc-gdrive

Google Drive plugin for DVC
Python
2
star
87

link-check.action

A GitHub Action driver for link-check, deployed via submodules.
JavaScript
2
star
88

katacoda-scenarios

Interactive Katacoda Scenarios
Shell
2
star
89

dvc-exe

Private repository for building and signing dvc for windows
Inno Setup
2
star
90

jameson-metrics

Metrics examples
Python
2
star
91

example-mlem

Example of using MLEM with DVC Pipeline
Python
2
star
92

example-get-started-s3

Example get started (metrics and plots in S3)
Python
2
star
93

dvc_action_example

Python
2
star
94

dvc-oss

Alibaba OSS plugin for dvc
Python
2
star
95

dvc-test

Integration tests for dvc
Python
2
star
96

reflink-copy

Python wrapper for `reflink_copy` Rust library
Python
2
star
97

vscode-dvc-pack

2
star
98

dvclive-exp-tracking

Example repo to show how to start tracking experiments in DVC by adding DVCLive to your Python code.
Jupyter Notebook
2
star
99

cookiecutter-dvc-plugin

A Cookiecutter template for dvc plugins
Python
2
star
100

testing-ldb

Aug 10th Hackathon
Python
2
star