Een model voorbereiden voor implementatie

Voltooid

Als u waarde wilt ophalen uit een machine learning-model, implementeert u het zodat het voorspellingen kan genereren wanneer het bedrijf ze nodig heeft. Voordat u de implementatie uitvoert, neemt u echter enkele beslissingen die bepalen hoe de rest van de pijplijn werkt.

Bij Proseware, een technologiebedrijf voor gezondheidszorg, traint het data science-team een classificatiemodel dat voorspelt of een patiënt waarschijnlijk een aanstaande afspraak in de kliniek mist. Het personeel van de kliniek gebruikt deze no-show risicoscore om te bepalen welke patiënten van tevoren moeten bellen om te bevestigen, zodat de kliniek slots kan vullen die anders leeg zouden gaan. Het model is nauwkeurig genoeg voor productiegebruik. Uw uitdaging is om het op betrouwbare wijze voorspellingen te laten leveren, via een proces dat het team elke keer kan herhalen wanneer het model opnieuw wordt getraind.

Een eindpunttype kiezen

Azure Machine Learning ondersteunt twee typen eindpunten, en de keuze hangt af van hoe de voorspelling wordt gebruikt. Een batch-eindpunt genereert voorspellingen voor een grote set records volgens een schema, wat geschikt is voor periodieke scoretaken. Een online-eindpunt retourneert een voorspelling synchroon, met lage latentie, op het moment dat het een aanvraag ontvangt.

Het planningssysteem van Proseware roept het model aan zodra het personeel een afspraak boekt of opnieuw plant, zodat deze onmiddellijk afspraken met een hoog risico kan markeren voor een bevestigingsgesprek die dag. Omdat de voorspelling meteen moet terugkomen, implementeert het team het model naar een beheerd online-eindpunt.

Het model registreren bij MLflow

Het data science-team traint het no-showrisicomodel en verpakt het met MLflow, een open-sourceplatform voor het bijhouden van machine learning-experimenten en het verpakken van modellen in een standaardformaat. Wanneer het trainingsscript aanroept mlflow.autolog(), registreert MLflow automatisch het model, de parameters en de metrische gegevens als onderdeel van de uitvoer van de trainingstaak.

Omdat het model is verpakt als een MLflow-model, kunt u het rechtstreeks registreren vanuit de uitvoer van de taak zonder een aangepast scorescript te schrijven of zelf een omgeving te definiëren. Azure Machine Learning genereert beide uit de MLflow-metagegevens van het model tijdens de implementatie, een mogelijkheid die bekend staat als implementatie zonder code. Een team dat werkt met een aangepaste modelindeling, zoals een pickle-bestand, moet dat scorescript en de omgeving ontwerpen en onderhouden.

Als u het model wilt registreren, wijst u de uitvoer van een voltooide trainingstaak of een modelbestand aan dat is opgeslagen in een gegevensarchief van een werkruimte. Zodra het model is geregistreerd, wordt het een asset met versiebeheer in de werkruimte waarnaar u, of een geautomatiseerde werkstroom, op naam en versie kunt verwijzen wanneer u een implementatie maakt.

Naarmate het model zich ontwikkelt, registreert u gewijzigde artefacten als nieuwe versies in plaats van een bestaande versie te vervangen. U kunt de beschrijving en tags van een versie bijwerken, maar voor andere wijzigingen is een nieuwe versie vereist. Archiefversies die u niet meer wilt gebruiken in standaardlijsten. Archiveren verwijdert geen model en werkstromen kunnen nog steeds verwijzen naar een gearchiveerde versie wanneer dat nodig is.

Tip

Meer informatie over het beheren van geregistreerde modellen.

Plan voor herhaalbare implementatie

Het handmatig registreren en implementeren van een model werkt handmatig voor een eerste release, maar Proseware verwacht dat het no-show-model regelmatig opnieuw wordt getraind wanneer er nieuwe afspraakgegevens binnenkomen. Het herhalen van dezelfde handmatige stappen voor elke nieuwe versie is traag en foutgevoelig, dus het doel van het team is om registratie, implementatie en testen te automatiseren via een pijplijn, wat de rest van deze module verder ontwikkelt.