Wat zijn Azure Machine Learning-pijplijnen?

Een Azure Machine Learning-pijplijn is een onafhankelijk uitvoerbare werkstroom van een volledige machine learning-taak. Een Azure Machine Learning-pijplijn helpt bij het standaardiseren van de aanbevolen procedures voor het produceren van een machine learning-model, stelt het team in staat om op schaal uit te voeren en verbetert de efficiëntie van het bouwen van modellen.

Waarom zijn Azure Machine Learning-pijplijnen nodig?

De kern van een machine learning-pijplijn is het splitsen van een volledige machine learning-taak in een werkstroom met meerdere stappen. Elke stap is een beheerbaar onderdeel dat afzonderlijk kan worden ontwikkeld, geoptimaliseerd, geconfigureerd en geautomatiseerd. Stappen worden verbonden via goed gedefinieerde interfaces. De Azure Machine Learning-pijplijnservice organiseert automatisch alle afhankelijkheden tussen pijplijnstappen. Deze modulaire benadering biedt twee belangrijke voordelen:

De MLOps-praktijk standaardiseren en schaalbare teamsamenwerking ondersteunen

Machine Learning Operation (MLOps) automatiseert het proces van het bouwen van machine learning-modellen en het nemen van het model naar productie. Dit is een complex proces. Het vereist meestal samenwerking van verschillende teams met verschillende vaardigheden. Een goed gedefinieerde machine learning-pijplijn kan dit complexe proces abstraheren in een werkstroom met meerdere stappen, waarbij elke stap aan een specifieke taak wordt toegewezen, zodat elk team onafhankelijk kan werken.

Een typisch machine learning-project bevat bijvoorbeeld de stappen voor het verzamelen van gegevens, gegevensvoorbereiding, modeltraining, modelevaluatie en modelimplementatie. Normaal gesproken concentreren de data engineers zich op gegevensstappen, besteden gegevenswetenschappers de meeste tijd aan modeltraining en -evaluatie. De machine learning-engineers richten zich op de implementatie en automatisering van het model van de hele werkstroom. Door gebruik te maken van de machine learning-pijplijn hoeft elk team alleen te werken aan het bouwen van hun eigen stappen. De beste manier om stappen te bouwen is het gebruik van een Azure Machine Learning-onderdeel (v2), een zelfstandig stukje code dat één stap in een machine learning-pijplijn uitvoert. Al deze stappen die door verschillende gebruikers zijn gebouwd, worden ten slotte geïntegreerd in één werkstroom via de pijplijndefinitie. De pijplijn is een samenwerkingshulpprogramma voor iedereen in het project. Het proces voor het definiëren van een pijplijn en alle bijbehorende stappen kan worden gestandaardiseerd door de DevOps-praktijk van elk bedrijf. De pijplijn kan verder worden geversied en geautomatiseerd. Als de ML-projecten worden beschreven als een pijplijn, wordt de beste MLOps-procedure al toegepast.

Trainingsefficiëntie en kostenreductie

Naast het hulpprogramma om MLOps in de praktijk te brengen, verbetert de machine learning-pijplijn ook de efficiëntie van grote modeltrainingen en verlaagt de kosten. Het trainen van moderne natuurlijke taalmodellen als voorbeeld. Hiervoor moeten grote hoeveelheden gegevens en gpu-intensieve modeltraining worden verwerkt. Het duurt uren tot dagen om elke keer een model te trainen. Wanneer het model wordt gebouwd, wil de data scientist verschillende trainingscode of hyperparameters testen en de training vaak uitvoeren om de beste modelprestaties te verkrijgen. Voor de meeste van deze trainingen zijn er meestal kleine wijzigingen van de ene training naar de andere. Het zal een aanzienlijke verspilling zijn als elke volledige training van gegevensverwerking naar modeltraining plaatsvindt. Door machine learning-pijplijn te gebruiken, kan deze automatisch berekenen welke stappen het resultaat ongewijzigd zijn en uitvoer van vorige training opnieuw gebruiken. Daarnaast biedt de machine learning-pijplijn ondersteuning voor het uitvoeren van elke stap op verschillende rekenbronnen. Zo kan de geheugenintensieve gegevensverwerking werken en worden uitgevoerd op CPU-machines met hoog geheugen en kan de rekenintensieve training worden uitgevoerd op dure GPU-machines. Door goed te kiezen welke stap moet worden uitgevoerd op welk type machines, kunnen de trainingskosten aanzienlijk worden verlaagd.

