Flera globala sektorer börjar investera mer i maskininlärning (ML).
ML-modeller kan initialt lanseras och drivas av team av specialister, men ett av de största hindren är att överföra kunskapen till nästa modell så att processer kan utökas.
För att förbättra och standardisera processerna som är involverade i modelllivscykelhantering, används MLOps-tekniker i allt större utsträckning av teamen som skapar modeller för maskininlärning.
Fortsätt läsa för att ta reda på mer om några av de bästa MLOps-verktygen och plattformarna som finns tillgängliga idag och hur de kan göra maskininlärning enklare ur verktygs-, utvecklar- och procedursynpunkt.
Vad är MLOps?
En teknik för att skapa policyer, normer och bästa praxis för modeller för maskininlärning kallas "maskininlärningsoperationer" eller "MLOps".
MLOps syftar till att garantera att hela livscykeln för ML-utveckling – från idé till implementering – är noggrant dokumenterad och hanterad för bästa resultat snarare än att investera mycket tid och resurser i det utan en strategi.
Målet med MLOps är att kodifiera bästa praxis på ett sätt som gör utvecklingen av maskininlärning mer skalbar för ML-operatörer och -utvecklare, samt att förbättra kvaliteten och säkerheten för ML-modeller.
Vissa hänvisar till MLOps som "DevOps för maskininlärning" eftersom det framgångsrikt tillämpar DevOps-principer på ett mer specialiserat område för teknisk utveckling.
Det här är ett användbart sätt att tänka på MLOps eftersom det, precis som DevOps, betonar kunskapsdelning, samarbete och bästa praxis mellan team och verktyg.
MLOps förser utvecklare, datavetare och driftsteam med ett ramverk för att samarbeta och, som ett resultat, producera de mest kraftfulla ML-modellerna.
Varför använda MLOps-verktyg?
MLOps-verktyg kan utföra ett brett spektrum av uppgifter för ett ML-team, men de är ofta uppdelade i två grupper: plattformsadministration och individuell komponenthantering.
Medan vissa MLOps-produkter bara fokuserar på en enda kärnfunktion, såsom data- eller metadatahantering, antar andra verktyg en mer allomfattande strategi och tillhandahåller en MLOps-plattform för att kontrollera flera aspekter av ML:s livscykel.
Leta efter MLOps-lösningar som hjälper ditt team att hantera dessa ML-utvecklingsområden, oavsett om du letar efter en specialist eller ett mer brett verktyg:
- Hantering av data
- Design och modellering
- Ledning av projekt och arbetsplats
- ML-modellinstallation och kontinuerligt underhåll
- Livscykelhantering från början till slut, vilket vanligtvis erbjuds av MLOps-plattformar med full service.
MLOps-verktyg
1. MLFlow
Maskininlärningslivscykeln styrs av plattformen MLflow med öppen källkod och inkluderar en central modellregistrering, implementering och experimentering.
MLflow kan användas av lag i alla storlekar, både individuellt och kollektivt. Bibliotek har ingen betydelse för verktyget.
Alla programmeringsspråk och maskininlärningsbibliotek kan använda det.
För att göra det enklare att träna, distribuera och hantera maskininlärningsapplikationer interagerar MLFlow med ett antal ramverk för maskininlärning, inklusive TensorFlow och Pytorch.
Dessutom tillhandahåller MLflow lättanvända API:er som kan inkluderas i alla befintliga maskininlärningsprogram eller bibliotek.
MLflow har fyra nyckelfunktioner som underlättar spårning och planering av experiment:
- MLflow Tracking – ett API och användargränssnitt för att logga maskininlärningskodparametrar, versioner, mätvärden och artefakter samt för att därefter visa och kontrastera resultaten
- MLflow Projects – förpackning av maskininlärningskod i ett återanvändbart, reproducerbart format för överföring till produktion eller delning med andra datavetare
- MLflow-modeller – underhålla och distribuera modeller till en rad modellserver- och slutledningssystem från olika ML-bibliotek
- MLflow Model Registry – en central modellbutik som möjliggör kooperativ hantering av en MLflow-modells hela livslängd, inklusive modellversionering, stegövergångar och kommentarer.
2. KubeFlow
ML-verktygslådan för Kubernetes heter Kubeflow. Packa och hantera Docker-containrar, hjälper till vid underhåll av maskininlärningssystem.
Genom att förenkla körorkestrering och implementeringar av arbetsflöden för maskininlärning främjar det skalbarheten hos modeller för maskininlärning.
Det är ett projekt med öppen källkod som inkluderar en noggrant utvald grupp av kompletterande verktyg och ramverk skräddarsydda för olika ML-behov.
Långa ML-utbildningsuppgifter, manuella experiment, repeterbarhet och DevOps-utmaningar kan hanteras med Kubeflow Pipelines.
För flera stadier av maskininlärning, inklusive utbildning, pipelineutveckling och underhåll av Jupyter anteckningsböcker, erbjuder Kubeflow specialiserade tjänster och integration.
Det gör det enkelt att hantera och spåra livslängden för dina AI-arbetsbelastningar samt att distribuera modeller för maskininlärning (ML) och datapipelines till Kubernetes-kluster.
Det ger:
- Anteckningsböcker för att använda SDK för att interagera med systemet
- ett användargränssnitt (UI) för att kontrollera och övervaka körningar, jobb och experiment
- Att snabbt designa end-to-end-lösningar utan att behöva bygga om varje gång, och återanvända komponenter och pipelines.
- Som en nyckelkomponent i Kubeflow eller som en fristående installation erbjuds Kubeflow Pipelines.
3. Dataversionskontroll
En versionskontrolllösning med öppen källkod för maskininlärningsprojekt kallas DVC, eller Data Version Control.
Vilket språk du än väljer är det ett experimentellt verktyg som hjälper dig att definiera pipeline.
DVC använder kod, dataversionering och reproducerbarhet för att hjälpa dig att spara tid när du upptäcker ett problem med en tidigare version av din ML-modell.
Dessutom kan du använda DVC-pipelines för att träna din modell och distribuera den till dina teammedlemmar. Big data-organisation och versionshantering kan hanteras av DVC, och data kan lagras på ett lättillgängligt sätt.
Även om den innehåller några (begränsade) experimentspårningsfunktioner, fokuserar den mest på data- och pipelineversionering och -hantering.
Det ger:
- Det är lagringsagnostisk, därför är det möjligt att använda en mängd olika lagringstyper.
- Det ger också spårningsstatistik.
- ett förbyggt sätt att sammanfoga ML-steg till en DAG och köra hela pipelinen från början till slut
- Varje ML-modells hela utveckling kan följas med hjälp av dess hela kod och data härkomst.
- Reproducerbarhet genom att troget bevara den ursprungliga konfigurationen, indata och programkoden för ett experiment.
4. Tjockhuding
Pachyderm är ett versionskontrollprogram för maskininlärning och datavetenskap, liknande DVC.
Dessutom, eftersom det skapades med hjälp av Docker och Kubernetes, kan den köra och distribuera Machine Learning-applikationer på vilken molnplattform som helst.
Pachyderm garanterar att varje bit data som konsumeras i en maskininlärningsmodell kan spåras tillbaka och versioneras.
Den används för att skapa, distribuera, hantera och hålla ett öga på modeller för maskininlärning. Ett modellregister, ett modellhanteringssystem och en CLI-verktygslåda ingår alla.
Utvecklare kan automatisera och utöka sin livscykel för maskininlärning med Pachyderms databas, vilket också säkerställer repeterbarhet.
Det stöder stränga datastyrningsstandarder, sänker databearbetnings- och lagringskostnader och hjälper företag att få ut sina datavetenskapliga initiativ på marknaden snabbare.
5. polyaxon
Med hjälp av Polyaxon-plattformen kan maskininlärningsprojekt och applikationer för djupinlärning replikeras och hanteras över hela deras livscykel.
Polyaxon kan vara värd för och administrera verktyget, och det kan placeras i alla datacenter eller molnleverantörer. Som Torch, Tensorflow och MXNet, som stöder alla de mest populära ramverken för djupinlärning.
När det kommer till orkestrering låter Polyaxon dig få ut det mesta av ditt kluster genom att schemalägga uppgifter och tester via deras CLI, instrumentpanel, SDK:er eller REST API.
Det ger:
- Du kan använda öppen källkodsversionen just nu, men den innehåller också val för företaget.
- Även om den täcker hela livscykeln, inklusive körorkestrering, är den kapabel till mycket mer.
- Med tekniska referensdokument, riktlinjer för att komma igång, läromedel, manualer, handledningar, ändringsloggar och mer är det en mycket väldokumenterad plattform.
- Med instrumentpanelen för experimentinsikter är det möjligt att hålla ett öga på, spåra och utvärdera varje optimeringsexperiment.
6. Komet
Comet är en plattform för metamaskininlärning som spårar, kontrasterar, förklarar och förbättrar experiment och modeller.
Alla dina experiment kan ses och jämföras på en plats.
Den fungerar för alla maskininlärningsuppgifter, var som helst din kod utförs och med vilket maskininlärningsbibliotek som helst.
Comet är lämplig för grupper, individer, akademiska institutioner, företag och alla andra som snabbt vill visualisera experiment, effektivisera arbetet och genomföra experiment.
Dataforskare och team kan spåra, förtydliga, förbättra och jämföra experiment och modeller med hjälp av den självvärdade och molnbaserade metamaskininlärningsplattformen Comet.
Det ger:
- Det finns många möjligheter för teammedlemmar att dela uppgifter.
- Den har flera integrationer som gör det enkelt att koppla det till andra teknologier
- Fungerar bra med nuvarande ML-bibliotek
- Tar hand om användarhantering
- Jämförelse av experiment är aktiverad, inklusive en jämförelse av kod, hyperparametrar, mätvärden, förutsägelser, beroenden och systemmått.
- Tillhandahåller distinkta moduler för vision, ljud, text och tabelldata som låter dig visualisera prover.
7. Välja
Optuna är ett system för autonom hyperparameteroptimering som kan appliceras på både maskininlärning och djupinlärning samt andra områden.
Den innehåller en mängd banbrytande algoritmer från vilka du kan välja (eller länka), gör det mycket enkelt att distribuera träning över flera datorer och erbjuder attraktiv resultatvisualisering.
Populära maskininlärningsbibliotek som PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM och XGBoost är alla integrerade med den.
Det tillhandahåller banbrytande algoritmer som gör det möjligt för kunder att få resultat snabbare genom att snabbt minska antalet prover som inte ser lovande ut.
Med Python-baserade algoritmer söker den automatiskt efter de idealiska hyperparametrarna. Optuna uppmuntrar parallelliserade hyperparametersökningar i många trådar utan att ändra den ursprungliga koden.
Det ger:
- Den stöder distribuerad utbildning på ett kluster såväl som en enda dator (multi-process) (multinod)
- Den stöder flera trimningstekniker för att påskynda konvergens (och använda mindre beräkning)
- Den har en mängd potenta visualiseringar, som skivplot, konturplot och parallella koordinater.
8. Kedro
Kedro är ett gratis Python-ramverk för att skriva kod som kan uppdateras och underhållas för datavetenskapliga projekt.
Den för med sig idéer från bästa praxis inom mjukvaruteknik till maskininlärningskod. Python är grunden för detta arbetsflödesorkestreringsverktyg.
För att göra dina ML-processer enklare och mer exakta kan du utveckla reproducerbara, underhållbara och modulära arbetsflöden.
Kedro införlivar programvarutekniska principer som modularitet, ansvarsfördelning och versionshantering i en maskininlärningsmiljö.
På basis av Cookiecutter Data Science tillhandahåller den ett gemensamt, anpassningsbart projektramverk.
Ett antal enkla dataanslutningar som används för att lagra och ladda data över flera filsystem och filformat, hanteras av datakatalogen. Det gör maskininlärningsprojekt mer effektiva och gör det enklare att bygga upp en datapipeline.
Det ger:
- Kedro tillåter antingen spridd eller ensam maskininstallation.
- Du kan automatisera beroenden mellan Python-kod och visualisering av arbetsflöden med hjälp av pipelineabstraktion.
- Genom användningen av modulär, återanvändbar kod, underlättar denna teknik teamsamarbete på en mängd olika nivåer och förbättrar produktiviteten i kodningsmiljön.
- Det primära målet är att övervinna nackdelarna med Jupyter-anteckningsböcker, enstaka skript och limkod genom att skriva underhållbar datavetenskaplig programmering.
9. BentoML
Att bygga API-slutpunkter för maskininlärning görs enklare med BentoML.
Det tillhandahåller en typisk men ändå förtätad infrastruktur för att flytta inlärda maskininlärningsmodeller till produktion.
Det gör att du kan paketera inlärda modeller för användning i en produktionsmiljö och tolka dem med valfritt ML-ramverk. Både offline-batchservering och online-API-servering stöds.
En högpresterande modellserver och ett flexibelt arbetsflöde är funktioner i BentoML.
Dessutom erbjuder servern adaptiv mikrobatchning. En enhetlig metod för att organisera modeller och hålla reda på distributionsprocedurer tillhandahålls av UI-instrumentpanelen.
Det kommer inte att finnas någon serverstopp eftersom driftmekanismen är modulär och konfigurationen är återanvändbar. Det är en flexibel plattform för att tillhandahålla, organisera och distribuera ML-modeller.
Det ger:
- Den har en modulär design som är anpassningsbar.
- Det möjliggör distribution på flera plattformar.
- Den kan inte automatiskt hantera horisontell skalning.
- Det möjliggör ett enda modellformat, modellhantering, modellförpackning och högpresterande modellservering.
10. Seldon
Dataforskare kan skapa, distribuera och hantera maskininlärningsmodeller och experiment i stor skala på Kubernetes med hjälp av Seldon Core-ramverket med öppen källkod.
TensorFlow, sci-kit-learn, Spark, R, Java och H2O är bara några av verktygen som stöds av den.
Den har också gränssnitt med Kubeflow och RedHats OpenShift. Seldon-kärnan omvandlar maskininlärningsmodeller (ML-modeller) eller språkomslag (språk som Python, Java, etc.) till produktions-REST/GRPC-mikrotjänster.
Ett av de bästa MLOps-verktygen för att förbättra maskininlärningsprocesser är detta.
Det är enkelt att containerisera ML-modeller och testa för användbarhet och säkerhet med Seldon Core.
Det ger:
- Modellplacering kan göras enklare med flera alternativ, såsom kanariefågel.
- För att förstå varför specifika förutsägelser gjordes, använd modellförklaringar.
- När problem uppstår, håll ett öga på produktionsmodellerna med hjälp av varningssystemet.
Slutsats
MLOps kan hjälpa till att göra maskininlärning bättre. MLOps kan påskynda distributionen, göra datainsamling och felsökning enklare och förbättra samarbetet mellan ingenjörer och datavetare.
För att du ska kunna välja det MLOps-verktyg som bäst passar dina behov undersökte detta inlägg 10 populära MLOps-lösningar, varav de flesta är öppen källkod.
Kommentera uppropet