Övervakning av Azure Machine Learning-modell

Modellövervakning är det sista steget i livscykeln för maskininlärning från slutpunkt till slutpunkt. Det här steget spårar modellprestanda i produktion och analyserar prestanda från både datavetenskap och driftsperspektiv. I den här artikeln får du lära dig mer om modellövervakning i Azure Machine Learning, vilka signaler och mått du kan övervaka och rekommenderade metoder för modellövervakning.

Till skillnad från traditionella programvarusystem beror beteendet för maskininlärningssystem inte bara på regler som anges i kod, utan också på data. Datadistributionsändringar, träningsbetjäningsförskjutningar, problem med datakvalitet, förändringar i miljöer och ändringar av konsumentbeteenden kan göra att en modell blir inaktuell.

När en modell blir inaktuell kan dess prestanda försämras till den grad att den inte lägger till affärsvärde eller börjar orsaka allvarliga efterlevnadsproblem i strikt reglerade miljöer. Därför är det viktigt att övervaka modellprestanda.

Så här fungerar Azure Machine Learning-modellövervakning

För att implementera övervakning hämtar Azure Machine Learning övervakningssignaler genom att utföra statistiska beräkningar på strömmade produktionsinferensdata och referensdata. Produktionsinferensdata avser modellens indata och utdata som samlas in i produktion. Referensdata kan vara historiska tränings-, validerings- eller grund sanningsdata.

Viktigt!

Azure Machine Learning-modellövervakning stöder endast autentiseringsbaserad autentisering, till exempel en SAS-token (Signatur för delad åtkomst) för att få åtkomst till data som finns i datalager. Mer information om datalager och autentiseringslägen finns i Dataadministration.

Varje övervakningssignal har ett eller flera mått. Du kan ange tröskelvärden för dessa mått för att utlösa aviseringar om modell- eller dataavvikelser via Azure Machine Learning eller Azure Event Grid. När du får aviseringar kan du använda Azure Machine Learning-studio för att analysera eller felsöka övervakningssignaler för kontinuerlig kvalitetsförbättring av modellen.

Azure Machine Learning använder följande process för att hantera en inbyggd övervakningssignal, till exempel dataavvikelse, för en modell i produktion:

  • Först beräknar Azure Machine Learning den statistiska fördelningen av funktionens värde i träningsdata. Den här fördelningen är baslinjefördelningen för funktionen.

  • Därefter beräknar Azure Machine Learning den statistiska fördelningen av funktionens senaste värden som registrerats i produktion.

  • Azure Machine Learning utför sedan ett statistiskt test eller beräknar en avståndspoäng för att jämföra fördelningen av funktionens senaste värden i produktion med baslinjefördelningen. Om teststatistiken eller avståndspoängen mellan de två distributionerna överskrider ett användardefinieringströskelvärde identifierar Azure Machine Learning avvikelsen och meddelar användaren.

Konfigurera och använda modellövervakning

Så här använder du modellövervakning i Azure Machine Learning:

Aktivera först datainsamling för produktionsinferens.

  • Om du distribuerar en modell till en Azure Machine Learning-slutpunkt online kan du aktivera insamling av datainsamling för produktionsinferens med hjälp av Azure Machine Learning-modelldatainsamling.
  • Om du distribuerar en modell utanför Azure Machine Learning eller till en Azure Machine Learning-batchslutpunkt ansvarar du för att samla in produktionsinferensdata som du sedan kan använda för azure machine learning-modellövervakning.

Konfigurera sedan modellövervakning. Du kan använda Azure Machine Learning SDK/CLI 2.0 eller studiogränssnittet för att enkelt konfigurera modellövervakning. Under installationen kan du ange önskade övervakningssignaler och anpassa mått och tröskelvärden för varje signal.

