Starting with outlining the history of conventional version control before diving into explaining QoDs (Quantitative Oriented Developers) and the unique problems their ML systems pose from an operations perspective (MLOps). With the only status quo solutions being proprietary in-house pipelines (exclusive to Uber, Google, Facebook) and manual tracking/fragile "glue" code for everyone else.
Datmo works to solve this issue by empowering QoDs in two ways: making MLOps manageable and simple (rather than completely abstracted away) as well as reducing the amount of glue code so to ensure more robust pipelines.
4. @TheNickWalsh +@TheNickWalsh +
Workshop Outline
1. Conventional version control
2. The curious case of QoD’s
3. How Datmo bridges the gap
4. Iris dataset model example
5. Reproduce + use the model
5. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
What is Version Control?
The management of changes to
documents, computer programs, large
web sites, and other collections of
information.
*AKA `Source Control`
“
8. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
You’ve probably heard of Git.
Git is a version control system for tracking
changes in computer files and
coordinating work on those files among
multiple people. It is primarily used
for source code management in software
development, but it can be used to keep
track of changes in any set of files.
12. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
For developers: For enterprises:
• Self-managed SMC servers
became a thing of the past
• Developers could leverage
industry best practices for their
own personal work
• Community of knowledge
built around a known standard
• Collaboration on Open Source
Software
• Advent of continuous
integration / deployment
• Removed need for external
code issue tracking tool
• Consolidation of code storage
and versioning tool
• Pull Requests, code review,
documentation through
ReadMe
13. @TheNickWalsh +@TheNickWalsh +
Workshop Outline
1. Conventional version control
2. The curious case of QoD’s
3. How Datmo bridges the gap
4. Iris dataset model example
5. Reproduce + use the model
17. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
ML systems have a special capacity for incurring
technical debt, because they have all of the
maintenance problems of traditional code plus an
additional set of ML-specific issues. This debt may be
difficult to detect because it exists at the system level.
“
(Sculley et. al, 2015)
18. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
Typical methods for paying down code level
technical debt are not sufficient to address
ML-specific technical debt at the system level.
“
(Sculley et. al, 2015)
23. @TheNickWalsh +@TheNickWalsh +
Workshop Outline
1. Conventional version control
2. The curious case of QoD’s
3. How Datmo bridges the gap
4. Iris dataset model example
5. Reproduce + use the model
24. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
What is Datmo?
Datmo is a CLI workflow tool for ML,
AI, and Data Science developers. It
helps with managing model version
control, easy environment handling,
and reproducing results through the
power of snapshots.
27. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
How will it help?
Datmo leverages containers to quickly
spin up perfectly reproducible
developer environments. It tracks this
environment, along with model
metadata inside of snapshots.
28. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
From a broad perspective:
Make ML Ops and workflows
manageable and simple, not
completely abstracted away.
Reduce the amount of glue code
so that people can have more
robust pipelines.
30. @TheNickWalsh +@TheNickWalsh +
Workshop Outline
1. Conventional version control
2. The curious case of QoD’s
3. How Datmo bridges the gap
4. Iris dataset model example
5. Reproduce + use the model
31. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
Datmo in today’s example
We’re going to use Datmo to show how we can
quickly iterate on our model and streamline our
workflow.
We’ll go through using snapshots for A/B testing,
saving our tasks, and enabling you all to reproduce
my results/make your own changes to the model.
37. @TheNickWalsh +@TheNickWalsh +
Workshop Outline
1. Conventional version control
2. The curious case of QoD’s
3. How Datmo bridges the gap
4. MNIST model example
5. Reproduce + use the model
40. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
Fetch the model from Datmo
$ datmo clone nmwalsh/workshop-iris-classification
Clone the Datmo Model:
$ cd workshop-iris-classification
Jump into this directory:
46. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
What just happened?
• Datmo cloned the model from the platform,
bringing all of the necessary resources to local.
• Datmo set your current code to the state of the
desired snapshot.
• Datmo built the environment inside of a
container.
• Datmo executed the task inside of the container,
and logged the results.
datmo clone
datmo snapshot
checkout
Command Result
datmo task run
47. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
Make Your Own Snapshot!
1. Change a hyperparameter
2. Save the file
3. $ datmo task run “python3 classifier.py”
4. $ datmo snapshot task --id “<id>” -m “<your message>”
Tip: To see your new snapshot, use $ datmo snapshot ls
48. @TheNickWalsh +@TheNickWalsh +@TheNickWalsh
1. Traditional Source Control isn’t enough for QoD
Key Takeaways
2. Think about ML Ops before you’re “in too deep”
3. In the same way GitHub revolutionized Software
Engineering, Datmo does the same for QoD’s