MLOps Stacks: modelontwikkelingsproces als code
In dit artikel wordt beschreven hoe u met MLOps Stacks het ontwikkelings- en implementatieproces als code in een door de bron beheerde opslagplaats kunt implementeren. Het beschrijft ook de voordelen van modelontwikkeling op het Databricks Data Intelligence-platform, één platform dat elke stap van het modelontwikkelings- en implementatieproces samenstelt.
Wat is MLOps Stacks?
Met MLOps Stacks wordt het hele modelontwikkelingsproces geïmplementeerd, opgeslagen en bijgehouden als code in een door bron beheerde opslagplaats. Door het proces op deze manier te automatiseren, worden herhaalbare, voorspelbare en systematische implementaties mogelijk en is het mogelijk om te integreren met uw CI/CD-proces. Als u het modelontwikkelingsproces vertegenwoordigt als code, kunt u de code implementeren in plaats van het model te implementeren. Door de code te implementeren, wordt de mogelijkheid om het model te bouwen geautomatiseerd, waardoor het veel eenvoudiger is om het model zo nodig opnieuw te trainen.
Wanneer u een project maakt met BEHULP van MLOps Stacks, definieert u de onderdelen van uw ML-ontwikkelings- en implementatieproces, zoals notebooks die moeten worden gebruikt voor functie-engineering, training, testen en implementatie, pijplijnen voor training en testen, werkruimten die moeten worden gebruikt voor elke fase en CI/CD-werkstromen met behulp van GitHub Actions of Azure DevOps voor geautomatiseerd testen en implementeren van uw code.
De omgeving die door MLOps Stacks is gemaakt, implementeert de MLOps-werkstroom die door Databricks wordt aanbevolen. U kunt de code aanpassen om stacks te maken die overeenkomen met de processen of vereisten van uw organisatie.
Hoe werkt MLOps Stacks?
U gebruikt de Databricks CLI om een MLOps-stack te maken. Zie Databricks Asset Bundles voor MLOps-stacks voor stapsgewijze instructies.
Wanneer u een MLOps Stacks-project initieert, wordt u door de software begeleid bij het invoeren van de configuratiegegevens en maakt u vervolgens een map met de bestanden die uw project opstellen. Met deze map of stack wordt de mlOps-productiewerkstroom geïmplementeerd die wordt aanbevolen door Databricks. De onderdelen die in het diagram worden weergegeven, worden voor u gemaakt en u hoeft alleen de bestanden te bewerken om uw aangepaste code toe te voegen.
In het diagram:
- A: Een data scientist of ML-engineer initialiseert het project met behulp van
databricks bundle init mlops-stacks
. Wanneer u het project initialiseert, kunt u ervoor kiezen om de ML-codeonderdelen (meestal gebruikt door gegevenswetenschappers), de CI/CD-onderdelen (meestal gebruikt door ML-technici) of beide in te stellen. - B: ML-technici stellen databricks-service-principalgeheimen in voor CI/CD.
- C: Data scientists ontwikkelen modellen op Databricks of in hun lokale systeem.
- D: Gegevenswetenschappers maken pull-aanvragen om ML-code bij te werken.
- E: De CI/CD-runner voert notebooks uit, maakt taken en voert andere taken uit in de faserings- en productiewerkruimten.
Uw organisatie kan de standaardstack gebruiken of deze zo nodig aanpassen om onderdelen toe te voegen, te verwijderen of te herzien om aan de procedures van uw organisatie te voldoen. Zie het leesmij-bestand voor de GitHub-opslagplaats voor meer informatie.
MLOps Stacks is ontworpen met een modulaire structuur, zodat de verschillende ML-teams onafhankelijk van een project kunnen werken, terwijl ze de aanbevolen procedures voor software-engineering volgen en CI/CD op productieniveau kunnen onderhouden. Productietechnici configureren ML-infrastructuur waarmee gegevenswetenschappers ML-pijplijnen en -modellen kunnen ontwikkelen, testen en implementeren in productie.
Zoals in het diagram wordt weergegeven, bevat de standaard MLOps-stack de volgende drie onderdelen:
- ML-code. MLOps Stacks maakt een set sjablonen voor een ML-project, waaronder notebooks voor training, batchdeductie, enzovoort. Met de gestandaardiseerde sjabloon kunnen gegevenswetenschappers snel aan de slag, projectstructuur in teams combineren en modulaire code afdwingen die klaar is voor testen.
- ML-resources als code. MLOps Stacks definieert resources zoals werkruimten en pijplijnen voor taken zoals training en batchdeductie. Resources worden gedefinieerd in Databricks Asset Bundles om het testen, optimaliseren en versiebeheer voor de ML-omgeving te vergemakkelijken. U kunt bijvoorbeeld een groter exemplaartype proberen voor het opnieuw trainen van geautomatiseerde modellen en de wijziging wordt automatisch bijgehouden voor toekomstige naslaginformatie.
- CI/CD. U kunt GitHub Actions of Azure DevOps gebruiken om ML-code en -resources te testen en te implementeren, zodat alle productiewijzigingen worden uitgevoerd via automatisering en dat alleen geteste code wordt geïmplementeerd op prod.
MLOps-projectstroom
Een standaard MLOps Stacks-project bevat een ML-pijplijn met CI/CD-werkstromen om geautomatiseerde modeltrainings- en batchdeductietaken te testen en te implementeren in werkruimten voor ontwikkeling, fasering en productie van Databricks. MLOps Stacks kan worden geconfigureerd, zodat u de projectstructuur kunt wijzigen om te voldoen aan de processen van uw organisatie.
In het diagram ziet u het proces dat door de standaard MLOps-stack wordt geïmplementeerd. In de ontwikkelwerkruimte herhalen gegevenswetenschappers ML-code en pull-aanvragen (PULL's) voor bestanden. Pull-aanvragen activeren eenheidstests en integratietests in een geïsoleerde Databricks-werkruimte. Wanneer een pull-aanvraag wordt samengevoegd met de belangrijkste taken voor modeltraining en batchdeductie die in fasering worden uitgevoerd, worden deze onmiddellijk bijgewerkt om de meest recente code uit te voeren. Nadat u een pull-aanvraag hebt samengevoegd in de hoofdversie, kunt u een nieuwe releasebranch knippen als onderdeel van het geplande releaseproces en de codewijzigingen implementeren in productie.
MLOps Stacks-projectstructuur
Een MLOps-stack maakt gebruik van Databricks Asset Bundles : een verzameling bronbestanden die fungeert als de end-to-end definitie van een project. Deze bronbestanden bevatten informatie over hoe ze moeten worden getest en geïmplementeerd. Door de bestanden als bundel te verzamelen, kunt u eenvoudig wijzigingen in de co-versie wijzigen en aanbevolen procedures voor software-engineering gebruiken, zoals broncodebeheer, codebeoordeling, testen en CI/CD.
In het diagram ziet u de bestanden die zijn gemaakt voor de standaard MLOps-stack. Zie de documentatie over de GitHub-opslagplaats of Databricks Asset Bundles voor MLOps Stacks voor meer informatie over de bestanden die zijn opgenomen in de stack.
MLOps Stacks-onderdelen
Een 'stack' verwijst naar de set hulpprogramma's die in een ontwikkelproces worden gebruikt. De standaard MLOps Stack maakt gebruik van het geïntegreerde Databricks-platform en gebruikt de volgende hulpprogramma's:
Onderdeel | Hulpprogramma in Databricks |
---|---|
Ml-modelontwikkelingscode | Databricks-notebooks, MLflow |
Functieontwikkeling en -beheer | Functie-engineering |
ML-modelopslagplaats | Modellen in Unity Catalog |
ML-model bedienen | Mozaïek AI-model bedienen |
Infrastructuur als code | Databricks Asset Bundles |
Orchestrator | Databricks-taken |
CI/CD | GitHub Actions, Azure DevOps |
Bewaking van gegevens- en modelprestaties | Lakehouse-bewaking |
Volgende stappen
Zie Databricks Asset Bundles voor MLOps Stacks of de Databricks MLOps Stacks-opslagplaats op GitHub om aan de slag te gaan.