Dela via


AI-arbetsbelastningsåtgärder i Azure

När du skapar och övergår dina AI-arbetsbelastningar till produktion är det viktigt att dina driftteam är fullt utrustade för att stödja dessa arbetsbelastningar på samma sätt som andra produktionsarbetsbelastningar. Eftersom dina driftteam kan ha begränsad erfarenhet av AI-teknik är det viktigt att träna dem på dessa tekniker och integrera AI-arbetsbelastningarna i sina arbetsflöden tidigt i processen. Samla drifts- och datateam tidigt i utvecklingen av AI-arbetsbelastningen för att främja ömsesidig förståelse för varje teams processer. Det här tidiga samarbetet är avgörande eftersom båda teamen måste arbeta nära för att stödja AI-arbetsbelastningen effektivt. Datateam är beroende av driftsteam för att tillhandahålla tillförlitliga hälsosignaler och åtgärdsbara aviseringar. Driftteamen är beroende av datateam för att diagnostisera potentiella problem och lösa faktiska problem enligt driftsstandarder. Det här samarbetet bidrar till att säkerställa smidiga och effektiva systemprestanda.

Den här guiden ger rekommendationer för hur du utvecklar operativa mekanismer och metoder för att förbättra stödet för AI-arbetsbelastningar. Den betonar ett effektivt samarbete mellan drifts- och datateam.

Rekommendationer

Här är sammanfattningen av rekommendationerna i den här artikeln.

Rekommendation beskrivning
Övervaka alla aspekter av din arbetsbelastning. Många allmänna övervaknings- och observerbarhetsproblem gäller även för AI-arbetsbelastningar, men det finns specifika överväganden som du måste arbeta igenom för att säkerställa att hela arbetsbelastningen övervakas korrekt hela tiden. För att skapa din strategi för övervakning och observerbarhet kan du behöva arbeta i olika team för att få rätt expertis och täcka alla relevanta lägen och mått.

Utöka observerbarhetsplattformen
Tillämpa säkra distributionsmetoder på din AI-arbetsbelastning. Vidta åtgärder för att säkerställa den högsta säkerhetsnivån kring känsliga produktionsdata och justera distributionsmetoderna med krav på noll stilleståndstid. Använd lämpliga verktyg vid behov och betona att inte återuppfinna verktyg och processer som redan finns. Ofta kan du använda etablerade tjänster för att uppnå en hög effektivitetsnivå samtidigt som du aktiverar säkra distributioner.

Inkludera AI-arbetsbelastningskomponenter i dina säkra distributionsmetoder
Använd DevOps-metoder för testning och automatisering. Tillämpa DevOps-metoder när du skapar, distribuerar och hanterar din AI-arbetsbelastning i produktion. Din arbetsbelastning bör möjliggöra observerbarhet och testning med verkliga användarindata i produktion. Detta kan endast tillhandahållas på ett säkert sätt om en stark DevOps-process och effektiv automatisering möjliggör snabba distributioner, felkorrigering och A/B-testning.

Stöd för testning i produktion
Automatisera operativa metoder när det är möjligt
Omfamna DevOps-metoder
Dokumentera förloppet. Skapa bra dokumentationsvanor från början för att möjliggöra insamling av strategiska beslut, ändringshistorik och viktig information om de data som din arbetsbelastning använder.

Anta bra dokumentationspraxis

Utöka observerbarhetsplattformen

För att uppnå driftskvalitet är robust observerbarhet avgörande. När din organisation använder AI-tekniker är det viktigt att du förbättrar din observerbarhetsplattform för att säkerställa en omfattande övervakning av arbetsbelastningens hälsa. Organisationer som är nya inom AI kanske saknar stordata, datavetenskap och DataOps-expertis inom sitt driftteam. Därför är utbildning om bästa praxis för drift ett viktigt första steg för att förbättra din observerbarhetsplattform. Därför bör åtgärder och datateam samarbeta för att fastställa rätt lägen för övervakning och mått för att samla in och analysera.

För att utvärdera hälsotillståndet för en modell krävs en omfattande översikt över dess specifika kvalitetsmått. Kvalitetsmätningar omfattar vanligtvis mått som modellens färskhet, korrekt utdata och svarstid. Du bör dock samarbeta med dataforskare och tekniker för att fastställa de specifika mått som definierar arbetsbelastningens kvalitet. Den icke-terministiska karaktären hos AI-arbetsbelastningar gör övervakning av kvalitet särskilt viktig eftersom dessa mätningar kan ändras oväntat när som helst efter distributionen. Rekommendationer för observerbarhet är:

  • Arbeta med dataforskare och tekniker för att fastställa kvalitetsmått.

  • Skapa eller utöka instrumentpaneler för att utvärdera arbetsbelastningens övergripande hälsa. Den här metoden bör innehålla komponenttillgänglighetsmått och kvalitetsmått.

  • Implementera väl utformade tillgänglighets- och kvalitetsaviseringar som åtgärdsteamen kan förstå och vidta åtgärder på.

  • Kodifiera standardrutiner som definierar hur driftteamen svarar på kvalitetsaviseringar, som att arbeta med datateam för att undersöka och åtgärda potentiella fel.

  • Var uppmärksam på användningsstatistik eftersom det kan vara kostnadskrävande att köra AI-arbetsbelastningar. Kostnaderna kan öka snabbt om arbetsbelastningsteamet inte stänger av, skalar ned eller frigör resurser när de inte används. Åtgärder kan hjälpa till att säkerställa att kostnaderna förblir inom förväntade parametrar genom övervakningsanvändning.

