Machine Learning Operations
https://ml-ops.org/
With Machine Learning Model Operationalization Management (MLOps), we want to provide an end-to-end machine learning development process to design, build and manage reproducible, testable, and evolvable ML-powered software.
Getting started
Being an emerging field, MLOps is rapidly gaining momentum amongst Data Scientists, ML Engineers and AI enthusiasts. Following this trend, the Continuous Delivery Foundation SIG MLOps differentiates the ML models management from traditional software engineering and suggests the following MLOps capabilities:
- MLOps aims to unify the release cycle for machine learning and software application release.
- MLOps enables automated testing of machine learning artifacts (e.g. data validation, ML model testing, and ML model integration testing)
- MLOps enables the application of agile principles to machine learning projects.
- MLOps enables supporting machine learning models and datasets to build these models as first-class citizens within CI/CD systems.
- MLOps reduces technical debt across machine learning models.
- MLOps must be a language-, framework-, platform-, and infrastructure-agnostic practice.
MLOps: Machine Learning Life Cycle
https://www.ml4devs.com/articles/mlops-machine-learning-life-cycle/#formulate
Building machine learning products or ML-assisted product features involve two distinct disciplines:
Model Development: Data Scientists — highly skilled in statistics, linear algebra, and calculus — train, evaluate, and select the best-performing statistical or neural network model.
Model Deployment: Developers — highly skilled in software design and engineering — build a robust software system, deploy it on the cloud, and scale it to serve a huge number of concurrent model inference requests.
Of course, that is a gross over-simplification. It takes several other vital expertise in building useful and successful ML-assisted products:
Data Engineering: Build data pipelines to collect data from disparate sources, curate and transform it, and turn it into homogenous, clean data that can be safely used for training models.
Product Design: Understand business needs, identify impactful objectives and relevant business matrices; define product features or user stories for those objectives, recognize the underlying problems that ML is better suitable to solve; design user experience to not only utilize ML model prediction seamlessly with rest of the product features but also collect user (re)action as implicit evaluation of the model results, and use it to improve the models.
Security Analysis: Ensure that the software system, data, and model are secure, and no Personally Identifiable Information (PII) is revealed by combining model results and other publicly available information or data.
AI Ethics: Ensure adherence to all applicable laws, and add measures to protect against any kind of bias (e.g. limit the scope of the model, add human oversight, etc.)
Getting Started with MLOps
https://www.datacamp.com/blog/getting-started-with-mlops
MLOps vs DevOps—what is the difference?
In the previous section, we broke down why machine learning needs a specialized operations function. However, how does MLOps differ from DevOps in practice?
DevOps is a contraction of Development (Dev) and Operations (Ops). It combines two essential functions of the IT department: application development and systems engineering. DevOps tries to shorten development cycles—and accelerate the velocity of output for software engineering teams. It does so by introducing automation, updated processes, and working methods for development teams. More broadly, DevOps brings in two principles to the software development process:
- Continuous Integration (CI)—the process of making frequent, small iterations to version control repositories. This alleviates dealing with deployment issues as code is deployed into production frequently.
- Continuous Delivery (CD)—the process of automating the steps needed to deliver applications and software to production environments.
Given the unique nature of machine learning, here are some practical ways MLOps differs from DevOps:
- Continuous Integration is extended from testing and validating code, to also testing and validating models and data
- Continuous Delivery is extended from automating steps to delivering applications into production to automatically delivering data pipelines that trigger a machine learning prediction
- Continous Training is introduced—which is unique to machine learning—where models are automatically retrained for deployment
- Continuous Monitoring is introduced—which monitors production data breaks in quality, model performance, and business metrics tied to the machine learning model
Reimagining data roles for MLOps
In smaller data science teams, one person can have more than one role and wear many hats. However, in bigger, more processed data teams, you can find a variety of roles and skills that own different elements of the MLOps workflow. These roles can be seen as follows:
- Data Scientist: Often seen as the major player in any MLOps team, data scientists are experts who use the company’s data to generate value. Their role is to understand, structure, and interpret this data to bring and provide insights from this data in the form of predictive models. They create, test, and evaluate machine learning models. In some companies, also deploy and monitor the models' performance once it’s in production.
- Data Engineer: Data Engineers are responsible for creating and maintaining the environment that allows almost every other function in the data team to operate. They are responsible for developing, building, maintaining, and testing architectures, such as databases and processing systems. In simple terms, they enable the flow of data from extraction, to transformation, to delivery.
- Software Engineer: In an MLOps process, software engineers are in charge of integrating machine learning models into the company’s applications and systems. They also work on ensuring that machine learning models work effortlessly with any non-machine learning-based applications within the company.
- Machine Learning Engineer: The machine learning engineer is at the crossroads of data science and data engineering. The role of the machine learning engineer is to optimize and put into production the models developed by the data scientist within the infrastructure prepared by the data engineer.
Tools to consider for MLOps
Kubeflow: Kubeflow is a suite of tools for running Machine Learning workflows on Kubernetes clusters. The goal of Kubeflow is to enable the best open-source machine learning solutions to run on a Kubernetes cluster in a simple, portable, and scalable way. Originally Kubeflow was the open-source implementation of TensorFlow Extended (TFX), which is an end-to-end platform for deploying machine learning pipelines in production. Kubeflow thus allowed to simplify the execution of TensorFlow jobs on KubernetesMLFlow: MLflow is a tool for industrializing the end-to-end development process of Machine Learning projects. Its ambition is to simplify the development of Machine Learning projects in companies by facilitating models' monitoring, reproduction, management, and deployment.
Data Version Control (DVC): DVC (Data Version Control) is a Python package that makes managing your data science projects easier. This tool is an extension of Git for Machine Learning, as stated by its main contributor Dmitry Petrov in this presentation. DVC is both comparable and complementary to Git.
Pachyderm: Pachyderm is a version control tool for machine learning and data science like DVC. On top of that, it is based on Docker and Kubernetes, which helps it run and deploy Machine Learning projects on any cloud platform. In addition, pachyderm ensures that all data ingested into a machine learning model is versioned and traceable.
标签:Operations,machine,Learning,models,Machine,learning,MLOps,model,data From: https://www.cnblogs.com/lightsong/p/18342121