Aanbevolen procedures om aan de slag te gaan

Afhankelijk van wat een machine learning-project al heeft, kan het beginpunt van het bouwen van een machine learning-pijplijn variëren. Er zijn enkele typische benaderingen voor het bouwen van een pijplijn.

De eerste benadering is meestal van toepassing op het team dat nog geen pijplijn heeft gebruikt en wil profiteren van pijplijn zoals MLOps. In deze situatie hebben gegevenswetenschappers doorgaans een aantal machine learning-modellen in hun lokale omgeving ontwikkeld met behulp van hun favoriete hulpprogramma's. Machine learning-technici moeten de uitvoer van gegevenswetenschappers in productie nemen. Het werk omvat het opschonen van overbodige code uit de oorspronkelijke notebook- of Python-code, het wijzigen van de trainingsinvoer van lokale gegevens in geparameteriseerde waarden, het splitsen van de trainingscode in meerdere stappen indien nodig, het uitvoeren van een eenheidstest van elke stap en ten slotte alle stappen in een pijplijn verpakt.

Zodra de teams vertrouwd raken met pijplijnen en meer machine learning-projecten willen uitvoeren met behulp van pijplijnen, is de eerste methode moeilijk te schalen. De tweede benadering bestaat uit het instellen van een aantal pijplijnsjablonen, die elk een specifiek machine learning-probleem proberen op te lossen. De sjabloon definieert de pijplijnstructuur, inclusief het aantal stappen, de invoer en uitvoer van elke stap, en de bijbehorende connectiviteit. Als u een nieuw machine learning-project wilt starten, forkst het team eerst één sjabloonopslagplaats. De teamleider wijst vervolgens leden toe waaraan ze moeten werken. De datawetenschappers en data engineers doen hun normale werk. Wanneer ze tevreden zijn met hun resultaat, structuren ze hun code zodat ze in de vooraf gedefinieerde stappen passen. Zodra de gestructureerde codes zijn ingecheckt, kan de pijplijn worden uitgevoerd of geautomatiseerd. Als er een wijziging is, hoeft elk lid alleen aan de code te werken zonder de rest van de pijplijncode aan te raken.

Zodra een team een verzameling machine learning-pijplijnen en herbruikbare onderdelen heeft gemaakt, kunnen ze beginnen met het bouwen van de machine learning-pijplijn van het klonen van de vorige pijplijn of het koppelen van bestaande herbruikbare onderdelen aan elkaar. In deze fase zal de algehele productiviteit van het team aanzienlijk worden verbeterd.

Azure Machine Learning biedt verschillende methoden voor het bouwen van een pijplijn. Voor gebruikers die bekend zijn met DevOps-procedures, raden we u aan CLI te gebruiken. Voor gegevenswetenschappers die bekend zijn met Python, raden we u aan pijplijnen te schrijven met behulp van de Azure Machine Learning SDK v2. Voor gebruikers die liever de gebruikersinterface gebruiken, kunnen ze de ontwerpfunctie gebruiken om pijplijnen te bouwen met behulp van geregistreerde onderdelen.

Welke Azure-pijplijntechnologie moet ik gebruiken?

De Azure-cloud biedt verschillende typen pijplijnen, elk met een ander doel. De volgende tabel bevat de verschillende pijplijnen en waarvoor ze worden gebruikt:

Scenario Primaire persona Azure-aanbieding OSS-aanbieding Canonieke pijp Sterke punten
Modelindeling (Machine Learning) Data scientist Azure Machine Learning-pijplijnen Kubeflow-pijplijnen Gegevens -> Model Distributie, caching, code-first, hergebruik
Gegevensindeling (gegevensvoorbereiding) Data engineer Azure Data Factory-pijplijnen Apache Airflow Gegevens -> Gegevens Sterk getypte verplaatsing, gegevensgerichte activiteiten
Code & app orchestration (CI/CD) App-ontwikkelaar/ops Azure Pipelines Jenkins Code + model -> App/Service De meeste ondersteuning voor open en flexibele activiteiten, goedkeuringswachtrijen, fasen met gating

Volgende stappen

Azure Machine Learning-pijplijnen zijn een krachtige faciliteit die begint met het leveren van waarde in de vroege ontwikkelingsfasen.