Utforska en MLOps-arkitektur

Slutförd

Som dataexpert vill du träna den bästa maskininlärningsmodellen. För att implementera modellen vill du distribuera den till en slutpunkt och integrera den med ett program.

Med tiden kanske du vill återträna modellen. Du kan till exempel träna om modellen när du har mer träningsdata.

När du har tränat en maskininlärningsmodell vill du i allmänhet göra modellen redo för företagsskala. Om du vill förbereda modellen och operationalisera den vill du:

  • Konvertera modellträningen till en robust och reproducerbar pipeline.
  • Testa koden och modellen i en utvecklingsmiljö .
  • Distribuera modellen i en produktionsmiljö .
  • Automatisera processen från slutpunkt till slutpunkt.

Konfigurera miljöer för utveckling och produktion

I MLOps, på samma sätt som DevOps, refererar en miljö till en samling resurser. Dessa resurser används för att distribuera ett program, eller med maskininlärningsprojekt, för att distribuera en modell.

Anmärkning

I den här modulen refererar vi till DevOps-tolkningen av miljöer. Observera att Azure Machine Learning även använder termmiljöerna för att beskriva en samling Python-paket som behövs för att köra ett skript. Dessa två miljöbegrepp är oberoende av varandra.

Hur många miljöer du arbetar med beror på din organisation. Vanligtvis finns det minst två miljöer: utveckling eller utveckling och produktion eller prod. Dessutom kan du lägga till miljöer mellan till exempel en mellanlagrings- eller förproduktionsmiljö (pre-prod).

En vanlig metod är att:

  • Experimentera med modellträning i utvecklingsmiljön .
  • Flytta den bästa modellen till mellanlagrings - eller förhandsmiljön för att distribuera och testa modellen.
  • Släpp slutligen modellen till produktionsmiljön för att distribuera modellen så att slutanvändarna kan använda den.

Organisera Azure Machine Learning-miljöer

När du implementerar MLOps och arbetar med maskininlärningsmodeller i stor skala är det bästa praxis att arbeta med separata miljöer i olika faser.

Tänk dig att ditt team använder en utvecklings-, pre-produktions- och produktionsmiljö. Alla i teamet bör inte få åtkomst till alla miljöer. Dataexperter kan bara arbeta i utvecklingsmiljön med icke-produktionsdata, medan maskininlärningstekniker arbetar med att distribuera modellen i den förutvecklade och prod-miljön med produktionsdata.

Om du har separata miljöer blir det enklare att kontrollera åtkomsten till resurser. Varje miljö kan sedan associeras med en separat Azure Machine Learning-arbetsyta.

Diagram över flera Azure Machine Learning-arbetsytor för att ha flera miljöer.

I Azure använder du rollbaserad åtkomstkontroll (RBAC) för att ge kollegor rätt åtkomstnivå till den delmängd av resurser som de behöver arbeta med.

Du kan också bara använda en Azure Machine Learning-arbetsyta. När du använder en arbetsyta för utveckling och produktion har du ett mindre Azure-fotavtryck och mindre hanteringskostnader. RBAC gäller dock för både utvecklingsmiljöer och prod-miljöer, vilket kan innebära att du ger människor för lite eller för mycket åtkomst till resurser.

Utforma en MLOps-arkitektur

Att ta en modell till produktion innebär att du måste skala din lösning och arbeta tillsammans med andra team. Tillsammans med andra dataforskare, datatekniker och ett infrastrukturteam kan du välja att använda följande metod:

  • Lagra alla data i en Azure Blob Storage som hanteras av datateknikern.
  • Infrastrukturteamet skapar alla nödvändiga Azure-resurser, till exempel Azure Machine Learning-arbetsytan.
  • Dataforskare fokuserar på vad de gör bäst: utveckla och träna modellen (inre loop).
  • Maskininlärningsingenjörer distribuerar de tränade modellerna (yttre loopen).

Därför innehåller MLOps-arkitekturen följande delar:

Diagram över en arkitektur som visar ett typiskt MLOps-projekt.

  1. Installation: Skapa alla nödvändiga Azure-resurser för lösningen.
  2. Modellutveckling (inre loop): Utforska och bearbeta data för att träna och utvärdera modellen.
  3. Kontinuerlig integrering: Paketera och registrera modellen.
  4. Modelimplementering (yttre cykel): Implementera modellen.
  5. Kontinuerlig distribution: Testa modellen och flytta upp till produktionsmiljön.
  6. Övervakning: Övervaka modell- och slutpunktsprestanda.

När du arbetar med större team förväntas du inte ansvara för alla delar av MLOps-arkitekturen som dataexpert. För att förbereda din modell för MLOps bör du dock tänka på hur du utformar för övervakning och omträning.