Programmering

MLops: Fremgangen af ​​maskinlæringsoperationer

Så hårdt som det er for dataforskere at tagge data og udvikle nøjagtige maskinlæringsmodeller, kan styring af modeller i produktionen være endnu mere skræmmende. At anerkende modeldrift, omskoling af modeller med opdatering af datasæt, forbedring af ydeevne og vedligeholdelse af de underliggende teknologiplatforme er alle vigtige datavidenskabelige fremgangsmåder. Uden disse discipliner kan modeller producere fejlagtige resultater, der i væsentlig grad påvirker forretningen.

At udvikle produktionsklare modeller er ikke let. Ifølge en maskinlæringsundersøgelse havde 55 procent af virksomhederne ikke implementeret modeller i produktion, og 40 procent eller mere har brug for mere end 30 dage for at implementere en model. Succes medfører nye udfordringer, og 41 procent af respondenterne anerkender vanskeligheden ved versionering af maskinlæringsmodeller og reproducerbarhed.

Læren her er, at der opstår nye forhindringer, når maskinlæringsmodeller er implementeret til produktion og brugt i forretningsprocesser.

Modeladministration og operationer var engang udfordringer for de mere avancerede datavidenskabsteams. Nu inkluderer opgaver at overvåge produktionsmaskinelæringsmodeller for drift, automatisere omskoling af modeller, advare, når drift er signifikant og genkende, hvornår modeller kræver opgraderinger. Da flere organisationer investerer i maskinlæring, er der et større behov for at skabe opmærksomhed omkring modelstyring og drift.

Den gode nyhed er platforme og biblioteker som open source MLFlow og DVC, og kommercielle værktøjer fra Alteryx, Databricks, Dataiku, SAS, DataRobot, ModelOp og andre gør modelstyring og drift lettere for datalogiske teams. De offentlige cloud-udbydere deler også praksis, såsom implementering af MLops med Azure Machine Learning.

Der er flere ligheder mellem modelstyring og devops. Mange henviser til modelstyring og operationer som MLops og definerer det som den kultur, praksis og teknologier, der kræves for at udvikle og vedligeholde maskinlæringsmodeller.

Forståelse af modelstyring og drift

For bedre at forstå modelhåndtering og drift skal du overveje foreningen af ​​softwareudviklingspraksis med videnskabelige metoder.

Som softwareudvikler ved du, at det ikke er trivielt at færdiggøre versionen af ​​en applikation og implementere den til produktion. Men en endnu større udfordring begynder, når applikationen når produktionen. Slutbrugere forventer regelmæssige forbedringer, og den underliggende infrastruktur, platforme og biblioteker kræver patch og vedligeholdelse.

Lad os nu skifte til den videnskabelige verden, hvor spørgsmål fører til flere hypoteser og gentagne eksperimenter. Du lærte i videnskabsklassen at føre en log over disse eksperimenter og spore rejsen med at tilpasse forskellige variabler fra et eksperiment til det næste. Eksperimentering fører til forbedrede resultater, og dokumentation af rejsen hjælper med at overbevise jævnaldrende om, at du har udforsket alle variablerne, og at resultaterne er reproducerbare.

Dataforskere, der eksperimenterer med maskinlæringsmodeller, skal inkorporere discipliner fra både softwareudvikling og videnskabelig forskning. Maskinindlæringsmodeller er softwarekode udviklet på sprog som Python og R, konstrueret med TensorFlow, PyTorch eller andre maskinlæringsbiblioteker, kørt på platforme som Apache Spark og distribueret til skyinfrastruktur. Udvikling og support af maskinlæringsmodeller kræver betydelig eksperimentering og optimering, og dataforskere skal bevise nøjagtigheden af ​​deres modeller.

Ligesom softwareudvikling har maskinlæringsmodeller brug for løbende vedligeholdelse og forbedringer. Noget af det kommer fra vedligeholdelse af koden, biblioteker, platforme og infrastruktur, men dataforskere skal også være bekymrede for modeldrift. Enkelt sagt opstår modelafvikling, når nye data bliver tilgængelige, og forudsigelser, klynger, segmenteringer og anbefalinger fra maskinindlæringsmodeller afviger fra forventede resultater.

