Programmering

Sådan vælger du en cloud machine learning-platform

For at skabe effektive maskinindlærings- og dyb læringsmodeller har du brug for store mængder data, en måde at rense dataene på og udføre funktionsteknik på det og en måde at træne modeller på dine data på en rimelig tid. Så har du brug for en måde at implementere dine modeller på, overvåge dem for drift over tid og omskole dem efter behov.

Du kan gøre alt dette lokalt, hvis du har investeret i beregningsressourcer og acceleratorer såsom GPU'er, men du kan opleve, at hvis dine ressourcer er tilstrækkelige, er de også inaktive meget af tiden. På den anden side kan det nogle gange være mere omkostningseffektivt at køre hele pipelinen i skyen ved hjælp af store mængder beregningsressourcer og acceleratorer efter behov og derefter frigive dem.

Tech Spotlight: AI og maskinlæring

  • 5 succeshistorier inden for maskinindlæring: CIO (Inside Look)
  • AI på arbejdspladsen: Din næste kollega kan være en algoritme (Computerworld)
  • Hvor sikre er dine AI- og machine learning-projekter? (CSO)
  • Sådan vælger du en cloud machine learning-platform ()
  • Hvordan AI kan skabe selvkørende datacentre (Network World)

De store skyudbydere - og et antal mindre skyer - har lagt stor vægt på at opbygge deres maskinindlæringsplatforme for at understøtte hele maskinlæringslivscyklussen, fra planlægning af et projekt til opretholdelse af en model i produktion. Hvordan finder du ud af, hvilke af disse skyer der opfylder dine behov? Her er 12 funktioner, som hver ende-til-ende maskinlæringsplatform skal levere.

Vær tæt på dine data

Hvis du har de store mængder data, der er nødvendige for at oprette præcise modeller, vil du ikke sende det halvvejs rundt om i verden. Problemet her er ikke afstand, men det er tid: Dataoverførselshastighed er i sidste ende begrænset af lysets hastighed, selv på et perfekt netværk med uendelig båndbredde. Lange afstande betyder latenstid.

Det ideelle tilfælde til meget store datasæt er at opbygge modellen, hvor dataene allerede findes, så der ikke er behov for massedatatransmission. Flere databaser understøtter dette i begrænset omfang.

Det næstbedste tilfælde er, at dataene skal være på det samme højhastighedsnetværk som modelbygningssoftwaren, hvilket typisk betyder inden for det samme datacenter. Selv flytning af data fra et datacenter til et andet inden for en skytilgængelighedszone kan indføre en betydelig forsinkelse, hvis du har terabyte (TB) eller mere. Du kan afbøde dette ved at foretage trinvise opdateringer.

Det værste tilfælde ville være, hvis du skal flytte store data lange afstande over stier med begrænset båndbredde og høj latenstid. Trans-Pacific-kablerne, der går til Australien, er særdeles uhyggelige i denne henseende.

Støt en ETL- eller ELT-rørledning

ETL (eksport, transformation og indlæsning) og ELT (eksport, indlæsning og transformation) er to datapipelinekonfigurationer, der er almindelige i databaseverdenen. Maskinindlæring og dyb læring forstærker behovet for disse, især transformationsdelen. ELT giver dig mere fleksibilitet, når dine transformationer skal ændres, da belastningsfasen normalt er den mest tidskrævende for store data.

Generelt er data i naturen støjende. Det skal filtreres. Derudover har data i naturen forskellige intervaller: En variabel kan have et maksimum i millioner, mens en anden kan have et interval på -0,1 til -0,001. Til maskinindlæring skal variabler omdannes til standardiserede områder for at holde dem med store områder fra at dominere modellen. Præcis hvilket standardiseret interval afhænger af algoritmen, der bruges til modellen.

Støt et online miljø til modelbygning

Den traditionelle visdom plejede at være, at du skulle importere dine data til dit skrivebord til modelopbygning. Den store mængde data, der er nødvendig for at opbygge god maskinlæring og dyb læringsmodeller, ændrer billedet: Du kan downloade en lille stikprøve data til dit skrivebord til sonderende dataanalyse og modelopbygning, men for produktionsmodeller skal du have adgang til det fulde data.

Web-baserede udviklingsmiljøer såsom Jupyter Notebooks, JupyterLab og Apache Zeppelin er velegnede til modelbygning. Hvis dine data er i samme sky som det bærbare miljø, kan du bringe analysen til dataene og minimere den tidskrævende bevægelse af data.

Støtte opskalering og opskaleringstræning

Compute- og hukommelseskravene til notebooks er generelt minimale bortset fra træningsmodeller. Det hjælper meget, hvis en notesbog kan gyde træningsjob, der kører på flere store virtuelle maskiner eller containere. Det hjælper også meget, hvis træningen kan få adgang til acceleratorer som GPU'er, TPU'er og FPGA'er; disse kan gøre dage med træning til timer.

Understøtter AutoML og automatisk funktionsteknik

