Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan beskriver resan från slutpunkt till slutpunkt för att ta ett maskininlärningsprojekt (ML) från inledande omfång till produktion och hålla det bra över tid. Kod, data och modeller passerar genom tre breda steg: utveckling, mellanlagring och produktion. Varje fas har distinkta mål och krav:
- Avgränsa användningsfallet och definiera vad som är framgång
- Utforska och förstå data
- Förbereda data och funktioner
- Träna modeller och spåra experiment
- Evaluera
- Registrera, mellanlagra och testa modeller
- Distribuera till produktion
- Övervaka och träna om
1. Avgränsa användningsfallet och definiera framgångskriterier
Innan du skapar något justerar du efter vad modellen behöver göra och hur du vet att den fungerar.
- Vad är förutsägelsemålet och vilken klass av ML-problem innebär det: klassificering, regression, prognostisering, rekommendation, rangordning, avvikelseidentifiering eller något annat?
- Vilka indata är tillgängliga och räcker det att lära sig målmönstret?
- Vilka mått definierar framgång: noggrannhet, AUC, precision vid K eller affärs-KPI:er?
- Vilka är kraven för servering och produktion: svarstid, dataflöde och data färskhet?
- Vilka intressenter måste godkänna produktionsdriftsättningar? Vad är deras krav kring förklaring?
Ovanstående krav dikterar inte den specifika ML-metoden. Du kan börja med att modellera med en enklare metod som gradientförstärkta träd och senare komma fram till att mer kraftfulla djupinlärningsmetoder behövs.
2. Utforska och förstå data
Innan du förbereder funktioner eller tränar en modell kan du utforska data för att förstå dess struktur, kvalitet och relation till förutsägelsemålet. Undersökande dataanalys (EDA) är processen att sammanfatta och visualisera en datamängd för att visa distributioner, korrelationer, saknade värden och extremvärden som formar beslut om nedströmsmodellering.
Bestäm tidigt hur du ska verifiera att du har giltiga testdata som hålls tillbaka från träningen. Även under EDA bör du akta dig för att fatta modelleringsbeslut baserat på dina testdata.
EDA svarar på frågor som informerar resten av livscykeln:
- Vilka indata är mest förutsägande för målet och är någon av dem otillgängliga vid serveringstiden?
- Saknas värden, extremvärden eller skeva distributioner som kräver rensning eller transformering?
- Är datamängden tillräckligt stor och tillräckligt representativ för att lära sig målmönstret?
Azure Databricks förenklar EDA med interaktiva, samarbetsinriktade och AI-assisterade verktyg. Utforska dina data med hjälp av chatt med naturligt språk, UIs eller kod och samarbeta genom samredigering i realtid och Git-baserad koddelning:
- Notebook-filer ger samarbetsutrymmen för utforskning, visualisering och dokumentation.
- Instrumentpaneler tillhandahåller SQL- och visualiseringsbaserad utforskning.
- Genie Chat tillhandahåller ett helsidesgränssnitt med naturligt språk för att ställa datafrågor.
- Genie Code kan utföra helt automatiserad EDA eller fungera som en interaktiv assistent.
3. Förbereda data och funktioner
När du har förstått data omvandlar du de råkällor och transformationer som identifierades under EDA till ingångsvariabler för ML-modeller. Utvärdera dina datapipeliner för träning och drift, inklusive hastighet, volym, färskhet och ägarskapet för datakällorna. Gränsen mellan datateknik (förbereda och transformera data) och funktionsutveckling (härleda ML-indata) är suddig. På Azure Databricks delar datateknik och ML samma plattforms- och styrningslager i Unity Catalog, så att data som utarbetats av ett team kan göras tillgängliga omedelbart som funktioner för en annan, utan dataflytt eller duplicerade pipelines.
Sök efter befintliga data- och funktionsdefinitioner:
- Utforska data och funktioner som är tillgängliga i Unity Catalog. Om din organisation har relaterade modeller på plats använder du Unity Catalog-ursprunget för att identifiera datakällor och funktioner som används för dessa modeller.
- Sökning på arbetsytor kan hjälpa dig att identifiera vilka reglerade data, modeller eller program som redan finns.
Skapa och hantera nya tillgångar efter behov:
- Mer information om verktyg för datainmatning och teknik finns i Datateknik med Databricks , inklusive Lakeflow Designer för en AI-assisterad upplevelse utan kod.
- Använd funktionsarkivet för att definiera och hantera funktioner som återanvändbara, reglerade tillgångar. Samma funktionsdefinitioner används i träning och produktion, med stöd för datainmatning i batch och realtid samt för batch- och realtidsservering.
Använd Genie Code för att påskynda dataidentifiering och förberedelse genom att bläddra i Unity Catalog för att identifiera relevanta tabeller, föreslå funktionsomvandlingar och generera startkod för inmatning och funktionspipelines.
4. Träna modeller och spåra experiment
Data science- och ML-program använder många olika metoder, som var och en har sina egna krav för ML-algoritmer och -bibliotek, beräkningskrav och arbetsflöden. Azure Databricks tillhandahåller flexibla miljöer och beräkning för olika arbetsbelastningar, med experimentspårning enhetlig under MLflow.
Miljöer och beräkning
Använd som standard serverlös beräkning för både interaktiva notebook-filer och automatiserade jobb. Serverlös beräkning startar omedelbart och skalas upp och ned automatiskt med din arbetsbelastning.
För GPU-acceleration kopplar du GPU:er till din serverlösa beräkning, som sedan använder AI Runtime, en miljö som är förkonfigurerad för GPU-träning och slutsatsdragning.
För både CPU- och GPU-arbetsbelastningar kan du också använda klassisk beräkning med Databricks Runtime för strojové učenie.
Anpassa någon av de föregående miljöerna med dina ML-bibliotek. Eftersom miljöer ofta är mycket anpassade för ML-applikationer bör du använda spårning i MLflow för att registrera beroenden, verifiera reproducerbarhet och undvika diskrepanser mellan träning och produktion.
MLflow-spårning
Använd Azure Databricks hanterat MLflow för att spåra experimenterings- och loggningsmodellmetadata:
- Organisera projektloggar i experiment med inspelade körningar för träning eller utvärdering.
- I varje körning loggar du parametrar, mått och artefakter automatiskt eller manuellt.
- Under experimenteringen jämför du körningar i MLflow-användargränssnittet för att hitta den bäst presterande konfigurationen.
- Logga modeller i MLflow för att lagra modellartefakter med fullständigt ursprung: vilken datauppsättning, vilken kod och vilken miljö som den här modellen producerades från. Dessa metadata förenklar distributionen av modeller till produktion, samt granskning och felsökning.
Kom igång med modellering
Genie Code kan generera en fullständig ML-notebook-fil från en klarspråkig beskrivning av förutsägelseuppgiften, inklusive funktionsval från funktionsarkivet, ML-träning och MLflow-spårning.
Se även resurser för justering av hyperparametrar, modellträningsexempel och Ray på Databricks.
Djupinlärning och GPU-accelererad klassisk ML-utbildning finns i exempelanteckningsböcker för AI Runtime.
5. Utvärdera
Under utvecklingen definierar du kvalitetsutvärderingsmått baserat på kraven från omfånget:
- Dina basmått kan vara vanliga ML-mått som noggrannhet, AUC, RMSE eller domänspecifika mått.
- Utvärderingen kan också innehålla härledda mått, till exempel bias och rättvisa mellan befolkningssegment, mätt genom att jämföra basmått mellan segment av dina data.
Definiera mått med hjälp av ditt valda ML-bibliotek eller ramverk med hjälp av MLflows inbyggda måttmodul eller din anpassade logik. För alla mått körs loggmått i MLflow för att länka dem till motsvarande modeller. De mått som du definierar under utveckling och träning kan återanvändas senare som mått för produktionsövervakning.
6. Registrera, driftsätta och testa modeller
När du har tränat en ML-modell eller pipeline registrerar du den i MLflow Model Registry i Unity Catalog för att förenkla styrningen och hanteringen när du höjer modellen mot produktion. En registrerad modell har versioner, där varje version länkar till den ursprungliga träningskörningen som skapade den. Modellversioner möjliggör säkra distributionsarbetsflöden: du kan testa en ny version i mellanlagringen innan du befordrar den till produktion, återställa till en tidigare version om kvaliteten försämras och upprätthålla en fullständig spårningslogg över vad som distribuerades och när.
Innan en ny modellversion betjänar produktionstrafik, testa versionen i en stagingmiljö under realistiska förhållanden:
-
Märk kandidatmodellversionen med alias (
Staging,Production) för att signalera livscykeltillstånd utan att byta namn på artefakter. - Kör integreringstester mot mellanlagringsinfrastrukturen: bekräfta att serverdelsslutpunkten startar, att svarstiden uppfyller kraven och att utdata är välformulerade.
- Utför A/B-test eller skuggtester på produktionsdata för att validera prestandan före fullständig övergång.
- Inhämta godkännande från intressenter baserat på utvärderingsresultaten.
Den här beskrivningen förenklar distributionsmetoder och ML-åtgärder (MLOps). Läs mer om MLOps i MLOps-arbetsflöden på Azure Databricks.
7. Distribuera till produktion
Efter validering i testmiljön kan du flytta vidare och distribuera modellen till produktionsmiljön för att generera förutsägelser för verkliga indata. Azure Databricks stöder två primära serveringsmönster:
- Realtidsbetjäning: Distribuera modellen som en REST-slutpunkt med låg svarstid med hjälp av modellservering för användningsfall som kräver beslut med låg svarstid, till exempel bedrägeriavlyssning vid transaktionstid, liveanpassning eller dynamisk prissättning.
-
Batch-slutsatsdragning:
ai_queryger effektiv batchinferens för anpassade modeller som distribueras som modellserverslutpunkter. Du kan också använda anpassad kod med Apache Spark-UDF:er (till exempel) ellermlflow.pyfuncför batchinferens. Batchpipelines skriver resultaten till Delta-tabeller för efterföljande program, översiktspaneler eller pipelines. Det här mönstret hanterar dagliga prognoser, uppdateringar av rekommendationer varje natt och andra periodiska jobb.
Båda mönstren använder samma tränade modellartefakt. Träna en gång, och driftsätt för batch- eller realtidsbetjäning från samma registrerade version, med samma styrning och spårbarhet.
Genie Code kan både generera kod för distribution och hjälpa till att felsöka serveringsproblem, förklara slutpunktsbeteende och påskynda iterationen när modeller måste uppdateras eller distribueras om.
8. Övervaka och träna om
ML-produktionssystem kan försämras med tiden när användarbeteendet ändras eller datapipelines ändras. Övervaka dina produktionsdata och modellförutsägelser kontinuerligt:
- Logga indata och utdata från dina distribuerade modeller. För realtidsservering tillhandahåller slutsatsdragningstabeller automatisk loggning utan ändringar i modellkoden. För batchservering läser dina pipelines naturligt från och skriver till Delta-tabeller som hanteras av Unity Catalog.
- Mata in loggarna i datakvalitetsövervakning, som spårar datakvalitet, funktionsavvikelser och förutsägelsedistribution över tid. Om du har facitdata eller feedbackdata kan du sammanfoga datan med serviceloggar för att beräkna mått på prediktionskvalitet.
- Använd övervakningsgränssnittet och aviseringarna för avvikelseidentifiering för att utlösa eskalering eller omträning innan kvaliteten försämras märkbart.
Läs mer om ML-produktion i MLOps-arbetsflöden på Azure Databricks.
Ytterligare resurser
- Azure Databricks datavetenskaps- och ML-funktioner – Azure Databricks funktioner i varje steg i den här livscykeln
- MLOps-arbetsflöden på Azure Databricks – Referens för MLOps-arbetsflöde för produktion
- Hantera modelllivscykeln i Unity Catalog – Hantering av modellversioner och livscykel i Unity Catalog