Vijf belangrijke functies voor een machine learning-platform

Klik voor meer informatie over auteur Ion Stoica.

Ontwerpers van machine learning-platforms moeten de huidige uitdagingen het hoofd bieden en plannen maken voor toekomstige workloads.

Zoals machine learning voet aan de grond krijgt in steeds meer bedrijven, worstelen teams met de fijne kneepjes van het managen van de levenscyclus van machine learning.

Het typische startpunt is om elke datawetenschapper een Jupyter-notebook te geven die wordt ondersteund door een GPU-instantie in de cloud en om een ​​apart team de implementatie en bediening te laten beheren, maar deze aanpak valt uiteen naarmate de complexiteit van de applicaties en het aantal implementaties toeneemt.

Als gevolg hiervan zijn meer teams op zoek naar platforms voor machine learning. Verschillende startups en cloudproviders beginnen end-to-end platforms voor machine learning aan te bieden, waaronder AWS (SageMaker), Azure (Machine Learning Studio), Databricks (MLflow), Google (Cloud AI Platform) en andere. Veel andere bedrijven kiezen ervoor om hun eigen bedrijf te bouwen, waaronder Uber (Michelangelo), Airbnb (BigHead), Facebook (FBLearner), Netflix en Apple (Overton).

Afbeeldingsbron: Anyscale
Figuur 1: Open Source Ray kan worden gebruikt om inplugbare componenten voor platforms voor machine learning te bouwen. De blauwe vakken zijn componenten waarvoor er enkele bibliotheken bovenop zijn gebouwd.

Veel gebruikers bouwen ML-tools en -platforms. Dit is een actieve ruimte: verschillende startups en cloudplatforms beginnen end-to-end machine learning-platforms aan te bieden, waaronder Amazon, Databricks, Google en Microsoft. Maar gesprekken met mensen in de gemeenschap blijven gebruikers terugdrijven naar deze tool om veel onopgeloste uitdagingen op te lossen.

De verzameling bibliotheken van Ray kan naast andere ML-platformcomponenten worden gebruikt. En in tegenstelling tot monolithische platforms, hebben gebruikers de flexibiliteit om een ​​of meer van de bestaande bibliotheken te gebruiken of om hun eigen bibliotheken te bouwen. Een gedeeltelijke lijst van machine learning-platforms die dergelijke functies al bevatten, omvat:

In dit bericht zullen we inzichten delen die zijn afgeleid van gesprekken met veel ML-platformbouwers. We zullen functies vermelden die van cruciaal belang zijn om ervoor te zorgen dat uw ML-platform goed gepositioneerd is voor moderne AI-toepassingen. We zullen er ook voor zorgen dat ontwikkelaars die ML-platforms en ML-componenten bouwen, een dergelijk platform zouden moeten overwegen, omdat het een ecosysteem van zelfstandige bibliotheken heeft die kunnen worden gebruikt om enkele van de onderstaande items aan te pakken.

Ecosysteemintegratie

Ontwikkelaars en ingenieurs voor machine learning gebruiken verschillende tools en programmeertalen (R, Python, Julia, SAS, etc.). Maar met de opkomst van diep leren, Python is de dominante programmeertaal voor machine learning geworden. Dus als er iets is, moet een ML-platform Python en het Python-ecosysteem ondersteunen.

In de praktijk vertrouwen ontwikkelaars en machine learning-ingenieurs op veel verschillende Python-bibliotheken en tools. De meest gebruikte bibliotheken zijn onder meer deep learning-tools (TensorFlow, PyTorch), machine learning en bibliotheken voor statistische modellering (scikit-learn, statsmodels), NLP-tools (spaCy, Knuffelend gezicht, AllenNLP) en het afstemmen van modellen (Hyperopt, Afstemmen).

Omdat het naadloos integreert in het Python-ecosysteem, gebruiken veel ontwikkelaars Ray voor het bouwen van machine learning-tools. Het is een gedistribueerd computerplatform voor algemene doeleinden dat kan worden gebruikt om eenvoudig bestaande Python-bibliotheken en -toepassingen te schalen. Het heeft ook een groeiende verzameling zelfstandige bibliotheken die beschikbaar zijn voor Python-ontwikkelaars.

