You donât need to spend a lot on MLOps tools to bring the magic of DevOps to your machine learning projects. There is plenty of open-source tools to choose from. Itâs a good solution when youâre trying to address unique problems and a community to rely on is needed. But there are some prons to machine learning open source tools too.
- First, be carefulâmachine learning open source tools arenât always 100% free all of the time. For example, Kuberflow has client and server components, and both are open. However, some tools might open-source only one of these components. The client is open, but the vendor controls everything server-side.
- Free open-source tools can cost you in other ways too. If you consider that you have to host and maintain the tool long-term, youâll find that open-source can be quite costly after all.
- Finally, if something goes awry, you probably wonât have 24/7/365 vendor support to rely on. Community can help you but, obviously, they donât bear any responsibility for the result youâre left with.
Ultimately, open-source tools can be tricky. Before you choose the tool for your project, you need to carefully study its pros and cons. Moreover, you need to make sure that the tools work well with the rest of your stack. This is why I prepared a list of popular and community-approved MLOps platforms, tools, and frameworks for different stages of the model development process.
If you’re exploring the possibility of integrating open source machine learning platforms into your workflow to simplify model development and model deployment, this article is tailored for you. Within these insights, you’ll discover a compilation of machine learning platforms, frameworks, and specialized tools designed to assist you in data exploration, deployment strategies, and testing procedures.
Furthermore, we’ve included a FAQ section towards the conclusion, offering comprehensive responses to the most commonly posed questions.
Interested in other MLOps tools?
When building their ML pipelines, teams usually look into a few other components of the MLOps stack.
If thatâs the case for you, here are a few article you should check:
MLOps open source platforms
Let us start by exploring the open-source platforms first followed by frameworks and tools.
Full-fledged MLOps open source platforms
Full-fledged platforms contain tools for all stages of the machine-learning workflow. Ideally, once you get a full-fledged tool, you wonât have to set up any other tools. In practice, it depends on the needs of your project and personal preferences.
Kubeflow
Almost immediately after Kubernetes established itself as the standard for working with a cluster of containers, Google created Kubeflowâan open-source project that simplifies working with ML in Kubernetes. It has all the advantages of this orchestration tool, from the ability to deploy on any infrastructure to managing loosely-coupled microservices, and on-demand scaling.
This project is for developers who want to deploy portable and scalable machine learning projects. Google didn’t want to recreate other services. They wanted to create a state-of-the-art open-source system that can be applied alongside various infrastructuresâfrom supercomputers to laptops.
With Kuberflow, you can benefit from the following features:
- Jupyter notebooks
Create and customize Jupyter notebooks, immediately see the results of running your code, and create interactive analytics reports.
- Custom TensorFlow job operator
This functionality helps train your model and apply a TensorFlow or Seldon Core serving container to export the model to Kubernetes.
- Simplified containerization
Kuberflow eliminates the complexity involved in containerizing the code. Data scientists can perform data preparation, model training, and deployment in less time.
All in all, Kuberflow is a full-fledged solution for the development and deployment of end-to-end machine learning workflows.
MLflow
MLflow is an open-source platform for machine learning engineers to manage the machine learning lifecycle through experimentation, deployment, and testing. MLflow comes in handy when you want to track the performance of your machine learning models. Itâs like a dashboard, one place where you can:
- monitor machine learning pipelines,
- store model metadata, and
- pick the best-performing model.
Right now, there are four components provided by MLflow:
- Tracking
The MLflow Tracking component is an API and UI for logging parameters, code versions, metrics, and output files for running the code and visualizing the results. You can do log and query experiments using Python, REST, R API, and Java APIs. You can also record the results.
- Project
MLflow Project is a tool for machine learning teams to package data science code in a reusable and reproducible way. It comes with an API and command-line tools to connect projects into workflows. It helps you run projects on any platform.
- Model
MLflow Model makes it easy to package machine learning models to be used by various downstream tools, like Apache Spark. With this, deploying machine learning models in diverse serving environments is much more manageable.
Overall, users love MLflow because itâs easy to use locally without a dedicated server and has a fantastic UI where you can explore your experiments.
Might be useful
The product has been very helpful for our experimentation workflows. Almost all the projects in our company are now using Neptune for experiment tracking, and it seems to satisfy all our current needs. Itâs also great that all these experiments are available to view for everyone in the organization, making it very easy to reference experimental runs and share results. James Tu, Research Scientist at Waabi
-
Dive into documentation
-
Get in touch if youâd like to go through a custom demo with your team
Metaflow
Netflix created Metaflow as an open-source MLOps platform for building and managing large-scale, enterprise-level data science projects. Data scientists can use this platform for end-to-end development and deployment of their machine-learning models.
- Great library support
Metaflow supports all popular data science tools, like TensorFlow and scikit-learn, so you can keep using your favorite tool. Metaflow supports Python and R, making it even more flexible in terms of library and package choice.
- Powerful version control toolkit
What is excellent about Metaflow is that it versions and keeps track of all your machine learning experiments automatically. You wonât lose anything important, and you can even inspect the results of all the experiments in notebooks.
As it was mentioned above, Metaflow was specifically created for large-scale machine learning development. The AWS cloud powers the solution, so there are built-in integrations to storage, compute, and machine learning services from AWS if you need to scale. You donât have to rewrite or change the code to use any of it.
Flyte
If youâre looking for a platform that will take care of experiment tracking and maintenance for your machine learning project, have a look at Flyte. It is an open-source orchestrator designed to simplify the creation of robust data and machine learning pipelines for production. Its architecture prioritizes scalability and reproducibility, harnessing the power of Kubernetes as its foundational framework.
Flyte offers a ton of features and use cases from a simple machine learning project to complex LLMs projects. To give you an I have distilled a some features and listed them below, but you check out their website and documentation.
- Large-scale project support
Flyte has helped them to execute large-scale computing thatâs crucial to their business. Itâs not a secret that scaling and monitoring all pipeline changes can be pretty challenging, especially if the workflows have complex data dependencies. Flyte successfully deals with tasks of higher complexity, so developers can focus on business logic rather than machines.
- Improved reproducibility
This tool can also help you be sure of the reproducibility of the machine learning models you build. Flyte tracks changes, does version control, and containerizes the model alongside its dependencies.
- Multi-language support
Flyte was created to support complex ML projects in Python, Java, or Scala.
Flyte has been tested out by Lyft internally before they released it to the public. It has a proven record of managing more than 7,000 unique workflows totaling 100,000 executions every month.
MLReef
MLReef is an MLOps platform for teams to collaborate and share the results of their machine learning experiments. Projects are built on reusable machine learning modules realized either by you or by the community. This boosts the speed of development and makes the workflow more efficient by promoting concurrency.
MLReef provides tools in four directions:
- Data management
You have a fully-versioned data hosting and processing infrastructure for setting up and managing your machine learning models.
- Script repositories
Every developer has access to containerized and versioned script repositories that you can use in your machine learning pipelines.
- Experiment management
You can use MLReef for experiment tracking across different iterations of your project.
- MLOps
This solution helps you optimize pipeline management and orchestration, automating routine tasks.
Moreover, MLReef feels welcoming to projects of any size. Newcomers can use it for small-scale projects, experienced developersâfor small, medium-sized, and enterprise projects.
- Newcomer
If you donât have much experience developing machine learning models, youâll find a user-friendly interface and community support for whatever problem you may face.
- Experienced
MLReef lets you build your project on Git while taking care of all the DevOps mess for you. You can easily monitor progress and outcomes in an automated environment.
- Enterprise
MLReef for enterprise is easy to scale and control on the cloud or on-premises.
All in all, MLReef is a convenient framework for your machine learning project. With just a couple of easy setups, youâll be able to develop, test, and optimize your machine learning solution brick-by-brick.
Seldon Core
Seldon Core is one of the platform for machine learning model deployment on Kubernetes. This platform helps developers build models in a robust Kubernetes environment, with features like custom resource definitions to manage model graphs. You can also merge your continuous integration and deployment tools with platform.
- Build scalable models
Seldon core can convert your model built on TensorFlow, PyTorch, H2O, and other frameworks into a scalable microservice architecture based on REST/GRPC.
- Monitor model performance
It will handle scaling for you, and give you advanced solutions for measuring model performance, detecting outliers, and conducting A/B testing out-of-the-box.
- Robust and reliable
Seldon Core can boast the robustness and reliability of a system supported through continuous maintenance and security policy updates.
Optimized servers provided by Seldon Core allow you to build large-scale deep-learning systems without having to containerize them or worry about their security.
Sematic
Sematic stands as an open-source machine learning development platform. It grants ML Engineers and Data Scientists the ability to craft intricate end-to-end machine learning pipelines using straightforward Python code, which can then be executed on diverse platforms: their local machine, a cloud VM, or a Kubernetes cluster, harnessing the potential of cloud-based resources.
This open source platform draws upon insights amassed from leading self-driving car enterprises. It facilitates the seamless linking of data processing tasks (such as those powered by Apache Spark) with model training endeavors (like PyTorch or TensorFlow), or even arbitrary Python-based business logic. This amalgamation results in the creation of type-safe, traceable, and reproducible end-to-end pipelines. These pipelines, complete with comprehensive monitoring and visualization, are effortlessly managed through a contemporary web dashboard.
Here are some of the features that Sematic offers:
- Smooth Onboarding
Embarking on your journey with Sematic is a breeze â no initial deployment or infrastructure requirements. Simply install Sematic locally and plunge into exploration.
- Parity from Local to Cloud
The same code that runs on your personal laptop can be seamlessly executed on your Kubernetes cluster, ensuring consistent outcomes.
- End-to-End Transparency
Every artifact of your pipeline is meticulously stored, tracked, and presented within a web dashboard, enabling comprehensive oversight.
- Harnessing Diverse Computing Resources
Tailor the resources allocated to each step of your pipeline, optimizing performance and cloud footprint through a range of options including CPUs, memory, GPUs, and Spark clusters.
- Reproducibility at the core
Rerun your pipelines with confidence from the intuitive UI, securing the assurance of reproducible results each time.
Sematic introduces an exceptional level of clarity to your machine learning pipelines, affording you an encompassing view of crucial aspects such as artifacts, logs, errors, source control, and dependency graphs. This robust insight is seamlessly coupled with an SDK and GUI that remain both straightforward and instinctive.
Sematic strikes an adept balance by offering a precisely calibrated level of abstraction. This equilibrium empowers ML engineers to concentrate on refining their business logic, all the while harnessing the power of cloud resources â all without the necessity of wielding intricate infrastructure expertise.
Data-processing MLOps open source platform
Data-processing platforms are ideally used to prepare a robust pipeline for any given application. These platforms are capable of scaling, optimizing, batching, distributing data streams et cetera.
Apache Airflow
Apache Airflow emerges as an open-source platform tailored for the development, scheduling, and vigilant monitoring of batch-centric workflows. Airflow’s expansive Python foundation empowers you to forge intricate workflows, seamlessly bridging connections with a diverse spectrum of technologies.
A user-friendly web interface takes charge of workflow management, meticulously overseeing their state. From deploying as a singular process on your personal laptop to configuring a distributed setup capable of supporting the most intricate workflows, Airflow accommodates a plethora of deployment options.A distinctive hallmark of Airflow workflows is their anchoring within Python code. This “workflows as code” paradigm serves a multifaceted role:
- Dynamic Prowess
Airflow pipelines are molded through Python code, instilling the capability for dynamic pipeline generation.
- Inherent Extensibility
The Airflow framework houses a range of operators that seamlessly interface with a multitude of technologies. Every component of Airflow retains an intrinsic extensibility, seamlessly adapting to your unique environment.
- Supreme Flexibility
The fabric of workflow parameterization is woven into the system, harnessing the prowess of the Jinja templating engine for streamlined customization.
Apache Airflow is a versatile addition to any machine learning stack, offering dynamic workflow orchestration that adapts to changing data and requirements. With its flexibility, extensive connectivity, and scalability, Airflow allows machine learning practitioners to build custom workflows as code while integrating various technologies. Its monitoring capabilities, community support, and compatibility with cloud resources enhance ML reproducibility, collaboration, and efficient resource utilization in machine learning operations.
Monitoring MLOps open source platform
EvidentlyAI
EvidentlyAI is an open-sourced observability platform that allows you to evaluate, test, and monitor machine learning models. The platform covers the phase from validation to production. It offers services for tabular data, embeddings, and text-based models and data. It has also extended its services to cater to the needs of large language models or LLMs.
These are some of the products that EvidentlyAI offers:
- 1 Data and model visualization dashboard
- 2 Data and ML monitoringÂ
- 3 Data quality and integrity checkÂ
- 4 Data drift monitoringÂ
- 5 ML model performance monitoring
- 6 NLP and LLM monitoring.Â
With these products, EvidentlyAI offers the following features:
- Build reports
The plug-and-play capabilities allow users to easily build reports for dataset and model performance. These reports are easy to share and appealing to interact.
- Test your pipelines
EvidentlyAI test suites allow you properly create test pipelines for your machine learning models and data to see if there is any drift detected.
- Monitoring
With dashboard capabilities and a wide range of testing methods Evidently makes monitoring and debugging machine learning models simple and interactive.
- Data quality
With EvidentlyAI you can run various exploratory analyses to ensure that the data is of high quality and integrity. It enables you to spot issues in your data with ease with a single line of code.
EvidentlyAI is an easy-to-use platform that offers great features with good capabilities. This testing platform is one of the best out there, and it is keeping up with the trend as it offers services towards LLMs.
MLOps open source frameworks
Now that open-source platforms are covered let us dive into the frameworks.
Workflow open source MLOps frameworks
The workflow frameworks allows you to provide a structural approach to streamline the different phases of your MLOps applications. You must keep in mind that some frameworks covers two phases while some may cover multiple phases.
Kedro
Kedro is a Python framework for machine learning engineers and data scientists to create reproducible and maintainable code.
This framework is your best friend if you want to organize your data pipeline and make machine learning project development much more efficient. You wonât have to waste time on code rewrites and will have more opportunities for focusing on robust pipelines. Moreover, Kedro helps teams establish collaboration standards to limit delays and build scalable, deployable projects.
Kedro has many good features:
- Project templates
Usually, you have to spend a lot of time understanding how to set up your analytics project. Kedro provides a standard template that will save you time.
- Data management
Kedro will help you load and store data to stop being alarmed about the reproducibility and scalability of your code.
- Configuration management
This is a necessary tool when youâre working with complex software systems. If you donât pay enough attention to configuration management, you might encounter serious reliability and scalability problems.
Kedro promotes a data-driven approach to ML development and maintains industry-level standards while decreasing operational risks for businesses.
ZenML
ZenML is an MLOps framework for orchestrating your machine learning experiment pipeline. It provides you with tools to:
- Preprocess data
ZenML helps you convert raw data into analysis-ready data.
- Train your models
Among other tools for convenient model training, the platform uses declarative pipeline configs, so you can switch between on-premise and cloud environments easily.
- Conduct split testing
ZenML creators claim that the platformâs key benefits are automated experiment tracking and guaranteed comparability between experiments.
- Evaluate the results
XML focuses on making ML development reproducible and straightforward for both individual developers and large teams.
This framework frees you from all the troubles of delivering machine learning models with traditional tools. If you struggle with providing enough experiment data that prove the reproducibility of results, want to reduce waste and make the reuse of code simpler, ZenML will help.
Deployment and serving open source MLOps framework
BentoML
BentoML is a framework that allows you to build, deploy and scale any machine learning application. BentoML provides a way to bundle your trained models, along with any preprocessing, post-processing, and custom code, into a containerized format.
Some of the key features of BentoML include:
- Model Serving
BentoML allows you to easily serve your machine learning models with a REST API. It abstracts away the complexities of serving machine learning models and managing infrastructure.
- Model Packaging
You can package your trained models, along with dependencies and custom code, into a single deployable artifact. This makes it simple to reproduce your model deployments.
- Multi-Framework Support
BentoML supports a variety of machine learning frameworks, such as TensorFlow, PyTorch, Scikit-learn, XGBoost, and more.
- Deployment Flexibility
You can deploy BentoML models in various environments, including local servers, cloud platforms, and Kubernetes clusters.
- Scalability
BentoML supports high-throughput serving, making it suitable for machine learning applications that require efficient and scalable model deployments.
- Versioning
BentoML allows you to version your model artifacts and easily switch between different versions for serving.
- Monitoring and Logging
BentoML provides features for monitoring the health and performance of your deployed models, including logging and metrics.
- Customization
You can customize the deployment environment, preprocessing, post-processing, and other aspects of your deployed model.
BentoML can be an important resource in your ML arsenal as it can essentially offer so much more with ease and reliability. With BentoML you can deploy your machine learning models as REST APIs, Docker containers, or even serverless functions.
Workflow orchestration open source MLOps framework
Argo Workflow
Argo Workflow is a Kubernetes based orchestration tool which is based on YAML. It is lightweight and easy to use tool. Because it is based on YAML it is implemented as Kubernetes CRD (Custom Resource Definition). It is open-sourced, and it is trusted by a large community.
Argo Workflow provides support to a wide range of ecosytem some of which are:
- 1 Kedro
- 2 Kubeflow Pipelines
- 3 Seldon
- 4 SQLFlow
- 5 Argo Events
- 6 Couler
- 7 Hera
- 8 Katlib
Argo Workflow also supports Python-based environments. Although Argo offers a quite a number of features I have listed out a few that attracted me a lot:
- UI
The workflow provides a user interface that allows users to manage their workflow with ease.
- Artifact Support
You can integrate platforms such as S3, Azure Blob Storage, et cetera to store your metadata.
- Scheduling
You can schedule your whole ML workflow using cron. This allows you to schedule jobs and tasks to run automatically at specific times, on specific days, or at regular intervals.
- Kubernetes
If you are well established on working with Kubernetes cluster then Argo is the go-to choice. One key feature is that Argo defines each step as a container.
- Efficiency
It easily computes intensive jobs for data processing and ML making it efficient and reliable.
You can find the full documentation here.
MLOps open source tools
Open-source tools and libraries addresses one specific aspect in your machine learning applications. You can pick any of these tools and use it for your own application and fit them into a desired framework. One key advantage is that these tools are compatible with most of the working environments and they are compatible as well.
In this list, we will cover some of the major areas in ML lifecycle where open-source tools will get the job done for you.
Development and deployment open source ML tools
MLRun
MLRun is a tool for machine learning model development and deployment. If youâre looking for a tool that conveniently runs in a wide variety of environments and supports multiple technology stacks, itâs definitely worth a try. MLRun offers a comprehensive approach to managing data pipelines.
MLRun has a layered architecture that offers the following powerful functionality:
- Feature and artifact store
This layer helps you to handle the preparation and processing of data and store it across different repositories.
- Elastic serverless runtimes layer
Convert simple code into microservices that are easy to scale and maintain. Itâs compatible with standard runtime engines like Kubernetes jobs, Dask, and Apache Spark.
- Automation layer
For you to concentrate on model training the model and fine-tuning the hyperparameters, the pipeline automation tool helps you with preparing data, testing, and real-time deployment. Youâll only need to provide your supervision to create a state-of-the-art ML solution.
- Central management layer
Here, you get access to a unified dashboard to manage your whole workflow. MLRun has a convenient user interface, a CLI, and an SDK that you can access anywhere.
With MLRun, you can write code once and then use automated solutions to run it on different platforms. The tool manages the build process, execution, data movement, scaling, versioning, parameterization, output tracking, and more.
CML (Continuous Machine Learning)
CML (Continuous Machine Learning) is a library for continuous integration and delivery (CI / CD) of machine learning projects. The library was developed by the creators of DVC, an open-source library for versioning machine learning models and machine learning experiments. Together with DVC, Tensorboard, and cloud services, CML should facilitate the process of developing and implementing machine learning models into products.
- Automate pipeline building
CML was designed to automate some of the work of machine learning engineers, including training experiments, model evaluation, datasets, and their additions.
- Integrate APIs
The tool is positioned as a library that supports GitFlow for data science projects, allows automatic generation of reports, and hides complex details of using external services. Examples of external services include cloud platforms: AWS, Azure, GCP, and others. For infrastructure tasks, DVC, docker, and Terraform are also used. Recently, there is an infrastructural aspect of machine learning projects attracting more attention.
The library is flexible and provides a wide range of functionality; from sending reports and publishing data, to distributing cloud resources for a project.
AutoML open source tools
AutoKeras
AutoKeras is an open-source library for Automated Machine Learning (AutoML). With AutoML frameworks, you can automate the processing of raw data, choose a machine learning model, and optimize the hyperparameters of the learning algorithm.
- Streamline machine learning model development
AutoML reduces the biases and variances that happen when humans develop machine learning models, and streamlines the development of a machine learning model.
- Enjoy automated hyperparameter tuning
AutoKeras is the tool that provides functionality to match the architecture and hyperparameters of deep learning models automatically.
- Build flexible solutions
AutoKeras is most famous for its flexibility. In this case, the code you write will be executed regardless of the backend. It supports Theano, Tensorflow, and other frameworks.
AutoKeras has several training datasets inside. Theyâre already put in a form thatâs convenient for work, but it doesnât show you the full power of AutoKeras. In fact, it contains tools for suitable preprocessing of texts, pictures, and time series. In other words, the most common data types, which make the data preparation process much more manageable. The tool also has built-in visualization for models.
H2O AutoML
H2O.ai is a software platform that optimizes the machine learning process using AutoML. H2O claims the platform can train models faster than popular machine learning libraries such as scikit-learn.
H2O is a machine learning, predictive data analytics platform for building machine learning models and generating production code for them in Java and Python, all at the click of a button.
- Implement ML models out-of-the-box
It has implementations of supervised and unsupervised algorithms such as GLM and K-Means, and an easy-to-use web interface called Flow.
- Tailor H2O to your needs
The tool is helpful for both beginner and seasoned developers. It equips the coder with a simple wrapper function that manages modeling-related tasks in a few lines of code. Experienced machine learning engineers appreciate this function, since it allows them to focus on other, more thought-intensive processes of building models (like data exploration and feature engineering).
Overall, H2O is a powerful tool for solving machine learning and data science problems. Even beginners can extract value from data and build robust models. H2O continues to grow and release new products while maintaining high quality across the board.
EvalML
EvalML is a library that offers multiple functionalities such building, optimizing, and evaluating machine learning pipelines. EvalML offers end-to-end supervised machine learning solutions that leverage Featuretools and Compose. The former is a framework that is used to perform automated feature engineering in relational datasets, and the latter is used to automate prediction engineering.
With these automated capabilities, EvalML offers four important functionalities:
- Automation
It takes away the manual work from the picture. You make machine learning models with ease. The automation feature includes data quality check, cross-validation, and many other features.
- Data Checks
As the name suggest it inspect data integrity and brings into light the issues and problems like duplicates, imbalance distribution et cetera before you can use them to train the model.
- End-to-end
Offers end-to-end functionality that includes data-preprocessing, feature-engineering, feature-selection, and various other machine learning modeling techniques.
- Model Understanding
It helps you to understand and inspect your machine learning model.
To conclude EvalML is an amazing tool that essentially automates two major phases of the ML lifecycle, data-preprocessing, and ML modeling. EvalML is has an active list of contributors, and the library is updated in a day-to-day basis. You can leverage this light-weight library to your own application with ease as the documentation is pretty straightforward and easy to understand.
Neural Network Intelligence (NNI)
NNI or Neural Network Intelligence is a lightweight tool created by Microsoft for automating neural network optimization. This open-source toolkit allows users to automate feature engineering, neural architecture search or NAS, model compression, and hyper-parameter tuning.
NNI offers simple to use function calling in Python. Similar to other Python libraries and frameworks NNI can be leveraged in an existing pipeline. All you need to have is a PyTorch working environment, and you are ready to plug-and-play and automate your optimization technique with a single function calling. For instance, if you want to perform:
- Hyperparameter tuning then simply call nni.get_next_parameter()
- Model pruning then call one of the pruning methods such as L1NormPruner(model, config)
- Model quantization then call any quantization function such as QAT_Quantizer(model, config)
- Neural architecture search then you can call a strategy and an evaluator like RegularizedEvolution() and FunctionalEvaluator() respectively.
There are other features as well One-shot neural architecture search and feature engineering. The idea that NNI is putting forward is to automate Neural Network model engineering.
Essentially, NNI eases the model buildings and engineering phase while allowing you to manage AutoML machine learning experiments. Along with all the above it also provides a dashboard where you can monitor the tuning process which allows you to control the experiments. If you are someone who spends a lot of time building models and finetuning them then this tool is a necessity.
Data validation open source ML tools
Data validation is the process of checking data quality. During this stage, you make sure that there are no inconsistencies or missing data in your sets. Data validation tools automate this routine process and improve the quality of data cleansing.
Hadoop
Hadoop is a freely redistributable set of utilities, libraries, and frameworks for developing and executing programs running on clusters. This fundamental technology for storing and processing Big Data is a top-level project of the Apache Software Foundation.
The project consists of 4 main modules:
- Hadoop Common
Hadoop Common is a set of infrastructure software libraries and utilities that are used in other solutions and related projects, in particular, for managing distributed files and creating the necessary infrastructure.
- HDFS is a distributed file system
Hadoop Distributed File System is a technology for storing files on various data servers with addresses located on a special name server. HDFS provides reliable storage of large files, block-by-block distributed between the nodes of the computing cluster.
- YARN is a task scheduling and cluster management system
YARN is a set of system programs that provide sharing, scalability, and reliability of distributed applications.
- Hadoop MapReduce
This is a platform for programming and performing distributed MapReduce calculations using many computers that form a cluster.
Today, thereâs a whole ecosystem of related projects and technologies in Hadoop used for data mining and machine learning.
Apache Spark
Apache Spark helps you to process semi-structured in-memory data. The main advantages of Spark are performance and a user-friendly programming interface.
The framework has five components: a core and four libraries, each solving a specific problem.
- Spark Core
This is the core of the framework. You can use it for scheduling and core I/O functionality.
- Spark SQL
Spark SQL is one of four framework libraries that comes in handy when working with processing data. To run faster, this tool uses DataFrames and can act as a distributed SQL query engine.
- Spark Streaming
This is an easy-to-use streaming data processing tool. It breaks data into micro-batch mode. The creators of Spark claim that performance does not suffer much from this.
- MLlib
This is a high-speed distributed machine learning system. Itâs nine times faster than its competitor, the Apache Mahout library when benchmarked against the alternating least squares (ALS) algorithm. MLlib includes popular algorithms for classification, regression, and recommender systems.
- GraphX
GraphX ââis a library for scalable graph processing. GraphX ââis not suitable for graphs that change in a transactional manner, for example, databases.
Spark is entirely autonomous but also compatible with other standard ML instruments, like Hadoop, if needed.
Great Expectations
For effective management of intricate data pipelines, data practitioners recognize the significance of testing and documentation. GX offers a solution for swift deployment of adaptable, expandable data quality testing within data stacks. Its user-friendly documentation ensures accessibility for both technical and non-technical users.
Great Expectations (GX) assists data teams in fostering a collective comprehension of their data by incorporating quality testing, documentation, and profiling.
Some of the key features are:
- Seamless Integration
GX seamlessly integrates into your current tech stack and can be linked with your CI/CD pipelines, enabling precise data quality enhancement. Validate and connect with your existing data, enabling Expectation Suites to perfectly address your data quality requisites.
- Quick Start
GX produces valuable outcomes promptly, even for large datasets. Its Data Assistants offer curated Expectations tailored for various domains, accelerating data discovery for rapid deployment of data quality across pipelines. Auto-generated Data Docs ensure ongoing up-to-date documentation.
- Unified Insight
Expectations serve as GX’s core abstraction, articulating anticipated data states. The Expectation library employs a human-readable vocabulary, catering to technical and non-technical users. Bundled into Expectation Suites, they excellently characterize your data expectations.
- Security and Transparency
GX preserves your data security by processing it within your own systems. Its open-source foundation ensures full transparency, allowing for complete control over insights.
- Data Contracts Support
Utilize Checkpoints for transparent, central, and automated testing of Expectations, producing readable Data Docs. Checkpoints can trigger actions based on evaluation results, bolstering data quality.
- Enhanced Collaboration
GX’s Data Docs are inspectable, shareable, and human-readable, fostering mutual understanding of data quality. Publish Data Docs in diverse formats to seamlessly integrate with existing catalogs, dashboards, and reporting tools.
Great Expectations aligns well with your MLOps tools by enhancing data reliability, reducing the risk of poor data quality impacting your machine learning models, and promoting a collaborative approach to data quality management within your team.
TensorFlow Extended (TFX)
TFX, short for TensorFlow Extended, presents a range of powerful features for effective machine learning operations:
- Scalable ML Pipelines
TFX offers a structured sequence of components tailored for scalable and high-performance machine learning tasks, streamlining the development of end-to-end ML pipelines.
- Component Modularity
TFX components are built using specialized libraries, providing both a cohesive framework and the flexibility to utilize individual components according to your needs.
- Data Preprocessing
TFX includes powerful tools for data preprocessing, transformation, and feature engineering, crucial for preparing data for model training.
- Model Training and Validation
It supports model training using TensorFlow and facilitates model validation, ensuring the robustness and reliability of your machine learning models.
- Automated Model Deployment
TFX simplifies the process of deploying models to various serving environments, enabling smooth integration with production systems.
- Artifact Tracking
TFX maintains track of experiment artifacts, aiding in tracking and managing the lifecycle of your ML models.
- Custom Component Development
It allows for the creation of custom components to meet specific requirements or integrate third-party tools.
- Integration with TensorFlow
As an extension of TensorFlow, TFX seamlessly integrates with TensorFlow ecosystem tools and technologies.
TFX is an excellent fit in your MLOps toolkit due to its focus on scalability, performance, and end-to-end ML pipeline management. It streamlines the development and deployment of machine learning workflows, ensuring efficient data preprocessing, model training, validation, and deployment. Its modularity and integration with TensorFlow make it a valuable asset in your quest for efficient and effective machine learning operations.
Data exploration open source ML tools
Data exploration software is created for automated data analysis that provides streamlined pattern recognition and easy insights visualization. Data exploration is a cognitively intense process, you need powerful tools that will help you track and execute code as you go.
Jupyter Notebook
Jupyter Notebook is a development environment where you can immediately see the result of executing code and its fragments. The difference from a traditional IDE is that the code can be broken into chunks and performed in any order. You can load a file into memory, check its contents separately, and also process the contents separately.
- Multi-language support
Often when we talk about Jupyter Notebook, we mean working with Python. But, in fact, you can work with other languages, such as Ruby, Perl, or R.
- Integration with the cloud
The easiest way to start working with a Jupyter Notebook in the cloud is by using Google Colab. This means that you just need to launch your browser and open the desired page. After that, the cloud system will allocate resources for you and allow you to execute any code.
The plus is that you donât need to install anything on your computer. The cloud takes care of everything, and you just write and run code.
Data version control open source ML tools
There will be multiple machine learning model versions before you finish up. To make sure nothing gets lost, use a robust and trustworthy data version control system where every change is trackable.
Data Version Control (DVC)
DVC is a tool designed for managing software versions in ML projects. Itâs useful both for experimentation and for deploying models to production. DVC runs on top of Git, uses its infrastructure, and has a similar syntax.
- Fully-automated version control
DVC creates metafiles to describe pipelines and versioned files that need to be saved in the Git history of your project. If you transfer some data under the control of DVC, it will start tracking all changes.
- Git-based modification tracking
You can work with data the same way as with Git: save a version, send it to a remote repository, get the required version of the data, and change and switch between versions. The DVC interface is intuitively clear.
Overall, DVS is an excellent tool for data and model versioning. If you donât need pipelines and remote repositories, you can version data for a specific project working on a local machine. DVC allows you to work very quickly with tens of gigabytes of data.
However, it also allows you to exchange data and models between teams. For data storage, you can use cloud solutions.
Pachyderm
Pachyderm is a Git-like tool for tracking transformations in your data. It keeps track of data lineage and ensures that data is kept relevant.
Pachyderm is useful because it provides:
- Traceability
You want your data to be fully traceable from the moment itâs raw to the final prediction. With its version control for data, Pachyderm gives you a fully transparent view of your data pipelines. It can be a challenge; for example, when multiple transformers use the same dataset, it can be hard to say why you get this or that result.
- Reproducibility
Pachyderm is a step forward to the reproducibility of your data science models. You will always be assured that your clients can get the same results after the model is handed down to them.
Pachyderm stores all your data in one central location and updates all the changes. No transformation will pass unnoticed.
Data inspection open source ML tools
Alibi Detect
Alibi Detect is an open-source Python library by SeldonIO which also provide Seldon Core which we discussed earlier. This library allows you to inspect your dataâs integrity. It offers features like outlier, adversarial, and drift detection for tabular data, text, images and time series. It is compatible with TensorFlow and PyTorch backends.
Abili Detect offers a variety of methods for inspecting your dataâs integrity. The documentation is pretty neat and also offers a examples for better understanding. I highly recommend you to go through the documentation as it will be extremely beneficial.
If you are using frameworks like TensorFlow and PyTorch then this would be the best reasons to Abili Detect as it will create a smooth transition in the machine learning pipeline. Another reason to use this library in your machine learning workflow is because it provides built-in preprocessing steps. This feature essentially enables you to detect drift while using the transformers library. It also helps you to extract hidden layer from machine learning models.
Frouros
Frouros is an open source Python library aimed only to address drift detection. Unlike Abili Detect which offers inspection for outlier and adversarial detection, Frouros is only focused on drift detection. This library is special because it offers classical and more recent algorithms for detecting both data and concept drift.
Frouros is also a lightweight library which works with Scikit-Learn, Numpy, PyTorch, and other frameworks. It offers a wide variety of methods which will be suitable for largely only univariant datasets and a few multivariate datasets as well.
So as a final verdict, this library is good for people who want to explore the concept of data drifts in univariant datasets. But since this library offers a vast range of algorithms it is a good place to learn and even deploy in a fairly small project.
Model serving open source ML tool
StreamLit
Streamlit is an open-source Python library that is used for creating interactive web applications mostly related to data science and ML projects. Streamlit comes under the framework category, but since it only allows you to deploy the ML application I have put it under the tools category.
Anyways, StreamLit allows you to build web-based dashboards, visualizations, and applications with minimal effort. Some of the key features include:
- Rapid Prototyping
As mentioned previously you can create interactive applications by writing Python code that directly interacts with your data and visualizations
- Simplicity
The library is designed to be user-friendly, with a simple and intuitive API calling functions. You can create interactive widgets with just a few lines of code.
- Data Visualization
Streamlit supports integration with popular data visualization libraries like Matplotlib, Plotly, and Altair, enabling you to display charts and graphs in your web application.
- Customization
While Streamlit is straightforward to use out of the box, you can also customize the appearance and layout of your apps using CSS styling and additional layout components.
- Integration
You can integrate your Streamlit apps with machine learning models, data analysis scripts, and other Python-based functionalities to create cohesive data-driven machine learning applications.
- Interactivity
Streamlit’s widgets and features allow users to interact with data, adjust parameters, and see real-time updates in the app’s visualizations.
- Sharing and Deployment
You can deploy your Streamlit apps on various platforms, including cloud services, making it easy to share your work with others.
- Community and Extensions
Streamlit has a growing community and supports a range of extensions and integrations, allowing you to enhance the functionality of your apps.
Streamlit is particularly well-suited for scenarios where you want to create simple and interactive data visualization tools or prototypes without investing a significant amount of time in web development. It’s commonly used by data scientists and engineers who want to showcase their data analysis and machine learning results in an accessible and engaging manner.
TorchServe
TorchServe is an open-source model serving tool, made by Facebook AI. It is engineered to simplify the deployment and management of PyTorch models, aligning seamlessly with your MLOps workflows. Let’s delve into why TorchServe is a compelling choice for model management and inference in the MLOps landscape.
- Efficient Model Management
One of TorchServe’s standout features is its robust Model Management API. It empowers MLOps practitioners with multi-model management capabilities, allowing the allocation of models to workers in an optimized manner. This means you can effortlessly handle multiple models, versioning, and configurations while ensuring resource allocation is fine-tuned for peak performance.
- Versatile Inference Support
TorchServe extends its capabilities through its Inference API, offering support for both REST and gRPC protocols. But it doesn’t stop there; it’s equipped for batched inference, optimizing the prediction process for both single and multiple data points. This versatility ensures that your models can be integrated seamlessly into a wide array of applications.
- Complex Deployments Made Simple
For those tackling intricate deployments involving complex Directed Acyclic Graphs (DAGs) with interdependent models, TorchServe comes to the rescue. Its TorchServe Workflows feature enables the deployment of these intricate setups, giving you the flexibility needed to cater to demanding real-world scenarios.
- Wide Adoption in Leading MLOps Platforms
TorchServe’s reputation extends beyond its own ecosystem. It serves as the default choice for serving PyTorch models within platforms like Kubeflow, MLflow, SageMaker, Google Vertex AI, and Kserve, supporting both v1 and v2 APIs. This widespread adoption speaks volumes about its effectiveness and compatibility within the MLOps landscape.
- Optimized Inference Export
In the quest for optimized inference, TorchServe offers a suite of options. Whether it’s TorchScript right out of the box, ONNX, ORT, IPEX, or TensorRT, you have the freedom to export your model in a format that suits your specific performance requirements. This flexibility ensures that your models are primed for efficient execution.
- Performance at the Core
MLOps professionals know that performance is paramount. TorchServe recognizes this and provides built-in support to optimize, benchmark, and profile both PyTorch models and TorchServe itself. This means you can fine-tune your deployments for optimal throughput and responsiveness.
- Expressive Handlers for Custom Use Cases
Handling inferencing for diverse use cases is a breeze with TorchServe’s expressive handler architecture. It simplifies the process of customizing inferencing for your unique requirements, and it comes with a plethora of out-of-the-box solutions to cater to various scenarios.
- Comprehensive Metrics and Monitoring
Monitoring the health and performance of your models is vital. TorchServe comes with a Metrics API that offers out-of-the-box support for system-level metrics. It seamlessly integrates with Prometheus for metric exports, and it also supports custom metrics. Moreover, it aligns seamlessly with PyTorch’s profiler for in-depth performance analysis.
TorchServe seamlessly integrates with leading MLOps platforms and empowers you to deploy and manage models efficiently. If you’re seeking a robust solution to elevate your MLOps workflows, TorchServe deserves a prominent place in your toolkit.
Testing and maintenance open source ML tools
The final step of ML development is testing and maintenance after the main jobs are done. Special tools allow you to make sure that the results are reproducible in the long run.
Prometheus
Prometheus is an open-sourced monitoring toolkit built by Soundcloud. This toolkit has a very active community, and it is well-supported by a large number of organisation. The fundamental concept of Prometheus is that it stores all data and metrics in a time series format. This means that metrics collected during the monitoring phase is associated with a timestamp.
This is a reason why Prometheus fits very well with timeseries data. It also supports multi-dimensional data collection along with querying the dataset. This means you can use Prometheus to log your ML system metrics.
The image above represents how metrics can be logged into the time series database, and later the same can be retrieved via endpoints.
Some of the highlighted key features are:
- Standalone servers
Each Prometheus server is a standalone server which means they are independent of others making it reliable.
- PromQL
A powerful query language that allows searching, slicing, and dicing of time series data. With PromQL you can also generate graphs, table, and alerts on Prometheus’s expression browser.
- Efficient storage
The data is stored in memory and a local on-disk time series database in a custom format. This allows efficient scaling as well.
- Dimensional Data
The keyconcept of Prometheus is storing data in a time series format. Because of this you can select any timeframe to understand the behaviour of your model. On top of that, you can create a visualization dashboard using Grafana.
If you want a general-purpose lightweight tool to collect and log metrics about your system then Prometheus is a must.
ModsysML
ModsysML is an extremely new MLOps tool that allows users to test, automate workloads and compare outputs, improve data quality, and catch regressions all in a single API. This enables you to automate, accelerate and backtest the entire process of running proactive intelligence and insights through testing data quality.
ModsysML streamlines the process of meticulously refining AI systems across a diverse range of pertinent test cases. By meticulously scrutinizing and contrasting outputs, it constructs workflows that facilitate decision-making. Users can expedite the assessment of quality and promptly identify regressions.
The suite of tools we offer encompasses three fundamental functions:
- Conducting performance benchmarks for AI systems with respect to precise outcomes.
- Crafting automated tasks or revisiting established ones for a thorough evaluation.
- Detecting immediate fluctuations within data streams.
Empowered by a user interface (UI) and a Python library, you possess the means to intricately calibrate your AI systems for particular use cases. This encompasses the creation of automated workflows as well as deriving data-driven insights from real-time shifts within your datasets.
Deepchecks
We come across another open-source tool that allows you to thoroughly evaluate and test the integrity of the data as well the ML model. Deepchecks offer continuous evaluation from research to production. It has a strong and active community backing it up.
Deepchecks cater to tabular, NLP, and computer vision (CV) datasets. It offers four solutions:
- 1 Testing
- 2 CI/CD
- 3 Monitoring
- 4 Root Cause Analysis
Deepchecks offer a convenient avenue for detecting imperfections within data and ML models, while also enabling proactive steps toward enhancement. Its features, the Suite, prove particularly advantageous by facilitating an in-depth assessment of diverse data and ML model facets, subsequently generating valuable reports.
To facilitate a clearer grasp, a selection of the predefined checks carried out within a suite, along with their functions, is outlined below:
- Dataset Integrity
Employed to ascertain the accuracy and comprehensiveness of the dataset.
- Train-Test Validation
A set of checks is devised to ascertain the appropriateness of the data split for the model training and testing phases.
- Model Evaluation
A set of checks is performed to gauge model performance, its adaptability to diverse scenarios, and any indicators of overfitting.
One of the reasons why Deepcheck will fit in your workflow is because of the automated solutions it offers especially root cause analysis. It essentially expedites the process of grasping the fundamental source of the problem across the entire model lifecycle, allowing you to swiftly discern the underlying cause of the issue. It promises to give you granular details of the issue.
Experiment tracking open source ML tools
Aim
Aim stands as an open-source, self-hosted AI Metadata monitoring solution tailored to manage vast volumes of tracked metadata sequences, numbering in the tens of thousands.
Aim presents an efficient and visually pleasing user interface (UI) that facilitates the exploration and juxtaposition of metadata, encompassing elements such as training runs or agent executions. What’s more, its software development kit (SDK) grants the capability for programmatic interaction with the tracked metadataâan ideal feature for streamlined automation and analysis within Jupyter Notebooks.
Some of the key features are:
- Streamlined Run Comparisons
Effortlessly contrast various runs to expedite the model-building process.
- In-Depth Run Inspection
Immerse yourself in the minutiae of each run, facilitating seamless troubleshooting.
- Centralized Repository of Pertinent Details
All pertinent information is centralized, ensuring hassle-free governance and management.
Aim can handle up to 100,000 metadata sequences which is why it can be one of the best fits in your ML stack. Apart from that, it has a beautiful UI which functional and appealing to the eyes.
Guild AI
Guild AI serves as an open source toolkit that streamlines and enhances the efficiency of machine learning experiments. It stands as an all-encompassing ML engineering toolkit with an array of capabilities.
- Automated Experiment Tracking
Guild AI lets you run original training scripts, capturing unique experiment results and provides tools for analysis, visualization, and comparison.
- Hyperparameter Tuning with AutoML
Harness AutoML for hyperparameter tuning by automating trials with grid search, random search, and Bayesian optimization techniques.
- Comparison and Analysis
Compare and analyze experiment runs to gain insights and enhance your model’s performance.
- Efficient Backup and Archiving
Secure training-related operations like data preparation and testing and archive runs to remote systems such as S3.
- Remote Operations and Acceleration
Perform operations remotely on cloud accelerators, optimizing your workflow efficiency.
- Model Packaging and Reproducibility
Package and distribute models for seamless reproducibility across different environments.
- Streamlined Pipeline Automation
Enable automated pipelines for smoother workflow execution.
- Scheduling and Parallel Processing
Utilize scheduling and parallel processing to optimize resource utilization.
- Remote Training and Management
Conduct remote training, backup, and restoration of experiments for enhanced flexibility.
If you are looking for a tool that offers automated experiment management, optimization, and insights that streamline and enhance machine learning workflows, then Guild AI is tool of choice.
Model interpretability open source ML tools
Alibi Explain
Alibi Explain is another tool from SeldonIO. It stands as an open-source Python library with a primary focus on the explainability and interpretation of ML models. The library is dedicated to furnishing top-tier implementations of explanation methods, encompassing black-box, white-box, local, and global approaches tailored for both classification and regression models.
Within Alibi Explain, a collection of algorithms or methodologies, termed explainers, are at your disposal. Each explainer serves as a conduit for obtaining insights into a model’s behavior. The array of insights attainable, contingent upon a trained model, is influenced by several variables.
To know more please read their documentation here. It is one of the most pleasing tools in this list.
Broadly speaking, the range of explainers available from Alibi is bounded by:
- The nature of the data the model handles, encompassing images, tabular data, or text.
- The task performed by the model, namely regression or classification.
- The specific model type employed, including neural networks and random forests.
Explainibility in general is one of the most sought features in the ML world. It is because as humans we are curious to know what is happening inside a closed. If you are working in medicine or healthcare or any sort of life-related industry then this tool is a must in your arsenal.
Conclusion
Open source MLOps tools are necessary. They help you automate a large amount of routine work without costing a fortune. Fully-fledged platforms offer a wide selection of tools for different purposes, for whatever technological stack you might desire. In practice, however, it often turns out that you still need to integrate them with specialized tools that are more intuitive to use. Luckily, most open-source tools make the integration as seamless as possible.
However, an important thing to understand about open-source tools is that you shouldnât expect them to be completely free of charge: the costs of infrastructure, support, and maintenance of your ML projects will still be on you.