Ikke alle er gode til at vælge maskinlæringsmodeller, vælge funktioner (de variabler, der bruges af modellen) og konstruere nye funktioner fra de rå observationer. Selvom du er god til disse opgaver, er de tidskrævende og kan i høj grad automatiseres.

AutoML-systemer prøver ofte mange modeller for at se, hvilket resulterer i de bedste objektive funktionsværdier, for eksempel den mindste kvadratiske fejl for regressionsproblemer. De bedste AutoML-systemer kan også udføre funktionsudvikling og bruge deres ressourcer effektivt til at forfølge de bedst mulige modeller med de bedst mulige sæt funktioner.

Støt de bedste rammer for maskinlæring og dyb læring

De fleste dataforskere har yndlingsrammer og programmeringssprog til maskinindlæring og dyb læring. For dem, der foretrækker Python, er Scikit-learning ofte en favorit til maskinindlæring, mens TensorFlow, PyTorch, Keras og MXNet ofte er topvalg for dyb læring. I Scala har Spark MLlib tendens til at være foretrukket til maskinindlæring. I R er der mange native machine learning-pakker og en god grænseflade til Python. I Java vurderer H2O.ai meget, ligesom Java-ML og Deep Java Library.

Cloud machine learning og deep learning-platforme har tendens til at have deres egen samling af algoritmer, og de understøtter ofte eksterne rammer på mindst et sprog eller som containere med specifikke indgangspunkter. I nogle tilfælde kan du integrere dine egne algoritmer og statistiske metoder med platformens AutoML-faciliteter, hvilket er ret praktisk.

Nogle skyplatforme tilbyder også deres egne tunede versioner af større dyb læringsrammer. For eksempel har AWS en optimeret version af TensorFlow, som den hævder kan opnå næsten lineær skalerbarhed til dyb neuralt netværkstræning.

Tilby foruddannede modeller og support transfer learning

Ikke alle ønsker at bruge tiden og beregne ressourcer til at træne deres egne modeller - det skal de heller ikke gøre, når der er foruddannede modeller tilgængelige. For eksempel er ImageNet-datasættet enormt, og træning af et avanceret dybt neuralt netværk mod det kan tage uger, så det giver mening at bruge en foruddannet model til det, når du kan.

På den anden side identificerer foruddannede modeller muligvis ikke altid de objekter, du holder af. Overførsel læring kan hjælpe dig med at tilpasse de sidste par lag af det neurale netværk til dit specifikke datasæt uden tid og omkostninger til at træne hele netværket.

Tilby tunede AI-tjenester

De store skyplatforme tilbyder robuste, tunede AI-tjenester til mange applikationer, ikke kun billedidentifikation. Eksempel inkluderer sprogoversættelse, tale til tekst, tekst til tale, prognoser og anbefalinger.

Disse tjenester er allerede uddannet og testet på flere data end det, der normalt er tilgængeligt for virksomheder. De er også allerede implementeret på serviceendepunkter med tilstrækkelige beregningsressourcer, herunder acceleratorer, for at sikre gode svartider under verdensomspændende belastning.

Administrer dine eksperimenter

Den eneste måde at finde den bedste model til dit datasæt er at prøve alt, hvad enten det er manuelt eller ved hjælp af AutoML. Det efterlader et andet problem: Administration af dine eksperimenter.

En god cloud machine-læringsplatform vil have en måde, at du kan se og sammenligne de objektive funktionsværdier for hvert eksperiment for både træningssættene og testdataene såvel som størrelsen på modellen og forvirringsmatrixen. At være i stand til at tegne alt dette er et klart plus.

Support model implementering til forudsigelse

Når du har en måde at vælge det bedste eksperiment på baggrund af dine kriterier, har du også brug for en nem måde at implementere modellen på. Hvis du implementerer flere modeller til det samme formål, skal du også bruge en måde til at fordele trafik blandt dem til a / b-test.

Overvåg forudsigelsesydelse

Desværre har verden en tendens til at ændre sig, og data ændrer sig med det. Det betyder, at du ikke kan implementere en model og glemme den. I stedet skal du overvåge de indsendte data for forudsigelser over tid. Når dataene begynder at ændre sig markant fra basislinjen i dit originale træningsdatasæt, skal du omskole din model.

Kontrolomkostninger

Endelig har du brug for måder at kontrollere omkostningerne på dine modeller. Implementering af modeller til produktionsinferens udgør ofte 90% af omkostningerne ved dyb læring, mens uddannelsen kun tegner sig for 10% af omkostningerne.

Den bedste måde at kontrollere forudsigelsesomkostningerne afhænger af din belastning og kompleksiteten af ​​din model. Hvis du har en høj belastning, kan du muligvis bruge en accelerator til at undgå at tilføje flere forekomster af virtuel maskine. Hvis du har en variabel belastning, kan du muligvis ændre din størrelse eller antal forekomster eller containere dynamisk, når belastningen går op eller ned. Og hvis du har en lav eller lejlighedsvis belastning, kan du muligvis bruge en meget lille forekomst med en delvis accelerator til at håndtere forudsigelserne.