Inkludera AI-arbetsbelastningskomponenter i dina säkra distributionsmetoder

AI-arbetsbelastningar är beroende av produktionsdata, vilket ofta innehåller känslig information. Därför är det viktigt att upprätthålla den högsta säkerhetsnivån kring dessa arbetsbelastningar. För att skydda dina data utökar du dina säkra distributionsmetoder till att omfatta all kod som är relaterad till din arbetsbelastnings AI-komponenter. Om du har krav på noll stilleståndstid för din arbetsbelastning ska du utforma distributionsmetoden för AI-komponenterna i enlighet med detta.

  • För slutsatsdragning av slutpunkter använder du blågröna distributioner eller kanariedistributioner med eller utan trafikspegling, beroende på distributionsmodellen.

  • För indexservering använder du en sida-vid-sida-distributionsmodell med aliasuppdateringar för att minska trafiken.

  • Använd funktionsflaggor eller blågröna distributioner för orkestreringskod.

Beroende på ditt program, din dataplattform och din specifika nätverkstopologi kan du behöva använda en gatewaylösning, till exempel Azure Application Gateway eller Azure Front Door.

Verktyg

Azure Machine Learning stöder blågröna distributioner internt med inbyggd trafikdelning.

Hitta inte på nytt

Eftersom slutpunkter för onlineinferens i huvudsak är mikrotjänster fungerar de som helt fristående arbetsbelastningskomponenter med egna data och kod som fungerar som en specifik funktion i arbetsflödet. Därför bör du behandla slutpunkter för onlineinferenser som andra kritiska mikrotjänster som har sina egna livscykeler. Du kan uppdatera slutpunkter för onlineinferens individuellt. Men precis som andra mikrotjänster i en större arbetsbelastning måste de fungera sömlöst tillsammans. Därför bör du prioritera integreringstestning när du distribuerar uppdateringar. Se till att dina distributioner inte påverkar andra tjänster negativt, till exempel modellservern och orkestratorn. Alternativt är slutpunkter för batchinferens ofta nära kopplade till jobbbearbetningsberäkningen och ingår i datapipelinen. I dessa fall ska du behandla dem som en del av en större lösning i stället för som mikrotjänster.

Stöd för testning i produktion

Driftteamen kommer sannolikt inte att utforma eller utföra AI-arbetsbelastningstester. De måste dock ha stöd för AI-arbetsbelastningstestning genom övervakning, aviseringar och undersökning eftersom testning krävs i produktion. På grund av AI:s icke-terministiska karaktär är testning i produktion nödvändigt för att säkerställa att arbetsbelastningen presterar som förväntat över tid. Driftteamet bör samarbeta nära med arbetsbelastningsteamet för att samla in och diagnostisera onormala testresultat effektivt och enligt driftsstandarder. För att säkerställa att åtgärder kan stödja testning och att arbetsbelastningsteam kan utföra testning måste båda teamen anpassa sina processer för att arbeta tillsammans. Utbildning om testaktiviteter i icke-produktionsmiljöer hjälper till att bekanta teamet med ordningen på åtgärderna.

Automatisera operativa metoder när det är möjligt

Automatisera alla arbetsbelastningsrelaterade operativa metoder, inklusive övervaknings-, aviserings- och testningsprocesser. Automation är en primär strategi för att hålla processerna repeterbara, effektiva och konsekventa. När du utformar dina automatiseringsstrategier måste du kräva mänsklig tillsyn för aktiviteter, till exempel korrekt diagnostisering av modellinkonsekvenser och andra kvalitetssignaler. Detta gäller särskilt för de första versionerna. Processer som är relaterade till att underhålla modellen är nya för driftteamen, så risken för felaktiga svar på kvalitetssignaler är högre i det här skedet. När din arbetsbelastning mognar kanske du kan använda automatisering för att identifiera falska larm med väldesignade kvalitetsgrindar, men att komma till den punkten kan vara en lång och komplex process.

När det är möjligt kan du återanvända befintliga automatiseringsverktyg för att utföra nya automatiseringsuppgifter för din AI-arbetsbelastning. Om du till exempel redan använder Azure Pipelines eller GitHub-arbetsflöden fortsätter du att använda dem för att distribuera orkestreringskod i stället för att använda ett separat verktyg. Undvik dock överteknik i ett försök att bara använda ett automatiseringsverktyg. Om vissa uppgifter eller jobb inte passar bra för det valda verktyget väljer du ett lämpligare verktyg i stället för att skapa en anpassad lösning som ger onödig komplexitet.

