Wat zijn Azure Machine Learning-pijplijnen?

VAN TOEPASSING OP:Azure CLI ml-extensie v1Python SDK azureml v1

VAN TOEPASSING OP:Azure CLI ml-extensie v2 (huidig)Python SDK azure-ai-ml v2 (huidig)

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 best practices 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 aanpak heeft twee belangrijke voordelen:

De MLOps-praktijk standaardiseren en schaalbare teamsamenwerking ondersteunen

Machine learning-bewerking (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 wordt toegewezen aan een specifieke taak, zodat elk team onafhankelijk kan werken.

Een typisch machine learning-project omvat bijvoorbeeld de stappen van gegevensverzameling, gegevensvoorbereiding, modeltraining, modelevaluatie en modelimplementatie. Meestal concentreren de data engineers zich op gegevensstappen, besteden gegevenswetenschappers de meeste tijd aan modeltraining en -evaluatie, de machine learning-engineers richten zich op modelimplementatie en automatisering van de hele werkstroom. Door gebruik te maken van de machine learning-pijplijn hoeft elk team alleen maar te werken aan het bouwen van hun eigen stappen. De beste manier om stappen te maken, is met behulp van het Azure Machine Learning-onderdeel, een zelfstandig stukje code dat één stap in een machine learning-pijplijn uitvoert. Al deze stappen die door verschillende gebruikers zijn gebouwd, worden uiteindelijk geïntegreerd in één werkstroom via de pijplijndefinitie. De pijplijn is een hulpprogramma voor samenwerking voor iedereen in het project. Het proces van het definiëren van een pijplijn en alle bijbehorende stappen kan worden gestandaardiseerd op basis van 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

De machine learning-pijplijn is niet alleen het hulpprogramma om MLOps in de praktijk te brengen, maar verbetert ook de efficiëntie van grote modeltrainingen en verlaagt de kosten. Moderne training voor natuurlijke taalmodellen als voorbeeld nemen. Hiervoor moeten grote hoeveelheden gegevens en GPU-intensieve transformatormodellen vooraf worden verwerkt. Het trainen van een model duurt uren tot dagen. Wanneer het model wordt gebouwd, wil de data scientist verschillende trainingscode of hyperparameters testen en de training meerdere keren 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 is een grote verspilling als telkens de volledige training van gegevensverwerking tot modeltraining plaatsvindt. Met behulp van machine learning-pijplijn kan automatisch worden berekend welke stappen het resultaat ongewijzigd zijn en kan de uitvoer van de vorige training opnieuw worden gebruikt. Daarnaast ondersteunt de machine learning-pijplijn het uitvoeren van elke stap op verschillende rekenresources. Zodanig dat het geheugen intensieve gegevensverwerking werk en run-on cpu-machines met een hoog geheugen, en de rekenintensieve training kan worden uitgevoerd op dure GPU-machines. Door op de juiste manier te kiezen welke stap op welk type machines moet worden uitgevoerd, kunnen de trainingskosten aanzienlijk worden verlaagd.

Aanbevolen procedures voor aan de slag

Afhankelijk van wat een machine learning-project al heeft, kan het beginpunt van het bouwen van een machine learning-pijplijn variëren. Er zijn een aantal 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 pijplijnen zoals MLOps. In deze situatie hebben gegevenswetenschappers meestal een aantal machine learning-modellen in hun lokale omgeving ontwikkeld met behulp van hun favoriete hulpprogramma's. Machine learning-engineers moeten de uitvoer van gegevenswetenschappers in productie nemen. Het werk omvat het opschonen van onnodige 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, het uitvoeren van een eenheidstest van elke stap en het verpakken van alle stappen in een pijplijn.

Zodra de teams vertrouwd raken met pijplijnen en meer machine learning-projecten willen uitvoeren met pijplijnen, zullen ze merken dat de eerste benadering moeilijk te schalen is. De tweede benadering bestaat uit het instellen van een aantal pijplijnsjablonen, die elk één 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, verdeelt het team eerst één sjabloonopslagplaats. De teamleider wijst vervolgens leden toe aan welke stap ze moeten werken. De data scientists en data engineers doen hun normale werk. Wanneer ze tevreden zijn met het resultaat, structuren ze hun code zodat deze in de vooraf gedefinieerde stappen past. Zodra de gestructureerde codes zijn ingecheckt, kan de pijplijn worden uitgevoerd of geautomatiseerd. Als er een wijziging is, hoeft elk lid alleen aan hun stukje code te werken zonder de rest van de pijplijncode aan te raken.

Zodra een team een verzameling machine learning-pijplijnen en herbruikbare onderdelen heeft gebouwd, kunnen ze beginnen met het bouwen van de machine learning-pijplijn door een vorige pijplijn te klonen of bestaande herbruikbare onderdelen aan elkaar te koppelen. In dit stadium 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 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 v1. Gebruikers die liever de gebruikersinterface gebruiken, kunnen de ontwerpfunctie gebruiken om een pijplijn 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 beweging, gegevensgerichte activiteiten
Code-app-indeling & (CI/CD) App-ontwikkelaar/bewerkingen Azure Pipelines Jenkins Code + model -> App/Service Ondersteuning voor de meeste open en flexibele activiteiten, goedkeuringswachtrijen, fasen met gating

Volgende stappen

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