Vellykket modelstyring starter med at udvikle optimale modeller

Jeg talte med Alan Jacobson, Chief Data and Analytics Officer hos Alteryx, om hvordan organisationer lykkes og skalerer udvikling af maskinlæring. ”For at forenkle modeludviklingen er den første udfordring for de fleste dataforskere at sikre stærk problemformulering. Mange komplekse forretningsproblemer kan løses med meget enkel analyse, men det kræver først at strukturere problemet på en måde, som data og analyse kan hjælpe med at besvare spørgsmålet. Selv når komplekse modeller udnyttes, er den sværeste del af processen typisk at strukturere dataene og sikre, at de rigtige input bruges, er på de rigtige kvalitetsniveauer. ”

Jeg er enig med Jacobson. For mange implementeringer af data og teknologi starter med dårlige eller ingen problemangivelser og med utilstrækkelig tid, værktøjer og faglig ekspertise for at sikre tilstrækkelig datakvalitet. Organisationer skal først starte med at stille smarte spørgsmål om big data, investere i dataops og derefter bruge agile metoder inden for datavidenskab for at gentage løsninger.

Overvågning af maskinindlæringsmodeller til modeldrift

At få en præcis problemdefinition er afgørende for løbende styring og overvågning af modeller i produktionen. Jacobson fortsatte med at forklare, ”Overvågning af modeller er en vigtig proces, men at gøre det rigtigt kræver en stærk forståelse af de mål og potentielle bivirkninger, der berettiger til at se. Mens de fleste diskuterer overvågning af modelpræstationer og ændringer over tid, er det, der er vigtigere og udfordrende i dette rum, analysen af ​​utilsigtede konsekvenser. "

En nem måde at forstå modeldrift og utilsigtede konsekvenser er at overveje virkningen af ​​COVID-19 på maskinlæringsmodeller udviklet med træningsdata fra før pandemien. Maskinindlæringsmodeller baseret på menneskelig adfærd, naturlig sprogbehandling, forbrugermodeller eller svigmønstre er alle blevet påvirket af ændret adfærd under pandemien, der er rodet med AI-modeller.

Teknologileverandører frigiver nye MLops-funktioner, da flere organisationer får værdi og modner deres datavidenskabelige programmer. For eksempel introducerede SAS et funktionsbidragindeks, der hjælper dataforskere med at evaluere modeller uden en målvariabel. Cloudera annoncerede for nylig en ML-overvågningstjeneste, der registrerer metrics for teknisk ydeevne og spår af modelforudsigelser.

MLops behandler også automatisering og samarbejde

Imellem udvikling af en maskinlæringsmodel og overvågning af den i produktionen er der yderligere værktøjer, processer, samarbejde og kapaciteter, der gør det muligt at skalere datalogisk praksis. Nogle af automatiserings- og infrastrukturpraksis er analoge med devops og inkluderer infrastruktur som kode og CI / CD (kontinuerlig integration / kontinuerlig implementering) til maskinlæringsmodeller. Andre inkluderer udviklerfunktioner såsom versioneringsmodeller med deres underliggende træningsdata og søgning i modelarkivet.

De mere interessante aspekter af MLops bringer videnskabelig metode og samarbejde til datavidenskabsteams. DataRobot muliggør for eksempel en champion-udfordrer-model, der kan køre flere eksperimentelle modeller parallelt for at udfordre produktionsversionens nøjagtighed. SAS ønsker at hjælpe dataforskere med at forbedre hastigheden på markederne og datakvaliteten. Alteryx introducerede for nylig Analytics Hub for at hjælpe samarbejde og deling mellem datavidenskabsteams.

Alt dette viser, at styring og skalering af maskinindlæring kræver meget mere disciplin og praksis end blot at bede en datavidenskabsmand om at kode og teste et tilfældigt skov-, k-middel- eller foldningsneuralt netværk i Python.