Kommentar

För att fullt ut stödja arbetsbelastningen krävs många intersekterande roller och tekniker. Data-, infrastruktur-, säkerhets- och driftteam är alla beroende av automatisering i viss utsträckning. Använd de minsta möjliga verktygen och standardisera dem för att hålla automatiseringsstrategin hanterbar och enklare att träna på.

Omfamna DevOps-metoder

Tidigt i din arbetsbelastningsutveckling standardiserar du användningen av DevOps-metoder i dina utvecklingsprocesser. För alla miljöer förutom sandbox-miljöer bör strikt definierade och framtvingade standarder styra hela utvecklingslivscykeln. Tillämpa dessa standarder genom att strikt förbjuda alla manuella distributionsaktiviteter. Alla distributioner, oavsett om de är uppdateringar, korrigeringar eller nya resursdistributioner, måste utföras via en pipeline för kontinuerlig integrering och kontinuerlig distribution som följer säkra distributionsmetoder. Bra DevOps-hygienrutiner bör omfatta:

  • Versionskontroll: Använd versionskontroll för alla kodtillgångar så mycket som möjligt. Versionskontroll är en hörnsten i DevOps och bra metoder för ändringshantering och är avgörande för ett smidigt samarbete. Tillämpa versionskontroll på bibliotekspaket, inklusive SDK:er och containeravbildningar. Var konsekvent när du använder en specifik version av bibliotekspaketen i programutvecklingslivscykeln (SDLC). Olika versioner av bibliotek som XGBoost eller scikit-learn i olika utvecklingsmiljöer kan orsaka variationer i arbetsbelastningens beteende. Detsamma gäller för versionshantering av modeller. Se till att modellversionerna är konsekventa i SDLC:t så att du inte testar en version av modellen i en förproduktionsmiljö och släpper en annan version i produktion.

  • Enkelt versionsnamnschema: Använd ett enkelt versionsnamnschema för att se till att du alltid använder den senast godkända versionen av en viss tillgång. AI-specifika tillgångar kan vara:

    • Notebook-kod.
    • Orchestrator-kod.
    • Jobbkod för databearbetning.
    • Maskininlärningsjobbkod.
    • Modellen.
  • Verktyg som du kan operationalisera: Vissa verktyg är bra för experimentering men är inte utformade för driftsättning. Den här begränsningen kan göra det svårt eller omöjligt att integrera dem i din driftautomatisering. Notebook-filer är till exempel ett bra verktyg för experimentering och undersökande dataanalys, men de är inte ett bra verktyg för utveckling av produktionspipelines. När du slutför experimenteringen hämtar du logiken från dessa verktyg och placerar den i ett Python-paket som du kan använda för din jobbkod.

Anta bra dokumentationspraxis

Bra dokumentationsvanor är viktiga för alla typer av arbetsbelastningar. Komplexiteten i AI-arbetsbelastningar gör dessa vanor ännu viktigare. Se till att du har en lagringsplats som är specifik för ditt arbetsbelastningsteam där dokumentationen lagras på ett säkert sätt och versionskontrolleras. Precis som med andra arbetsbelastningar bör du dokumentera standardinformation. Den här standardinformationen innehåller alla verktyg som används i arbetsbelastningen, säkerhetskonfigurationer, nätverksdesign och installationsguider. Överväg att dokumentera följande AI-specifika arbetsbelastningsinformation:

  • Modellträning och grundinformation för dataindexhantering: Dokumentera datakällor, ägare av datakällor, uppdateringsfrekvens och bias-elimineringsprocesser för att fastställa hur modellen ska tränas och hur jordningsdata ska hanteras.

  • Historik för träningsprocessen: Information om hur du kom fram till den aktuella godkända konfigurationen genom att dokumentera varför du valde specifika hyperparametrar, temperaturer, vikter och andra parametrar. Inkludera vilka andra konfigurationer du har testat och de beteendeändringar som du observerade under hela träningsprocessen. Den här informationen hjälper till att förhindra upprepning av misslyckade eller ineffektiva konfigurationer.

  • Information om funktionsarkiv: Dokumentera vilka funktioner som har den bästa förutsägelsekraften och hur du har gjort den bedömningen.

  • Konfiguration av datavetares arbetsstation: Dokumentera konfigurationer av arbetsstationer noggrant för att effektivisera registreringsprocessen för dataforskare. Ange de bibliotek och beroenden som krävs för att använda conda-miljöer.

  • Information om datatransformering: Dokumentera hela processen från början till slut när datatransformeringen sker. Dokumentera hur data visas vid inmatning och hur de visas efter omvandlingen.

Verktyg

Dra nytta av automatiserad konfiguration och historikinfångning via MLFlow och Machine Learning.

Nästa steg