Vorbereiten eines Modells für die Bereitstellung
Um einen Wert aus einem Machine Learning-Modell zu erhalten, stellen Sie es bereit , damit es Vorhersagen generieren kann, wenn das Unternehmen sie benötigt. Bevor Sie die Bereitstellung vornehmen, treffen Sie jedoch einige Entscheidungen, die die Funktionsweise der restlichen Pipeline gestalten.
Bei Proseware, einem Gesundheitstechnologieunternehmen, trainiert das Data Science-Team ein Klassifikationsmodell, das voraussagt, ob ein Patient wahrscheinlich einen bevorstehenden Kliniktermin verpassen wird. Klinikmitarbeiter verwenden diese No-Show-Risikobewertung, um zu entscheiden, welche Patienten rechtzeitig anrufen sollen, um zu bestätigen, so dass die Klinik Slots ausfüllen kann, die sonst leer gehen würden. Das Modell ist für den Produktionseinsatz genau genug. Ihre Herausforderung besteht darin, Vorhersagen zuverlässig bereitzustellen – in einem Prozess, den das Team jedes Mal wiederholen kann, wenn das Modell erneut trainiert wird.
Auswählen eines Endpunkttyps
Azure Machine Learning unterstützt zwei Endpunkttypen, und die Auswahl hängt davon ab, wie die Vorhersage genutzt wird. Ein Batch-Endpunkt generiert nach einem Zeitplan Vorhersagen für eine große Menge von Datensätzen, was sich für regelmäßige Scoring-Jobs eignet. Ein Onlineendpunkt gibt eine Vorhersage synchron mit geringer Latenz zurück, sobald er eine Anforderung empfängt.
Das Planungssystem von Proseware ruft das Modell auf, sobald Mitarbeiter einen Termin buchen oder neu planen, sodass er sofort Hochrisikotermine für einen Bestätigungsanruf an diesem Tag kennzeichnen kann. Da die Vorhersage sofort zurückkehren muss, stellt das Team das Modell auf einem verwalteten Onlineendpunkt bereit.
Registrieren des Modells mit MLflow
Das Data Science-Team trainiert das No-Show-Risikomodell und verpackt es mit MLflow, einer Open-Source-Plattform zum Nachverfolgen von Machine Learning-Experimenten und Verpackungsmodellen in einem Standardformat. Wenn das Schulungsskript aufruft mlflow.autolog(), protokolliert MLflow automatisch das Modell, seine Parameter und seine Metriken als Teil der Ausgabe des Schulungsauftrags.
Da das Modell als MLflow-Modell verpackt ist, können Sie es direkt aus der Ausgabe des Auftrags registrieren, ohne ein benutzerdefiniertes Bewertungsskript zu schreiben oder eine Umgebung selbst zu definieren. Azure Machine Learning generiert beide während der Bereitstellung aus den MLflow-Metadaten des Modells, eine Funktion, die als No-Code-Bereitstellung bezeichnet wird. Ein Team, das mit einem benutzerdefinierten Modellformat wie z. B. einer Pickle-Datei arbeitet, müsste das entsprechende Bewertungsskript und die entsprechende Umgebung erstellen und pflegen.
Tip
Erfahren Sie mehr über die Bereitstellung von MLflow-Modellen in Azure Machine Learning.
Um das Modell zu registrieren, verweisen Sie entweder auf die Ausgabe eines abgeschlossenen Schulungsauftrags oder auf eine Modelldatei, die in einem Arbeitsbereichsdatenspeicher gespeichert ist. Nach der Registrierung wird das Modell zu einem versionierten Asset im Arbeitsbereich, auf das Sie oder ein automatisierter Workflow beim Erstellen einer Bereitstellung unter Angabe von Namen und Version verweisen können.
Während sich das Modell weiterentwickelt, registrieren Sie geänderte Artefakte als neue Versionen, anstatt eine vorhandene Version zu ersetzen. Sie können die Beschreibung und Tags einer Version aktualisieren, andere Änderungen erfordern jedoch eine neue Version. Archivieren Sie Versionen, die Sie nicht mehr in Standardlisten wünschen. Die Archivierung löscht kein Modell, und Workflows können bei Bedarf weiterhin auf eine archivierte Version verweisen.
Tip
Erfahren Sie mehr über das Verwalten registrierter Modelle.
Plan für wiederholbare Bereitstellungen
Die manuelle Registrierung und Bereitstellung eines Modells ist für eine erste Veröffentlichung noch praktikabel, aber Proseware rechnet damit, das No-Show-Modell regelmäßig erneut zu trainieren, wenn neue Termindaten eingehen. Das Wiederholen der gleichen manuellen Schritte für jede neue Version ist langsam und fehleranfällig, sodass das Ziel des Teams ist, die Registrierung, Bereitstellung und Tests über eine Pipeline zu automatisieren, auf die sich der Rest dieses Moduls stützt.