Visa och analysera slutligen modellövervakningsresultat. När du har konfigurerat modellövervakning kör Azure Machine Learning ett övervakningsjobb enligt det angivna schemat. Varje körning beräknar och utvärderar mått för alla valda övervakningssignaler och utlöser aviseringsmeddelanden när ett angivet tröskelvärde överskrids. Du kan följa länken i aviseringsmeddelandet för att visa och analysera övervakningsresultat på din Azure Machine Learning-arbetsyta.

Funktioner för modellövervakning

Azure Machine Learning tillhandahåller följande funktioner för kontinuerlig modellövervakning:

  • Inbyggda övervakningssignaler för tabelldata, inklusive dataavvikelse, förutsägelseavvikelse, datakvalitet, funktionsattributionsavvikelse och modellprestanda.
  • Övervakning av färdiga modeller för onlineslutpunkter. Om du distribuerar din modell till produktion i en onlineslutpunkt samlar Azure Machine Learning in produktionsinferensdata automatiskt och använder dem för kontinuerlig övervakning.
  • Flera övervakningssignaler i en övervakningskonfiguration. För varje övervakningssignal kan du välja önskat mått och aviseringströskelvärde.
  • Val av referensdata för jämförelse. För övervakningssignaler kan du ange referensdata med hjälp av träningsdata eller tidigare produktionsdata.
  • De främsta N-funktionerna för dataavvikelse eller övervakning av datakvalitet. Om du använder träningsdata som referensdata kan du definiera dataavvikelser eller datakvalitetssignaler som är skiktade över funktionsvikt.
  • Möjlighet att definiera anpassade övervakningssignaler. Om de inbyggda övervakningssignalerna inte är lämpliga för ditt affärsscenario kan du definiera din egen övervakningssignal med en anpassad övervakningssignalkomponent.
  • Flexibilitet att använda produktionsinferensdata från valfri källa. Om du distribuerar modeller utanför Azure Machine Learning eller distribuerar modeller till batchslutpunkter kan du fortfarande samla in produktionsinferensdata själv som du kan använda i Azure Machine Learning-modellövervakning.

Metodtips för modellövervakning

Varje maskininlärningsmodell och dess användningsfall är unika. Därför är modellövervakning unik för varje situation. I följande lista beskrivs rekommenderade metodtips för modellövervakning.

  • Starta modellövervakning omedelbart efter att du har distribuerat en modell till produktion.
  • Arbeta med dataexperter som är bekanta med modellen för att konfigurera övervakning. Dataforskare som har insikt i modellen och dess användningsfall kan rekommendera övervakning av signaler och mått och ange rätt tröskelvärden för aviseringar för varje mått för att undvika aviseringströtthet.
  • Inkludera flera övervakningssignaler i konfigurationen. Med flera övervakningssignaler får du både breda och detaljerade övervakningsvyer. Du kan till exempel kombinera signaler om dataavvikelser och funktionstillskrivningsavvikelser för att få tidiga varningar om problem med modellprestanda.
  • Använd lämpliga referensdata som jämförelsebaslinje. För referensdata som används som jämförelsebaslinje kan du använda tidigare produktionsdata eller historiska data, till exempel tränings- eller valideringsdata. För mer meningsfull jämförelse använder du träningsdata som jämförelsebaslinje för dataavvikelse och datakvalitet. Använd valideringsdata som jämförelsebaslinje för förutsägelseavvikelse.
  • Ange övervakningsfrekvens baserat på produktionsdatatillväxt över tid. Om din produktionsmodell till exempel har tung daglig trafik och den dagliga dataansamlingen är tillräcklig anger du övervakningsfrekvensen till dagligen. I annat fall bör du överväga en övervakningsfrekvens varje vecka eller månad baserat på tillväxten av dina produktionsdata över tid.
  • Övervaka de översta N-funktionerna eller en funktionsdeluppsättning. Om du använder träningsdata som jämförelsebaslinje kan du enkelt konfigurera övervakning av dataavvikelser eller övervakning av datakvalitet för de viktigaste N-funktionerna. För modeller som har ett stort antal funktioner bör du överväga att övervaka en delmängd av dessa funktioner för att minska beräkningskostnaden och övervaka brus.
  • Använd modellens prestandasignal när du har åtkomst till grund sanningsdata. Om du har åtkomst till grundsanningsdata, även kallade faktiska värden, baserat på ditt maskininlärningsprogram, använder du modellens prestandasignal för att jämföra grund sanningsdata med modellutdata. Den här jämförelsen ger en objektiv vy över modellprestanda i produktion.