Eenvoudig schalen

Zoals wij dat is genoteerd in De toekomst van computers wordt gedistribueerd, nemen de “eisen van machine learning-applicaties razendsnel toe”. De opkomst van deep learning en nieuwe workloads betekent dat gedistribueerd computergebruik gebruikelijk zal zijn voor machine learning. Helaas hebben veel ontwikkelaars relatief weinig ervaring met gedistribueerd computergebruik.

Schalen en gedistribueerde berekeningen zijn gebieden waarop Ray veel gebruikers heeft geholpen met wie we hebben gesproken. Het stelt ontwikkelaars in staat zich te concentreren op hun applicaties in plaats van op de fijne kneepjes van gedistribueerd computergebruik. Het gebruik ervan biedt verschillende voordelen voor ontwikkelaars die machine learning-applicaties moeten schalen:

  • Het is een platform waarmee u uw bestaande applicaties eenvoudig naar een cluster kunt schalen. Dit kan zo simpel zijn als het schalen van uw favoriete bibliotheek naar een rekencluster (zie dit recente post over het gebruik ervan om scikit-learn te schalen). Of het zou kunnen gaan om het gebruik van de API om een ​​bestaand programma naar een cluster te schalen. Het laatste scenario is er een die we hebben zien gebeuren voor toepassingen in NLP, online leren, fraudedetectie, financiële tijdreeksen, OCR, en vele andere use-cases.
  • RaySGD vereenvoudigt gedistribueerde training voor PyTorch en TensorFlow. Dit is goed nieuws voor de vele bedrijven en ontwikkelaars die worstelen met het trainen of afstemmen van grote neurale netwerken.
  • In plaats van tijd te besteden aan DevOps, maakt een ingebouwde clusterstarter het eenvoudig om een ​​cluster op te zetten.

Uitbreidbaarheid voor nieuwe workloads

Moderne AI-platforms hebben notoir honger naar rekenkracht. In De toekomst van computers wordt gedistribueerd post waarnaar hierboven wordt verwezen, hebben we dat opgemerkt model afstemmen is een belangrijk onderdeel van het ontwikkelingsproces van machine learning:

“Je traint een model niet één keer. Doorgaans hangt de kwaliteit van een model af van verschillende hyperparameters, zoals het aantal lagen, het aantal verborgen eenheden en de batchgrootte. Om het beste model te vinden, moet u vaak tussen verschillende hyperparameterinstellingen zoeken. Dit proces wordt hyperparameter-afstemming genoemd en kan erg duur zijn. ” Ion Stoica

Ontwikkelaars kunnen kiezen uit verschillende bibliotheken om modellen af ​​te stemmen. Een van de meer populaire tools is Afstemmen, een schaalbare bibliotheek voor het afstemmen van hyperparameters die bovenop Ray is gebouwd. Tune draait op een enkel knooppunt of op een cluster en is snel een van de meer populaire bibliotheken in dit ecosysteem geworden.

Reinforcement learning (RL) is een ander gebied dat het vermelden waard is. Veel van de recente artikelen over RL hebben betrekking op gameplay (Atari, Go, videogames voor meerdere spelers) of op toepassingen in industriële omgevingen (bijv. Efficiëntie van datacenters). Maar zoals we hebben eerder opgemerktzijn er opkomende toepassingen in aanbevelingen en personalisatie, simulatie en optimalisatie, financiële tijdreeksen en publiek beleid.

RL is rekenintensief, complex om te implementeren en op te schalen, en als zodanig zullen veel ontwikkelaars gewoon bibliotheken willen gebruiken. Ray biedt een eenvoudige, zeer schaalbare bibliotheek (RLlib) die ontwikkelaars en machine learning-ingenieurs in verschillende organisaties al in de productie gebruiken.

Tools ontworpen voor teams

Nu bedrijven meer modellen voor machine learning gaan gebruiken en implementeren, zullen teams van ontwikkelaars met elkaar moeten kunnen samenwerken. Ze hebben toegang nodig tot platforms die zowel delen als ontdekken mogelijk maken. Houd bij het overwegen van een ML-platform rekening met de belangrijkste fasen van modelontwikkeling en -operaties, en ga ervan uit dat teams van mensen met verschillende achtergronden tijdens elk van die fasen zullen samenwerken.

