About vetiver

MLOps for R and Python

What is MLOps?

Machine learning operations, or MLOps, is a set of practices to deploy and maintain machine learning models in production reliably and efficiently.

What tasks are involved in MLOps practices?

Some MLOps tasks are data versioning, tuning/training models, experiment tracking, model versioning, model deployment, model monitoring, and workflow orchestration. The vetiver framework focuses on the tasks of versioning, deploying, and monitoring an ML model.

How can I tell if I am on the right track while building an MLOps system?

You can use the rubric in “The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction” by Breck et al to understand how ready a machine learning system is for production. This rubric outlines 28 specific tests plus a grading scale to score how robust a deployment strategy is.

How does vetiver compare to other MLOps tools?

😌 vetiver is a focused framework for data practitioners

The vetiver framework does not aim to be an all-in-one solution for all parts of the MLOps life cycle. Instead, vetiver provides tooling to version, deploy, and monitor ML models. This focus allows vetiver to provide a better user experience and composability as organizations mature in their MLOps needs. Tools like MLFlow and managed cloud offerings like SageMaker and AzureML are designed to be comprehensive; this can be the right choice in some situations but comes with usability challenges and a steeper learning curve.

The vetiver framework is built to be used by practitioners like data scientists and data analysts, the people who develop models. We believe that the person who develops a model is the right person to operationalize that model. This is in contrast to MLFlow, which is most comfortable for a software engineering persona (rather than data analysis persona).

🐍 vetiver supports both Python and R

Existing tools for MLOps tasks overwhelmingly support Python only, or provide poor or incomplete support other languages like R. Even cloud offerings like SageMaker and AzureML have very few meaningful native options for practitioners that want flexibility in their ML choices, with the ability to use their model implementation of choice for a specific problem. Data science teams that use both R and Python are an important focus for Posit, and we aim to provide the best possible tools for these bilingual teams.

The design of vetiver can be extended in the future to other languages. The underlying technologies (REST APIs, binary storage, dashboards) are language agnostic and could be extended to, for example, Julia.

🚀 vetiver is for getting started with MLOps

In terms of MLOps maturity, it is still early days for many organizations and practitioners. These folks need a tool that provides a fluent experience as they get started with their MLOps tasks and grow their institutional knowledge about model deployment and management. The vetiver framework is uniquely positioned for teams getting started with MLOps, in terms of our attention to user experience and focus on documentation.

Other existing tools like BentoML are similar to vetiver in that they are focused solutions built for practitioners, but BentoML provides advanced functionality and is less appropriate for a team just getting started.

Who is developing vetiver?

Development of vetiver is sponsored by Posit PBC.

Is vetiver open source?

The vetiver Python and R packages are released under the MIT license.

What are different ways you can contribute?

Answer questions

You can help others use and learn vetiver by answering questions on the RStudio community site, Stack Overflow, and Twitter. Many people asking for help with vetiver don’t know what a reproducible example or “reprex” is, or how to craft one. Acknowledging an individual’s problem, showing them how to build a reprex, and pointing them to helpful resources are all enormously beneficial, even if you don’t immediately solve their problem.

Remember that while you might have seen a problem a hundred times before, it’s new to the person asking it. Be patient, polite, and empathetic.

File issues

If you’ve found a bug, first create a minimal reproducible example. Spend some time working to make it as minimal as possible; the more time you spend doing this, the easier it is to fix the bug. When your reprex is ready, file it on the GitHub repo of the appropriate package, either Python or R.

The vetiver team often focuses on one package at a time to reduce context switching and be more efficient. We may not address each issue right away, but we will use the reproducible example you create to understand your problem when it is time to focus on that package.

Contribute documentation

Documentation is a high priority for vetiver, and pull requests to correct or improve documentation are welcome.

Contribute code

If you are a more experienced R or Python programmer, you may have the inclination, interest, and ability to contribute directly to package development. Before you submit a pull request to vetiver, always file an issue and confirm the vetiver team agrees with your idea and is happy with your basic proposal.

We use the tidyverse style guide for R and the PEP 8 style guide for Python. Using a style guide keeps your new code and documentation matching the existing style, and makes the review process much smoother.