Storlek och förskjutning för tillbakablicksfönster

Storleken på tillbakablicksfönstret är varaktigheten i ISO 8601-format för produktions- eller referensdatafönstret. Förskjutningen av återblicksfönstret är hur lång tid det tar att förskjuta slutet av datafönstret från datumet för övervakningskörningen.

Din modell i produktion har till exempel en övervakare inställd på att köras den 31 januari kl. 15:15 UTC. En fönsterstorlek P7D för produktionsdataåtersökning på eller sju dagar och en förskjutning av P0D dataåtersökningsfönstret på eller noll dagar innebär att övervakaren använder produktionsdata från den 24 januari kl. 15:15 UTC fram till den 31 januari kl. 15:15 UTC, den tid som övervakaren körs.

För referensdata slutar referensdatafönstret precis innan produktionsdatafönstret startar om du ställer in förskjutningen av lookback-fönstret till P7D eller sju dagar, så att det inte finns någon överlappning. Du kan sedan ange att storleken på referensdatas lookback-fönster ska vara så stor som du vill.

Om du till exempel anger storleken på referensdatans lookback-fönster till P24D eller 24 dagar innehåller referensdatafönstret data från 1 januari kl. 15:15 UTC fram till den 24 januari kl. 15:15 UTC. Följande diagram illustrerar det här exemplet.

Ett diagram som visar fönstrets storlek och förskjutning för referens- och produktionsdata.

I vissa fall kan det vara användbart att ange förskjutningen av återblicksfönstret för dina produktionsdata till ett tal som är större än noll dagar. Om övervakaren till exempel är schemalagd att köras varje vecka på måndagar kl. 15:15 UTC, men du inte vill använda data från helgen i din övervakningskörning, kan du använda en lookback-fönsterstorlek på P5D eller fem dagar och en lookback-fönsterförskjutning på P2D eller två dagar. Ditt datafönster börjar sedan den föregående måndagen kl. 15:15 UTC och slutar på fredag klockan 15:15 UTC.

I praktiken bör du se till att referensdatafönstret och produktionsdatafönstret inte överlappar varandra. Som du ser i följande bild kan du se till att fönster som inte överlappar varandra genom att se till att fönstret för återblicksfönster för referensdata, P10D eller 10 dagar i det här exemplet, är större eller lika med summan av fönsterstorleken för tillbakablicksfönster för produktionsdata och dess lookback-fönsterförskjutning, totalt sju dagar i det här exemplet.

Ett diagram som visar icke-överlappande referensdata och produktionsdatafönster.

Med Azure Machine Learning-modellövervakning kan du använda smarta standardvärden för storlek och förskjutning av lookback-fönster, eller anpassa dem efter dina behov. Både rullande fönster och fasta fönster stöds.

Anpassa storlek på tillbakablicksfönster

Du har flexibiliteten att välja en lookback-fönsterstorlek för både produktionsdata och referensdata.

  • Som standard är lookback-fönstrets storlek för produktionsdata din övervakningsfrekvens. Alla data som samlas in under övervakningsperioden innan övervakningsjobbet körs ingår i tillbakablicksfönstret. Du kan använda egenskapen production_data.data_window.lookback_window_size för att justera rullande datafönster för produktionsdata.

  • Som standard är lookback-fönstret för referensdata den fullständiga datamängden. Du kan använda reference_data.data_window.lookback_window_size egenskapen för att justera storleken på referensfönstret.

Om du vill ange ett fast datafönster för referensdata använder du egenskaperna reference_data.data_window.window_start_date och reference_data.data_window.window_end_date.

