Machine Learning (ML) and Artificial Intelligence (AI) are undoubtedly the two most significant trends of the 21st century, revolutionizing almost every aspect of business activity. With 73% of business leaders believing that ML increases productivity, the AI and ML space is growing rapidly, with a 38.8% projected compound annual growth rate (CAGR) between 2022 and 2029.
However, deploying ML models in production and getting the expected returns on investment (ROI) takes a lot of work. Effective ML deployment usually requires complex pipelines that aim to streamline the ML development lifecycle and reduce an ML application's time to market (TTM).
This post will discuss what ML pipelines involve, their significance, components, and challenges while discussing how ML operations (MLOps) - a recent trend in the ML/AI space - make building robust pipelines easier.
An ML pipeline is a set of procedures that automates ML workflows by processing and integrating data sets into an ML model, which data scientists can evaluate and allow ML engineers to deliver quickly to users.
Also, a pipeline introduces flexibility into the model-building process by modularizing several ML components, so domain-specific teams can build, test, and deploy models more efficiently.
Depending on specific requirements, organizations can create custom pipelines or use third-party ML tools with pre-defined logic and architectural design to effectively implement, manage and monitor their ML and data stack.
An ML pipeline helps by letting organizations take models to production more quickly and cost-effectively.
It lets you divide the ML workflow into separate containers so different teams can work in their environments and use the pipeline to connect the containers through Application Programming Interfaces (APIs).
The technique speeds up model preparation and deployment as each process runs independently, making it easier for each team to manage and troubleshoot their part of the process. It also allows for model reusability, as you can execute the same pipelines to generate the model results and re-adjust configurations to improve model performance.
Such a modular design also helps with scalability, as it is easier to expand ML operations when each team is responsible for its own component. It also ensures model reproducibility in testing environments as quality assurance (QA) analysts can retrain the model to verify that results match expectations. A monolithic architecture, however, would require consistent scripts, frameworks, and configurations, making it challenging to implement, reproduce, and monitor changes due to dependencies.
Data scientists can easily experiment with different models using the same pipeline for fetching data without disturbing other parts of the workflow.
Although an ML pipeline's architecture may vary depending on an organization's needs, some elements are common to all pipelines. They include the data ingestion and processing layer, model training, evaluation, deployment, and monitoring procedures. Knowing each component's purpose will help us see how a pipeline works to ensure efficient ML workflows.
Data ingestion is the first step in every ML workflow, where a pipeline's job is to collect data from several sources and store it in a central repository.
Sources may consist of internal customer relationship management (CRM) or enterprise resource planning (ERP) systems, external sources, such as consumer applications, the internet, the Internet of Things (IoT), etc. Central repositories may include a database, a data warehouse, or a data lake. You can implement separate pipelines for separate sources to increase ingestion speed by running the process in parallel.
The pipeline at this stage ensures the data is consistent, complete, and accurate, agreeing to the schema design in case the destination is a database or a warehouse, as a data lake can take in both structured and unstructured data without a predefined schema.
The next step involves transforming raw data into a usable format for data scientists to create ML models. Pipelines at this stage apply several transformations such as aggregating, normalizing, or standardizing data, filling missing values through imputations, detecting and correcting for outliers, or any other inconsistency.
Feature engineering is a crucial element where the transformations convert raw data into variables that data scientists use as input to train models. For example, an ML model predicting how much a customer will spend in the next week may require an average purchase variable, an aggregate of all the historical purchases in the source data.
The pipeline transfers the variables into feature stores - repositories for features that data scientists can access for model training. Also, the transformation pipeline serves the inference store, which is an additional component in a feature store responsible for providing feature values in real-time to ML applications in production.
Next comes the model training stage, where separate pipelines fetch the features from feature stores through APIs to load the relevant datasets into a data scientist's modeling environment, such as a Jupyter notebook.
Additional pipelines may exist for producing standard model diagnostic reports with intuitive visualizations. Typical diagnosis includes checking each variable's distributional pattern, correlations, historical trends, and other statistical properties to determine a model’s health. Data splitting also occurs at this stage to divide the dataset into a training, testing, and validation set.
The pipeline can also have a component for dimensionality reduction where data scientists merge or drop features with high correlations to avoid over-fitting models.
Data scientists usually test several models to see which gives the highest accuracy. Of course, data scientists can use additional pipelines responsible for running all the models in parallel and storing the model's output and validation metrics in a separate database if the scale of operations is significant.
The pipeline can compute accuracy and precision scores, confusion matrices, mean squared errors, learning curves, etc., and rank the models according to specific criteria, allowing data scientists to choose the best one quickly. The pipeline's primary objective should be to select the model that generalizes well to new data and strikes the right balance between bias and variance to minimize error.
After training and evaluation, you must select a model to deploy in production. ML engineers come into play in the deployment process to ensure the ML model runs smoothly on a user's application. For example, a video streaming app may have a recommendation system that runs an ML model to suggest videos a user might like.
Usually, deployment pipelines work in real-time, low-latency environments to ensure timely service delivery to users. The pipeline's job is to retrieve users' data as they interact with the application, transform it into predefined features so the ML model in production can use them to make predictions, and send them to the user's application.
Also, the pipeline should store ground truth data regarding the user's actual activity. For instance, the ML application may recommend specific videos, and the user can select from the recommendations or from somewhere else. The pipeline should store such information so that data scientists can assess predictions' accuracy and relevance.
The final stage is monitoring a model's performance by comparing its predictions against ground truth results. Monitoring pipelines should also keep track of features a model uses as inputs since a feature's properties can change over time.
Data drift occurs when features' statistical and distributional properties change. For example, a specific feature's mean and variance can shift significantly, indicating a fundamental change in the user's behavior.
Also, models can experience concept drifts, in which case, the relationship between a feature input and the model's output metric doesn't hold, leading to inaccurate predictions. For example, historical purchases may no longer predict what the user will buy in the future.
Whether it's data or a concept drift, an issue with data retrieval or storage, or a degradation of the model's performance, deployment pipelines should constantly monitor such changes and notify the relevant teams so they can take proactive action.
Building ML pipelines is complex as it requires the collaboration of several data teams, including data engineers, scientists, ML engineers, and even IT administration. In particular, deployment pipelines are challenging to create and maintain as they operate in real-time, serving features to the ML application and data scientists after applying several transformations.
ML pipelines become more problematic as you scale up ML operations, ingesting and processing extensive data while using significant computing power to run several models in parallel. Deployment becomes a hassle as pipelines must perform all functions instantly, making the model update process more challenging.
Unlike software development, ML development has two components - data and code. As you expand your operations, ML pipelines should ensure they keep track of all the training data and model code through proper versioning. They must store a production model's code, hyperparameters, training data, results, feature versions, and other relevant configurations for quick reproducibility and testing.
However, building such an architecture involves high costs, time, and expertise. Usually, data scientists don't have the relevant domain knowledge to implement deployment pipelines, leaving the job to ML and data engineers. Without adequate collaboration among them, models tend to exhibit training-serving skew, which means a model's prediction results differ between production and training.
Also, pipelines can begin to break as data volume expands due to additional load on processing units and servers. In particular, organizations may fail to design appropriate pipelines to handle several data formats, causing transformation engines to crash and increasing latency when serving a model's results to the user.
MLOps is a recent development in the ML space that aims to mitigate the challenges discussed above. In particular, automated MLOps streamlines the ML development lifecycle by minimizing manual effort and human error at each stage.
MLOps uses software development practices of continuous integration and development (CI and CD) to test, version, and update the model's code and data to ensure timely deployment and consistent model performance.
Continuous integration (CI) in MLOps concerns automatically testing and validating ML code, data, configurations, features, etc. So whenever a data scientist updates a model's code or data, it triggers the MLOps pipeline to run the relevant tests and check for errors.
Next, continuous development or delivery (CD) involves deploying the ML model automatically to production once it passes all the tests. The practice ensures that data scientists can quickly update models with the latest data and let the MLOps pipeline deploy in production.
A third component, called Continuous Training (CT), involves automatically retraining the models at regular intervals to ensure it gives reliable predictions in production. It provides the development environment during production to avoid training-serving skew.
Also, metadata management is a crucial component of MLOps. It stores each model's version, results, features, hyperparameters, training data, etc., making it easier to revert to a relevant version if new models produce errors.
In addition, with data regulations such as General Data Protection Regulation (GDPR) becoming more prevalent, maintaining quality metadata is crucial for auditing purposes and ensuring compliance throughout the development lifecycle.
Not all organizations have the time and expertise to implement a fully automated MLOps pipeline. As such, using a third-party tool such as Qwak offers a quick way to get started with MLOps.
Qwak is an end-to-end MLOps platform that automates all processes, from data ingestion to model deployment and monitoring. It has a feature store with a transformation engine letting you create, store, and serve complex features to data scientists and ML applications with low latency.
Qwak features a model registry providing a robust versioning system and makes model deployment a one-click process through its intuitive user interface. Also, it lets you automatically scale models using predefined metrics while providing valuable logs to track model performance.
It also lets you monitor the model in greater detail through intuitive visualizations and dashboards while letting you quickly orchestrate pipelines to get instant notifications if anomalies occur.
So, book a demo now and start your MLOps journey with Qwak!