Turbo-Charging ML Development

How Ramp built a YAML-based configuration system to speed up ML development and deployment.

Ryan Stevens, Ryne Carbone
9 min readintermediate
--
View Original

Overview

The article discusses the development of Turbo, a YAML-based configuration system designed to enhance machine learning model deployment at Ramp. It emphasizes the importance of reproducibility and speed in ML workflows, showcasing how Turbo has significantly reduced deployment times and improved model management.

What You'll Learn

1

How to create a YAML-based configuration for machine learning workflows

2

Why maintaining reproducibility in ML models is crucial for financial services

3

How to implement a feature pipeline and model pipeline for ML projects

Key Questions Answered

How has Turbo improved the deployment speed of ML models?
Turbo has reduced the deployment time of new ML models from over 4 months and 3,000 lines of code to under 5 minutes and an average of 40 lines of YAML. This significant improvement allows developers to focus on building more models rather than spending excessive time on deployment.
What are the core components of a machine learning workflow discussed in the article?
The article highlights two main components of a machine learning workflow: the Feature Pipeline, which processes raw data into usable features, and the Model Pipeline, which takes these features and outputs predictions. Both are essential for creating effective ML models.
Why is an abstraction layer important in machine learning development?
An abstraction layer simplifies the complexity of ML pipelines, making them easier to maintain and understand. It allows developers to focus on building products rather than getting bogged down by the technical details of model deployment and maintenance.
What role does the JobSpec class play in Turbo?
The JobSpec class in Turbo materializes Python objects from YAML configurations and facilitates communication with external services. It is essential for submitting jobs to run in various environments and for storing models in the model store.

Key Statistics & Figures

Deployment time for new ML models
Under 5 minutes
This is a reduction from over 4 months and 3,000 lines of code.
Average lines of YAML for deployment
~40 lines
This simplification allows for quicker model deployment.
Number of deployed models
~20 models
These models were developed by 9 different developers, many of whom had no prior ML training experience.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Programming Language
Python
Used to build Turbo and implement machine learning workflows.
Library
Pydantic
Utilized for creating entities and aggregates in Turbo.
Data Serialization Format
YAML
Used for configuration files that define ML workflows.

Key Actionable Insights

1
Implementing a YAML-based configuration system can drastically reduce deployment times for machine learning models.
By adopting Turbo, Ramp has streamlined its ML deployment process, allowing for new models to be deployed in under 5 minutes, which is a significant improvement over previous methods.
2
Creating a unified framework for ML jobs can enhance collaboration among developers with varying levels of expertise.
Turbo's design enables developers, even those without extensive ML experience, to contribute to model development, thereby democratizing the process and increasing overall productivity.
3
Focusing on reproducibility in ML workflows is essential for compliance and operational efficiency in financial services.
As a financial services company, Ramp's ability to reproduce model outputs is critical, ensuring consistency and reliability in their forecasting and decision-making processes.

Common Pitfalls

1
Neglecting the importance of a well-defined feature pipeline can lead to inconsistent model performance.
Without a robust feature pipeline, raw data may not be effectively transformed into usable features, resulting in poor model predictions and unreliable outputs.
2
Overcomplicating the ML deployment process can hinder team productivity.
When developers are required to handle complex deployment processes, they may focus less on model innovation and more on technical challenges, reducing overall output.

Related Concepts

Machine Learning
Model Deployment
Feature Engineering
Reproducibility In ML