Anpassa förskjutning av återblicksfönster

Du har flexibiliteten att välja en återblicksfönsterförskjutning för datafönstret för både produktionsdata och referensdata. Du kan använda förskjutningen för detaljerad kontroll över de data som din övervakare använder. Förskjutningen gäller endast för rullande datafönster.

  • Som standard är P0D förskjutningen för produktionsdata eller noll dagar. Du kan ändra den här förskjutningen med egenskapen production_data.data_window.lookback_window_offset .

  • Som standard är förskjutningen för referensdata två gånger production_data.data_window.lookback_window_size. Den här inställningen säkerställer att det finns tillräckligt med referensdata för statistiskt meningsfulla övervakningsresultat. Du kan ändra den här förskjutningen med egenskapen reference_data.data_window.lookback_window_offset .

Övervaka signaler och mått

Azure Machine Learning-modellövervakning stöder följande övervakningssignaler och mått.

Viktigt!

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Övervakningssignal beskrivning Mått Modelluppgifter eller dataformat som stöds Produktionsdata Referensdata
Dataavvikelse Spårar ändringar i fördelningen av en modells indata genom att jämföra fördelningen med modellens träningsdata eller senaste produktionsdata. Jensen-Shannon Distance, Population Stability Index, Normalized Wasserstein Distance, Two-Sample Kolmogorov-Smirnov Test, Pearson's Chi-Squared Test Klassificering (tabelldata), regression (tabelldata) Produktionsdata: Modellindata Senaste produktionsdata eller träningsdata
Förutsägelseavvikelse Spårar ändringar i fördelningen av en modells förutsagda utdata genom att jämföra fördelningen med valideringsdata, märkta testdata eller senaste produktionsdata. Jensen-Shannon Distance, Population Stability Index, Normalized Wasserstein Distance, Chebyshev Distance, Two-Sample Kolmogorov-Smirnov Test, Pearson's Chi-Squared Test Klassificering (tabelldata), regression (tabelldata) Produktionsdata: Modellutdata Senaste tidigare produktionsdata eller valideringsdata
Datakvalitet Spårar dataintegriteten för en modells indata genom att jämföra den med modellens träningsdata eller senaste produktionsdata. Datakvalitetskontrollerna omfattar kontroll av null-värden, typmatchningsfel eller out-of-bounds-värden. Null-värdefrekvens, felfrekvens för datatyp, out-of-bounds-hastighet Klassificering (tabelldata), regression (tabelldata) Produktionsdata: Modellindata Senaste produktionsdata eller träningsdata
Funktionsatributionsavvikelse (förhandsversion) Baserat på funktionernas bidrag till förutsägelser, även kallat funktionsvikt. Funktionsattribution spårar funktionsvikt under produktion genom att jämföra den med funktionsvikt under träning. Normaliserad rabatterad ackumulerad vinst Klassificering (tabelldata), regression (tabelldata) Produktionsdata: Modellindata och utdata Träningsdata (krävs)
Modellprestanda: Klassificering (förhandsversion) Spårar objektiva prestanda för en modells utdata i produktion genom att jämföra den med insamlade mark sanningsdata. Noggrannhet, precision och återkallande Klassificering (tabelldata) Produktionsdata: Modellutdata Grund sanningsdata (krävs)
Modellprestanda: Regression (förhandsversion) Spårar objektiva prestanda för en modells utdata i produktion genom att jämföra den med insamlade mark sanningsdata. Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE) Regression (tabelldata) Produktionsdata: Modellutdata Grund sanningsdata (krävs)
Generativ AI: Generationssäkerhet och kvalitet (förhandsversion) Utvärderar generativa AI-program för säkerhet och kvalitet med hjälp av GPT-assisterade mått. Grund, relevans, flyt, likhet, enhetlighet Frågor och svar Mall för fråga, slutförande, kontext och kommentar Ej tillämpligt

Datakvalitetsmått