Bijvoorbeeld, feature winkels (eerste geïntroduceerd door Uber in 2017) zijn handig omdat ze ontwikkelaars in staat stellen te delen en te ontdekken Kenmerken waar ze anders misschien niet aan hadden gedacht. Teams moeten ook kunnen samenwerken tijdens de levenscyclus van modelontwikkeling. Dit omvat het beheren, volgen en reproduceren van experimenten. Het toonaangevende open source-project op dit gebied is MLflow, maar we zijn gebruikers tegengekomen van andere tools zoals Gewichten en afwijkingen en Komeet, evenals gebruikers die hun eigen tools hebben gebouwd om ML-experimenten te beheren.

Ondernemingen hebben aanvullende functies nodig, waaronder beveiliging en toegangscontrole. Modelbeheer en modelcatalogi (analogen van vergelijkbare systemen voor het beheren van gegevens) zullen ook nodig zijn naarmate teams van ontwikkelaars meer modellen bouwen en implementeren.

Eerste klas MLOps

MLOps is een reeks praktijken gericht op het produceren van de levenscyclus van machine learning. Het is een relatief nieuwe term die ideeën put uit continue integratie (CI) en continue implementatie (CD), twee veelgebruikte methoden voor softwareontwikkeling. Een recent Thoughtworks-bericht somde enkele belangrijke overwegingen op voor het opzetten van CD voor machine learning (CD4ML). Enkele belangrijke items voor CI / CD voor machine learning zijn reproduceerbaarheid, experimentbeheer en -tracking, modelbewaking en observatie, en meer. Er zijn een paar startups en open source-projecten die MLOps-oplossingen bieden, waaronder Datatron, Verta, TFX, en MLflow.

Ray heeft componenten die nuttig zouden zijn voor bedrijven die overstappen op CI / CD of die CI / CD-tools bouwen voor machine learning. Het heeft al bibliotheken voor de belangrijkste fasen van de ML-levenscyclus: opleiding (RaySGD), afstemmen (Tune), en inzet (Dienen). Door toegang te hebben tot bibliotheken die naadloos samenwerken, kunnen gebruikers CI / CD-methoden gemakkelijker in hun MLOps-praktijk integreren.

Samenvatting

We hebben de belangrijkste elementen opgesomd waarover machine learning-platforms zouden moeten beschikken. Onze uitgangspunten zijn dat Python de voorkeurstaal zal blijven voor ML, gedistribueerde computing zal steeds meer nodig zijn, nieuwe workloads zoals afstemming van hyperparameters en RL moeten worden ondersteund, en tools om samenwerking en MLOps mogelijk te maken, moeten beschikbaar zijn.

Met deze aannames in gedachten, geloven we dat Ray de basis zal zijn van toekomstige ML-platforms. Veel ontwikkelaars en ingenieurs gebruiken het al voor hun machine learning-toepassingen, waaronder training, optimalisatie en service. Het pakt niet alleen de huidige uitdagingen aan, zoals schaal en prestaties, maar is ook goed gepositioneerd om toekomstige workloads en gegevenstypen te ondersteunen. Ray, en het groeiende aantal bibliotheken dat erop wordt gebouwd, zal de komende jaren helpen bij het opschalen van ML-platforms. We kijken ernaar uit om te zien wat je bouwt.

follow:
admin

admin

Related Posts

Een korte geschiedenis van gegevensbeheer

Datamanagement is de organisatie van gegevens, de stappen die worden gebruikt om efficiëntie te bereiken en informatie uit die gegevens

Datakans klopt! Moet je antwoorden?

Klik voor meer informatie over auteur Kartik Patel. Als zakenmensen krijgen we vaak te maken met wat misschien een geweldige

Een korte geschiedenis van gegevensbeheer

Datamanagement is de organisatie van gegevens, de stappen die worden gebruikt om efficiëntie te bereiken en informatie uit die gegevens

Datakans klopt! Moet je antwoorden?

Klik voor meer informatie over auteur Kartik Patel. Als zakenmensen krijgen we vaak te maken met wat misschien een geweldige