Concepten - Machine Learning-bewerkingen (MLOps) voor AI- en machine learning-werkstromen
In dit artikel krijgt u meer informatie over machine learning-bewerkingen (MLOps), met inbegrip van de soorten procedures en hulpprogramma's, en hoe u hiermee uw AI- en machine learning-werkstromen in Azure Kubernetes Service (AKS) kunt vereenvoudigen en versnellen.
Wat is MLOps?
Machine learning-bewerkingen (MLOps) omvat procedures die samenwerking tussen gegevenswetenschappers, IT-bewerkingen en zakelijke belanghebbenden vergemakkelijken, zodat machine learning-modellen efficiënt worden ontwikkeld, geïmplementeerd en onderhouden. MLOps past DevOps-principes toe op machine learning-projecten, gericht op het automatiseren en stroomlijnen van de end-to-end levenscyclus van machine learning. Deze levenscyclus omvat training, verpakking, valideren, implementeren, bewaken en opnieuw trainen van modellen.
MLOps vereist meerdere rollen en hulpprogramma's om effectief samen te werken. Gegevenswetenschappers richten zich op taken die betrekking hebben op het trainen van het model, wat de binnenste lus wordt genoemd. Machine learning-technici en IT-operationele teams verwerken de buitenste lus, waar ze DevOps-procedures toepassen op het verpakken, valideren, implementeren en bewaken van modellen. Wanneer het model fine-tuning of hertraining nodig heeft, wordt het proces teruggezet naar de binnenste lus.
MLOps-pijplijn
Uw MLOps-pijplijn kan gebruikmaken van verschillende hulpprogramma's en microservices die opeenvolgend of parallel worden geïmplementeerd. Hieronder vindt u voorbeelden van belangrijke onderdelen in uw pijplijn die profiteren van het implementeren van de volgende aanbevolen procedures om overhead te verminderen en snellere iteratie mogelijk te maken:
- Ongestructureerd gegevensarchief voor nieuwe gegevens die naar uw toepassing stromen
- Vectordatabase voor het opslaan en opvragen van gestructureerde, vooraf verwerkte gegevens
- Framework voor gegevensopname en indexering
- Vectoropname- en/of modelhertrainingswerkstromen
- Hulpprogramma's voor het verzamelen en waarschuwen van metrische gegevens (het bijhouden van modelprestaties, het volume van opgenomen gegevens, enzovoort)
- Hulpprogramma's voor levenscyclusbeheer
DevOps en MLOps
DevOps is een combinatie van hulpprogramma's en procedures waarmee u robuuste en reproduceerbare toepassingen kunt maken. Het doel van het gebruik van DevOps is om snel waarde te leveren aan uw eindgebruikers. Het maken, implementeren en bewaken van robuuste en reproduceerbare modellen voor het leveren van waarde aan eindgebruikers is het primaire doel van MLOps.
Er zijn drie processen die essentieel zijn voor MLOps:
- Machine learning-workloads waarvoor een data scientist verantwoordelijk is, waaronder experimentele gegevensanalyse (EDA), functie-engineering en modeltraining en afstemming.
- Softwareontwikkelingsprocedures , waaronder het plannen, ontwikkelen, testen en verpakken van het model voor implementatie.
- Operationele aspecten van het implementeren en onderhouden van het model in productie, waaronder het vrijgeven, configureren van resources en het bewaken van het model.
DevOps-principes die van toepassing zijn op MLOps
MLOps maakt gebruik van verschillende principes van DevOps om de levenscyclus van machine learning te verbeteren, zoals automatisering, continue integratie en levering (CI/CD), broncodebeheer, Agile-planning en infrastructuur als code (IaC).
Automation
Door taken te automatiseren, kunt u handmatige fouten verminderen, de efficiëntie verhogen en consistentie in de ML-levenscyclus garanderen. Automatisering kan worden toegepast op verschillende fasen, waaronder gegevensverzameling, modeltraining, implementatie en bewaking. Via automatisering kunt u ook proactieve maatregelen toepassen in de AI-pijplijn om ervoor te zorgen dat gegevens voldoen aan het beleid van uw organisatie.
Uw pijplijn kan bijvoorbeeld het volgende automatiseren:
- Modelafstemming/hertraining met regelmatige tijdsintervallen of wanneer een bepaalde hoeveelheid nieuwe gegevens in uw toepassing wordt verzameld.
- Detectie van prestatiedegradatie om kickstarts te verfijnen of opnieuw te trainen op een andere subset van gegevens.
- Common vulnerability and exposure (CVE) scanning on base container images pulled from external container registries to ensure safe security practices.
Continue integratie (CI)
Continue integratie behandelt het maken en verifiëren van aspecten van het modelontwikkelingsproces. Het doel van CI is het maken van de code en het controleren van de kwaliteit van de code en het model vóór de implementatie. Dit omvat testen op een reeks voorbeeldgegevenssets om ervoor te zorgen dat het model naar verwachting presteert en voldoet aan de kwaliteitsnormen.
In MLOps kan CI het volgende omvatten:
- Verkennende code in Jupyter-notebooks herstructureren in Python- of R-scripts.
- Nieuwe invoergegevens valideren voor ontbrekende of foutwaarden.
- Eenheidstests en integratietests in de end-to-end-pijplijn.
Als u linting en eenheidstests wilt uitvoeren, kunt u automatiseringshulpprogramma's zoals Azure Pipelines gebruiken in Azure DevOps of GitHub Actions.
Continue levering (CD)
Continue levering omvat de stappen die nodig zijn om een model veilig in productie te implementeren. De eerste stap is het verpakken en implementeren van het model in preproductieomgevingen, zoals ontwikkel- en testomgevingen. De draagbaarheid van de parameters, hyperparameters en andere modelartefacten is een belangrijk aspect dat u moet onderhouden wanneer u de code promoveert via deze omgevingen. Deze draagbaarheid is vooral belangrijk als het gaat om grote taalmodellen (LLM's) en stabiele diffusiemodellen. Zodra het model de eenheidstests en QA-tests heeft doorstaan, kunt u het goedkeuren voor implementatie in de productieomgeving.
Bronbeheer
Broncodebeheer of versiebeheer is essentieel voor het beheren van wijzigingen in code en modellen. In een ML-systeem verwijst dit naar gegevensversiebeheer, codeversiebeheer en modelversiebeheer, waarmee functieoverschrijdende teams effectief kunnen samenwerken en wijzigingen in de loop van de tijd kunnen bijhouden. Met behulp van een op Git gebaseerd broncodebeheersysteem, zoals Azure-opslagplaatsen in Azure DevOps of een GitHub-opslagplaats, kunt u programmatisch een geschiedenis van wijzigingen bijhouden, terugkeren naar eerdere versies en vertakkingen beheren voor verschillende experimenten.
Flexibele planning
Agile planning omvat het isoleren van werk in sprints, wat korte tijdsbestekken zijn voor het voltooien van specifieke taken. Met deze aanpak kunnen teams zich snel aanpassen aan wijzigingen en incrementele verbeteringen aan het model leveren. Modeltraining kan een doorlopend proces zijn en Agile-planning kan helpen het project te bereiken en een betere teamuitlijning mogelijk te maken.
U kunt hulpprogramma's zoals Azure Boards in Azure DevOps of GitHub-problemen gebruiken om uw Agile-planning te beheren.
Infrastructuur als code (IaC)
U gebruikt infrastructuur als code om de infrastructuur te herhalen en te automatiseren die nodig is voor het trainen, implementeren en bedienen van uw modellen. In een ML-systeem helpt IaC bij het vereenvoudigen en definiëren van de juiste Azure-resources die nodig zijn voor het specifieke taaktype in code en wordt de code onderhouden in een opslagplaats. Hiermee kunt u uw infrastructuur beheren en zo nodig wijzigingen aanbrengen voor resourceoptimalisatie, kosteneffectiviteit, enzovoort.
Volgende stappen
Bekijk de volgende artikelen voor meer informatie over aanbevolen procedures voor MLOps in uw intelligente toepassingen op AKS:
Azure Kubernetes Service