Bewaking van Azure Machine Learning-modellen
Modelbewaking is de laatste stap in de end-to-end levenscyclus van machine learning. In deze stap worden modelprestaties in productie bijgehouden en worden de prestaties vanuit zowel data science als operationele perspectieven geanalyseerd. In dit artikel leert u meer over modelbewaking in Azure Machine Learning, de signalen en metrische gegevens die u kunt bewaken en aanbevolen procedures voor modelbewaking.
In tegenstelling tot traditionele softwaresystemen is het gedrag van het machine learning-systeem niet alleen afhankelijk van regels die zijn opgegeven in code, maar wordt ook geleerd op basis van gegevens. Wijzigingen in gegevensdistributie, scheefheid van training, problemen met gegevenskwaliteit, verschuivingen in omgevingen en wijzigingen in het gedrag van consumenten kunnen ervoor zorgen dat een model verouderd wordt.
Wanneer een model verouderd wordt, kunnen de prestaties afnemen tot het punt dat het geen bedrijfswaarde toevoegt of ernstige nalevingsproblemen in sterk gereglementeerde omgevingen veroorzaakt. Daarom is het belangrijk om modelprestaties te bewaken.
Hoe bewaking van Azure Machine Learning-modellen werkt
Om bewaking te implementeren, verkrijgt Azure Machine Learning bewakingssignalen door statistische berekeningen uit te voeren op gestreamde productiedeductiegegevens en referentiegegevens. Productiedeductiegegevens verwijzen naar de invoer- en uitvoergegevens van het model die in productie zijn verzameld. Referentiegegevens kunnen historische trainings-, validatie- of grondwaargegevens zijn.
Belangrijk
Bewaking van Azure Machine Learning-modellen ondersteunt alleen verificatie op basis van referenties, zoals een SAS-token (Shared Access Signature) voor toegang tot gegevens in gegevensarchieven. Zie Gegevensbeheer voor meer informatie over gegevensarchieven en verificatiemodi.
Elk bewakingssignaal heeft een of meer metrische gegevens. U kunt drempelwaarden voor deze metrische gegevens instellen om waarschuwingen over model- of gegevensafwijkingen te activeren via Azure Machine Learning of Azure Event Grid. Wanneer u waarschuwingen ontvangt, kunt u Azure Machine Learning-studio gebruiken om bewakingssignalen te analyseren of problemen op te lossen voor continue kwaliteitsverbetering van modellen.
Azure Machine Learning maakt gebruik van het volgende proces voor het afhandelen van een ingebouwd bewakingssignaal, zoals gegevensdrift, voor een model in productie:
Ten eerste berekent Azure Machine Learning de statistische verdeling van de waarde van de functie in de trainingsgegevens. Deze distributie is de basislijndistributie voor de functie.
Vervolgens berekent Azure Machine Learning de statistische verdeling van de meest recente waarden van de functie die in productie zijn vastgelegd.
Azure Machine Learning voert vervolgens een statistische test uit of berekent een afstandsscore om de distributie van de meest recente waarden van de functie in productie te vergelijken met de basislijndistributie. Als de teststatistiek of afstandsscore tussen de twee distributies een door de gebruiker opgegeven drempelwaarde overschrijdt, identificeert Azure Machine Learning de anomalie en meldt de gebruiker.
Modelbewaking instellen en gebruiken
Modelbewaking gebruiken in Azure Machine Learning:
Schakel eerst het verzamelen van productiedeductiegegevens in.
- Als u een model implementeert in een online-eindpunt van Azure Machine Learning, kunt u het verzamelen van productiedeductiegegevens inschakelen met behulp van gegevensverzameling van Azure Machine Learning-modellen.
- Als u een model buiten Azure Machine Learning of een Azure Machine Learning-batcheindpunt implementeert, bent u verantwoordelijk voor het verzamelen van productiedeductiegegevens die u vervolgens kunt gebruiken voor azure Machine Learning-modelbewaking.
Stel vervolgens modelbewaking in. U kunt Azure Machine Learning SDK/CLI 2.0 of de gebruikersinterface van studio gebruiken om eenvoudig modelbewaking in te stellen. Tijdens de installatie kunt u de gewenste bewakingssignalen opgeven en metrische gegevens en drempelwaarden voor elk signaal aanpassen.
Tot slot bekijkt en analyseert u de resultaten van modelbewaking. Zodra u modelbewaking hebt ingesteld, voert Azure Machine Learning een bewakingstaak uit volgens uw opgegeven planning. Elke uitvoering berekent en evalueert metrische gegevens voor alle geselecteerde bewakingssignalen en activeert waarschuwingsmeldingen wanneer een opgegeven drempelwaarde wordt overschreden. U kunt de koppeling in de waarschuwingsmelding volgen om de bewakingsresultaten in uw Azure Machine Learning-werkruimte weer te geven en te analyseren.
Mogelijkheden van modelbewaking
Azure Machine Learning biedt de volgende mogelijkheden voor continue modelbewaking:
- Ingebouwde bewakingssignalen voor tabellaire gegevens, waaronder gegevensdrift, voorspellingsdrift, gegevenskwaliteit, kenmerktoewijzingsdrift en modelprestaties.
- Out-of-box modelbewaking voor online-eindpunten. Als u uw model implementeert in productie in een online-eindpunt, verzamelt Azure Machine Learning automatisch productiedeductiegegevens en gebruikt het voor continue bewaking.
- Meerdere bewakingssignalen in één bewakingsinstallatie. Voor elk bewakingssignaal kunt u de gewenste metrische gegevens en waarschuwingsdrempel selecteren.
- Keuze van referentiegegevens voor vergelijking. Voor bewakingssignalen kunt u referentiegegevens instellen met behulp van trainingsgegevens of recente productiegegevens uit het verleden.
- Top N-functies voor bewaking van gegevensdrift of gegevenskwaliteit. Als u trainingsgegevens gebruikt als referentiegegevens, kunt u gegevensdrift of gegevenskwaliteitssignalen definiëren die zijn gelaagd over het belang van functies.
- Mogelijkheid om aangepaste bewakingssignalen te definiëren. Als de ingebouwde bewakingssignalen niet geschikt zijn voor uw bedrijfsscenario, kunt u uw eigen bewakingssignaal definiëren met een aangepast bewakingssignaalonderdeel.
- Flexibiliteit voor het gebruik van productiedeductiegegevens uit elke bron. Als u modellen buiten Azure Machine Learning implementeert of modellen implementeert op batcheindpunten, kunt u zelf productiedeductiegegevens verzamelen om te gebruiken in azure Machine Learning-modelbewaking.
Aanbevolen procedures voor modelbewaking
Elk machine learning-model en de bijbehorende gebruiksvoorbeelden zijn uniek. Daarom is modelbewaking uniek voor elke situatie. In de volgende lijst worden aanbevolen aanbevolen procedures voor modelbewaking beschreven.
- Start modelbewaking direct nadat u een model in productie hebt geïmplementeerd.
- Werk samen met gegevenswetenschappers die bekend zijn met het model om bewaking in te stellen. Gegevenswetenschappers die inzicht hebben in het model en de gebruiksvoorbeelden, kunnen het bewaken van signalen en metrische gegevens aanbevelen en de juiste waarschuwingsdrempels instellen voor elke metriek om vermoeidheid van waarschuwingen te voorkomen.
- Neem meerdere bewakingssignalen op in uw installatie. Met meerdere bewakingssignalen krijgt u zowel brede als gedetailleerde bewakingsweergaven. U kunt bijvoorbeeld gegevensdrift en signalen voor kenmerktoewijzingsdrift combineren om vroegtijdige waarschuwingen te krijgen over prestatieproblemen van het model.
- Gebruik de juiste referentiegegevens als vergelijkingsbasislijn. Voor referentiegegevens die worden gebruikt als vergelijkingsbasislijn, kunt u recente eerdere productiegegevens of historische gegevens gebruiken, zoals trainings- of validatiegegevens. Voor een zinvollere vergelijking gebruikt u trainingsgegevens als vergelijkingsbasislijn voor gegevensdrift en gegevenskwaliteit. Gebruik validatiegegevens als vergelijkingsbasislijn voor voorspellingsdrift.
- Geef de bewakingsfrequentie op op basis van de groei van productiegegevens in de loop van de tijd. Als uw productiemodel bijvoorbeeld veel dagelijks verkeer heeft en de dagelijkse gegevensaccumulatie voldoende is, stelt u de bewakingsfrequentie in op dagelijks. Overweeg anders een wekelijkse of maandelijkse bewakingsfrequentie op basis van de groei van uw productiegegevens in de loop van de tijd.
- Bewaak de belangrijkste N-functies of een onderdeelsubset. Als u trainingsgegevens als vergelijkingsbasislijn gebruikt, kunt u eenvoudig bewaking van gegevensdrift of bewaking van gegevenskwaliteit configureren voor de belangrijkste N-functies. Voor modellen met een groot aantal functies kunt u overwegen om een subset van deze functies te bewaken om de rekenkosten en bewakingsruis te verminderen.
- Gebruik het prestatiesignaal van het model wanneer u toegang hebt tot waarheidsgegevens op de grond. Als u toegang hebt tot grondwaargegevens, ook wel werkelijke waarden genoemd, op basis van uw machine learning-toepassing, gebruikt u het prestatiesignaal van het model om de gegevens van de grondwaar te vergelijken met modeluitvoer. Deze vergelijking biedt een objectieve weergave van modelprestaties in productie.
Grootte en verschuiving van lookbackvenster
De grootte van het lookback-venster is de tijdsduur in ISO 8601-indeling voor uw productie- of referentiegegevensvenster. De offset van het lookbackvenster is de tijdsduur om het einde van het gegevensvenster te compenseren vanaf de datum van de bewakingsuitvoering.
Uw model in productie heeft bijvoorbeeld een monitor ingesteld voor uitvoering op 31 januari om 15:15 UUR UTC. Een venstergrootte voor het terugkijken van productiegegevens van P7D
of zeven dagen en een offset van het gegevenszoekvenster van P0D
of nul dagen betekent dat de monitor productiegegevens gebruikt van 24 januari om 17:15 UTC tot en met 31 januari om 31:15 UUR UTC, de tijd dat uw monitor wordt uitgevoerd.
Als u voor de referentiegegevens de offset van het lookbackvenster instelt op P7D
of zeven dagen, eindigt het referentiegegevensvenster vlak voordat het productiegegevensvenster wordt gestart, zodat er geen overlapping is. Vervolgens kunt u de venstergrootte voor het terugkijken van referentiegegevens zo groot als u wilt instellen.
Als u bijvoorbeeld de venstergrootte P24D
voor het terugkijken van referentiegegevens instelt op of 24 dagen, bevat het venster met referentiegegevens gegevens van 1 januari om 13:15 UTC tot en met 24 januari om 15:15 uur UTC. In het volgende diagram ziet u dit voorbeeld.
In sommige gevallen kan het handig zijn om de offset van het lookbackvenster voor uw productiegegevens in te stellen op een getal dat groter is dan nul dagen. Als uw monitor bijvoorbeeld wekelijks wordt uitgevoerd op maandag om 15:15 uur UTC, maar u geen gegevens uit het weekend in de bewakingsuitvoering wilt gebruiken, kunt u een lookback-venstergrootte van P5D
of vijf dagen en een offset van een lookbackvenster van P2D
of twee dagen gebruiken. Uw gegevensvenster begint vervolgens op de vorige maandag om 17:15 UTC en eindigt op vrijdag om 17:15 UTC.
In de praktijk moet u ervoor zorgen dat het referentiegegevensvenster en het productiegegevensvenster niet overlappen. Zoals wordt weergegeven in de volgende afbeelding, kunt u ervoor zorgen dat vensters die niet overlapping zijn uitgevoerd, door ervoor te zorgen dat de venstervergelijking P10D
van referentiegegevens, of 10 dagen in dit voorbeeld, groter of gelijk is aan de som van de grootte van het venster voor het terugkijken van productiegegevens en de offset van het lookbackvenster, zeven dagen in dit voorbeeld.
Met bewaking van Azure Machine Learning-modellen kunt u slimme standaardinstellingen gebruiken voor de grootte van het lookback-venster en de offset van het lookback-venster, of u kunt deze aanpassen aan uw behoeften. Zowel doorlopende vensters als vaste vensters worden ondersteund.
Grootte van lookbackvenster aanpassen
U hebt de flexibiliteit om een lookbackvenstergrootte te selecteren voor zowel de productiegegevens als de referentiegegevens.
Standaard is de grootte van het lookback-venster voor productiegegevens uw bewakingsfrequentie. Alle gegevens die in de bewakingsperiode worden verzameld voordat de bewakingstaak wordt uitgevoerd, worden opgenomen in het lookback-venster. U kunt de
production_data.data_window.lookback_window_size
eigenschap gebruiken om het venster met rolling gegevens voor productiegegevens aan te passen.Standaard is het lookbackvenster voor de referentiegegevens de volledige gegevensset. U kunt de
reference_data.data_window.lookback_window_size
eigenschap gebruiken om de grootte van het venster verwijzingszoekvenster aan te passen.
Als u een vast gegevensvenster voor de referentiegegevens wilt opgeven, gebruikt u de eigenschappen reference_data.data_window.window_start_date
en reference_data.data_window.window_end_date
.
Verschuiving van lookbackvenster aanpassen
U hebt de flexibiliteit om een offset van het lookbackvenster voor uw gegevensvenster te selecteren voor zowel de productiegegevens als de referentiegegevens. U kunt de offset gebruiken voor gedetailleerde controle over de gegevens die uw monitor gebruikt. De offset is alleen van toepassing op de vensters met rolling gegevens.
De offset voor productiegegevens is
P0D
standaard of nul dagen. U kunt deze offset wijzigen met deproduction_data.data_window.lookback_window_offset
eigenschap.Standaard is de offset voor referentiegegevens twee keer de
production_data.data_window.lookback_window_size
. Deze instelling zorgt ervoor dat er voldoende referentiegegevens zijn voor statistisch zinvolle bewakingsresultaten. U kunt deze offset wijzigen met dereference_data.data_window.lookback_window_offset
eigenschap.
Bewakingssignalen en metrische gegevens
Bewaking van Azure Machine Learning-modellen ondersteunt de volgende bewakingssignalen en metrische gegevens.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. De preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Bewakingssignaal | Beschrijving | Metrische gegevens voor | Modeltaken of ondersteunde gegevensindeling | Productiegegevens | Verwijzingsgegevens |
---|---|---|---|---|---|
Gegevensdrift | Houdt wijzigingen in de distributie van de invoergegevens van een model bij door de distributie te vergelijken met de trainingsgegevens van het model of recente productiegegevens. | Jensen-Shannon Distance, Population Stability Index, Normalized Wasserstein Distance, Two-Sample Kolmogorov-Smirnov Test, Pearson's Chi-Squared Test | Classificatie (tabellaire gegevens), Regressie (tabellaire gegevens) | Productiegegevens: Modelinvoer | Recente eerdere productiegegevens of trainingsgegevens |
Voorspellingsdrift | Houdt wijzigingen bij in de distributie van de voorspelde uitvoer van een model door de distributie te vergelijken met validatiegegevens, gelabelde testgegevens of recente productiegegevens. | Jensen-Shannon Distance, Population Stability Index, Normalized Wasserstein Distance, Chebyshev Distance, Two-Sample Kolmogorov-Smirnov Test, Pearson's Chi-Squared Test | Classificatie (tabellaire gegevens), Regressie (tabellaire gegevens) | Productiegegevens: Modeluitvoer | Recente eerdere productiegegevens of validatiegegevens |
Gegevenskwaliteit | Houdt de gegevensintegriteit van de invoer van een model bij door deze te vergelijken met de trainingsgegevens van het model of recente productiegegevens. De gegevenskwaliteitscontroles omvatten het controleren op null-waarden, type komt niet overeen of waarden die buiten de grenzen vallen. | Frequentie van null-waarde, foutpercentage van gegevenstype, frequentie buiten de grenzen | Classificatie (tabellaire gegevens), Regressie (tabellaire gegevens) | Productiegegevens: Modelinvoer | Recente eerdere productiegegevens of trainingsgegevens |
Afwijking van kenmerktoewijzing (preview) | Op basis van de bijdrage van functies aan voorspellingen, ook wel functiebelang genoemd. Kenmerktoewijzingsdrift houdt het belang van functies bij tijdens de productie door deze te vergelijken met het belang van functies tijdens de training. | Genormaliseerde cumulatieve winst | Classificatie (tabellaire gegevens), Regressie (tabellaire gegevens) | Productiegegevens: Modelinvoer en -uitvoer | Trainingsgegevens (vereist) |
Modelprestaties: Classificatie (preview) | Houdt de objectieve prestaties van de uitvoer van een model bij in productie door deze te vergelijken met verzamelde gegevens over waarheid. | Nauwkeurigheid, precisie en relevante overeenkomsten | Classificatie (tabellaire gegevens) | Productiegegevens: Modeluitvoer | Gegevens over de grondwaar (vereist) |
Modelprestaties: Regressie (preview) | Houdt de objectieve prestaties van de uitvoer van een model bij in productie door deze te vergelijken met verzamelde gegevens over waarheid. | Gemiddelde absolute fout (MAE), gemiddelde kwadratische fout (MSE), wortel gemiddelde kwadratische fout (RMSE) | Regressie (tabellaire gegevens) | Productiegegevens: Modeluitvoer | Gegevens over de grondwaar (vereist) |
Generatieve AI: Generatieveiligheid en -kwaliteit (preview) | Evalueert generatieve AI-toepassingen voor veiligheid en kwaliteit, met behulp van met GPT ondersteunde metrische gegevens. | Geaardheid, relevantie, fluency, gelijkenis, samenhang | Vragen en antwoorden | Sjabloon voor vragen, voltooiing, context en aantekeningen | N.v.t. |
Metrische gegevens over gegevenskwaliteit
Het bewakingssignaal voor gegevenskwaliteit houdt de integriteit van de invoergegevens van een model bij door de volgende drie metrische gegevens te berekenen:
- Null-waardefrequentie
- Foutpercentage van gegevenstype
- Snelheid buiten de grenzen
Bewaking van Azure Machine Learning-modellen ondersteunt maximaal 0.00001-precisie voor berekeningen van de null-waardesnelheid, foutpercentage van gegevenstypen en frequentie buiten de grenzen.
Null-waardefrequentie
De null-waardesnelheid is de snelheid van null-waarden in de modelinvoer voor elke functie. Als het venster productiegegevens voor bewaking bijvoorbeeld 100 rijen bevat en de waarde voor de temperature
functie null is voor 10 van deze rijen, is de null-waarde voor temperature
10%.
Azure Machine Learning biedt ondersteuning voor het berekenen van de null-waardesnelheid voor alle functiegegevenstypen.
Foutpercentage van gegevenstype
Tijdens elke bewakingsuitvoering wordt het gegevenstype voor elke functie afgeleid van de referentiegegevens. De foutsnelheid van het gegevenstype is de snelheid van verschillen in gegevenstypen tussen het huidige productiegegevensvenster en de referentiegegevens.
Als het gegevenstype voor de temperature
functie bijvoorbeeld wordt afgeleid IntegerType
uit de verwijzingsgegevens, maar in het productiegegevensvenster zijn 10 van de 100 waarden voor temperature
tekenreeksen niet IntegerType
, maar tekenreeksen zijn, is het foutpercentage voor temperature
het gegevenstype 10%.
Azure Machine Learning biedt ondersteuning voor het berekenen van het foutpercentage van het gegevenstype voor de volgende gegevenstypen die beschikbaar zijn in PySpark: ShortType
, , BooleanType
, BinaryType
TimestampType
DoubleType
, StringType
, FloatType
IntegerType
, , ByteType
en . LongType
DateType
Als het gegevenstype voor een functie niet in deze lijst staat, wordt de bewaking van Azure Machine Learning-modellen nog steeds uitgevoerd, maar wordt het foutpercentage van het gegevenstype voor die functie niet berekend.
Snelheid buiten de grenzen
Tijdens elke bewakingsuitvoering bepaalt azure Machine Learning-modelbewaking het acceptabele bereik of de set voor elke functie op basis van de referentiegegevens. De out-of-bounds-snelheid is de snelheid van waarden voor elke functie die buiten het juiste bereik valt of die wordt bepaald door de referentiegegevens.
- Voor numerieke functies is het juiste bereik het numerieke interval tussen de minimum- en maximumwaarden in de referentiegegevensset, zoals
[0, 100]
. - Voor categorische functies, zoals
color
, is het juiste bereik een set van alle waarden in de referentiegegevensset, zoals[red, yellow, green]
.
Als u bijvoorbeeld een numerieke temperature
functie hebt waarbij alle waarden in de referentiegegevensset binnen het bereik [37, 77]
vallen, maar 10 van de 100 waarden voor temperature
in het productiegegevensvenster buiten het bereik [37, 77]
vallen, is de snelheid buiten de grenzen voor temperature
10%.
Azure Machine Learning biedt ondersteuning voor het berekenen van de out-of-bounds-snelheid voor de volgende gegevenstypen die beschikbaar zijn in PySpark: StringType
, IntegerType
, DoubleType
, ByteType
, en LongType
.FloatType
Als het gegevenstype voor een functie niet in deze lijst staat, wordt de bewaking van Azure Machine Learning-modellen nog steeds uitgevoerd, maar wordt de snelheid buiten de grenzen voor die functie niet berekend.
Integratie van modelbewaking met Azure Event Grid
U kunt gebeurtenissen gebruiken die worden gegenereerd door bewaking van Azure Machine Learning-modellen om gebeurtenisgestuurde toepassingen, processen of CI/CD-werkstromen (continue integratie/continue levering) in te stellen met Azure Event Grid. Wanneer uw modelmonitor afwijkingen, problemen met de gegevenskwaliteit of prestatievermindering van het model detecteert, kunt u deze gebeurtenissen bijhouden met Event Grid en programmatisch actie ondernemen.
Als de nauwkeurigheid van uw classificatiemodel bijvoorbeeld lager is dan een bepaalde drempelwaarde, kunt u Event Grid gebruiken om een hertrainingstaak te starten die gebruikmaakt van verzamelde gegevens voor waarheid. Zie Prestaties van modellen bewaken die zijn geïmplementeerd in productie voor meer informatie over het integreren van Azure Machine Learning met Event Grid.