Övervakningssignalen för datakvalitet spårar integriteten för en modells indata genom att beräkna följande tre mått:

  • Null-värdefrekvens
  • Felfrekvens för datatyp
  • Out-of-bounds-frekvens

Azure Machine Learning-modellövervakning har stöd för upp till 0,00001 precision för beräkningar av null-värdehastighet, felfrekvens för datatyp och out-of-bounds-hastighet.

Null-värdefrekvens

Värdet null är värdet för värdet null i modellens indata för varje funktion. Om övervakningsfönstret för produktionsdata till exempel innehåller 100 rader och värdet för temperature funktionen är null för 10 av dessa rader är värdet för temperature null 10 %.

Azure Machine Learning stöder beräkning av null-värdehastigheten för alla funktionsdatatyper.

Felfrekvens för datatyp

Under varje övervakningskörning härleder Azure Machine Learning-modellövervakning datatypen för varje funktion från referensdata. Felfrekvensen för datatypen är datatypsskillnaderna mellan det aktuella produktionsdatafönstret och referensdata.

Om datatypen för temperature funktionen till exempel härleds IntegerType från referensdata, men i fönstret produktionsdata är 10 av 100 värden för temperature inte IntegerType utan strängar, datatypens felfrekvens för temperature är 10 %.

Azure Machine Learning stöder beräkning av felfrekvensen för datatyp för följande datatyper som är tillgängliga i PySpark: ShortType, , BinaryTypeBooleanType, DoubleType, TimestampType, StringType, IntegerType, FloatType, ByteType, LongTypeoch DateType. Om datatypen för en funktion inte finns i den här listan körs fortfarande Övervakning av Azure Machine Learning-modell, men datatypens felfrekvens beräknas inte för den funktionen.

Out-of-bounds-frekvens

Under varje övervakningskörning avgör Azure Machine Learning-modellövervakning det acceptabla intervallet eller uppsättningen för varje funktion från referensdata. Den out-of-bounds-frekvensen är frekvensen för värden för varje funktion som ligger utanför lämpligt intervall eller som bestäms av referensdata.

  • För numeriska funktioner är lämpligt intervall det numeriska intervallet mellan minimi- och maxvärdena i referensdatauppsättningen, till exempel [0, 100].
  • För kategoriska funktioner, till exempel color, är lämpligt intervall en uppsättning med alla värden som finns i referensdatauppsättningen, till exempel [red, yellow, green].

Om du till exempel har en numerisk temperature funktion där alla värden i referensdatauppsättningen ligger inom intervallet [37, 77], men 10 av 100 värden för temperature i produktionsdatafönstret ligger utanför intervallet [37, 77], är out-of-bounds-frekvensen för temperature 10 %.

Azure Machine Learning stöder beräkning av out-of-bounds-frekvensen för följande datatyper som är tillgängliga i PySpark: StringType, IntegerType, DoubleType, ByteType, LongTypeoch FloatType. Om datatypen för en funktion inte finns i den här listan körs fortfarande Övervakning av Azure Machine Learning-modell, men beräknar inte den out-of-bounds-frekvensen för den funktionen.

Modellövervakningsintegrering med Azure Event Grid

Du kan använda händelser som genereras av Azure Machine Learning-modellövervakningskörningar för att konfigurera händelsedrivna program, processer eller ci/CD-arbetsflöden (kontinuerlig integrering/kontinuerlig leverans) med Azure Event Grid. När din modellövervakare identifierar drift, datakvalitetsproblem eller försämrad modellprestanda kan du spåra dessa händelser med Event Grid och vidta åtgärder programmatiskt.

Om noggrannheten för klassificeringsmodellen i produktionen till exempel sjunker under ett visst tröskelvärde kan du använda Event Grid för att påbörja ett omträningsjobb som använder insamlade sanningsdata. Information om hur du integrerar Azure Machine Learning med Event Grid finns i Övervaka prestanda för modeller som distribueras till produktion.