4. www.verta.ai Confidential
About
• MIT CSAIL Ph.D.
• Thesis work: Infrastructure for
Model Management and Diagnosis
• Built first open-source model
management system: ModelDB
• Used by research labs,
Fortune-500s
• Founded Verta.ai to build ML Infra
!4
• Building the operations stack for production ML
• Model versioning, deployment & ops,
monitoring
• Built for data science; able to run at large scale
9. www.verta.ai Confidential!9
Challenge: Model Development is empirical & ad-hoc
Model 3
Accuracy: 76%
val udf1: (Int => Int) = (delayed..)
df.withColumn(“timesDelayed”, udf1)
RandomForestClassifier
10. www.verta.ai Confidential!10
Challenge: Model Development is empirical & ad-hoc
Model 5
Accuracy: 68%
val udf1: (Int => Int) = (delayed..)
df.withColumn(“timesDelayed”, udf1)
RandomForestClassifier
credit-default-clean.csv
val lrGrid = new ParamGridBuilder()
.addGrid(rf.maxDepth, Array(5, 10, 15))
.addGrid(rf.numTrees, Array(50, 100))
11. www.verta.ai Confidential!11
Challenge: Model Development is empirical & ad-hoc
Model 50
Accuracy: 82%
val udf1: (Int => Int) = (delayed..)
df.withColumn(“timesDelayed”, udf1)
RandomForestClassifier
credit-default-clean.csv
val lrGrid = new ParamGridBuilder()
.addGrid(rf.maxDepth, Array(5, 10, 15))
.addGrid(rf.numTrees, Array(50, 100))
val labelIndexer1 = new LabelIndexer()
val labelIndexer2 = new LabelIndexer()
…
val udf1: (Int => Int) = (delayed..)
val udf2: (String, Int) = …
df.withColumn(“timesDelayed”, udf1)
.withColumn(“percentPaid”, udf2)
.withColumn(“creditUsed”, udf3)
val scaler = new StandardScaler()
.setInputCol(“features”) …
13. www.verta.ai Confidential
Why is this a problem?
Scientific rigor
• “How do I or colleagues reproduce this work / this model?”
Production Safety
• “What version of the model is deployed?”
• “This model is breaking, we need to rollback”
Speed of Delivery
• With the right versioning, you can use CI/CD tools
Insurance
• “If Jane leaves the team, how do I preserve the knowledge?”
Productivity
• “What experiments have I run before?”
!13
14. www.verta.ai Confidential
Model Version Control
• Manage changes to models over time
• Audit, Change logs, Immutability
• Uniquely identify a model and the ability to return to it at any time
• Reproducibility, Governance
• Enable multiple data scientists to contribute and reuse
• Collaboration, Blame
!14
15. www.verta.ai Confidential
The software industry was built on the back of code versioning
• First code version system in 1972 for Linux
• ~5 generations of code versioning systems until now
!15
SCCS
RCS
Perforce
16. www.verta.ai Confidential
So what should we version?
!16
Source Code Binary Container
Software
Code + Other Ingredients
Weights /
Checkpoints
Container
Machine
Learning
21. www.verta.ai Confidential
Versioning vs. Metadata vs. Experiment Management
!21
Reproducibility
• Uniquely identify a model
• Track every change
• Go back in time
Analytics
• Metrics, Performance
• Organizational data
• Searching, sorting
Applications
Experiment
Management
Compliance
Metadata
Versioning
Collaboration
run.metrics[‘accuracy’] = 0.7
run.tags = [‘demo’, ‘nlp’]
run = run_experiment(code,
data, config, environment)
23. www.verta.ai Confidential
ModelDB
• ModelDB 1.0: Metadata focused
• What did it manage?
• Hyperparameters
• Metrics
• Pipeline metadata
• Tags
!23
• ModelDB 2.0: Versioning focused
• Git-like constructs for versioning
• Commits, Forks, Merges
• Metadata tracking as before
• APIs for applications
• Integration into MLOps
https://github.com/VertaAI/modeldb/
24. www.verta.ai Confidential
Why not Git?
• Git is fantastic for code
• Git doesn’t handle large files very well; DBMSs can’t be stored on Git
• Needs to be accessed as a library vs. command-line
• Git is distributed, each user must download the full repo history (1MM
models)
• All commits & branches (even unsuccessful ones) need to be preserved
!24
26. www.verta.ai Confidential
ModelDB 2.0: A “super repo”
!26
ModelDB Repo
Config RepoEnv Repo
Data Repo Code Repo
Delegate operations to
specialized versioning
systems
??
?? ??
Where systems don’t
exist, we have created
light-weight systems
27. www.verta.ai Confidential
ModelDB 2.0: A “super repo”
!27
ModelDB Repo
Config RepoEnv Repo
Data Repo Code Repo
Delegate operations to
specialized versioning
systems
Where systems don’t
exist, we have created
light-weight systems
Company
FeatureStore
36. www.verta.ai Confidential
Thanks!
• ModelDB 2.0 is constantly updated
• Use it (Star, fork, etc., let us know about use cases)
• Give us feedback, partner with us
• Contribute to it
• We love this stuff — hit us up if we can do a tech talk / help you get set up!
• If you are looking for a hosted version, drop us a line: modeldb@verta.ai
!36