Integrieren eines Modells

Abgeschlossen

Sie sollten planen, wie Sie das Modell integrieren, da dies Auswirkungen darauf hat, wie Sie das Modell trainieren oder welche Trainingsdaten Sie nutzen. Um das Modell zu integrieren, müssen Sie ein Modell an einem Endpunkt bereitstellen. Sie können ein Modell entweder für Echtzeit- oder Batchvorhersagen an einem Endpunkt bereitstellen.

Bereitstellen eines Modells auf einem Endpunkt

Wenn Sie ein Modell trainieren, besteht das Ziel häufig darin, das Modell in eine Anwendung zu integrieren.

Um ein Modell einfach in eine Anwendung zu integrieren, können Sie Endpunkte verwenden. Einfach ausgedrückt, kann ein Endpunkt eine Webadresse sein, die eine Anwendung aufrufen kann, um eine Nachricht zurückzuerhalten.

Wenn Sie ein Modell an einem Endpunkt bereitstellen, haben Sie zwei Optionen:

  • Echtzeitvorhersagen abrufen
  • Batchvorhersagen abrufen

Abrufen von Echtzeitvorhersagen

Wenn Sie möchten, dass das Modell alle neu eingehenden Daten bewertet, benötigen Sie Vorhersagen in Echtzeit.

Vorhersagen in Echtzeit sind häufig erforderlich, wenn ein Modell von einer Anwendung wie einer mobilen App oder Website verwendet wird.

Stellen Sie sich vor, Sie haben eine Website, die Ihren Produktkatalog enthält:

  1. Ein Kunde wählt ein Produkt auf Ihrer Website aus, z. B. ein Hemd.
  2. Basierend auf der Auswahl des Kunden empfiehlt das Modell sofort andere Artikel aus dem Produktkatalog. Die Website zeigt die Empfehlungen des Modells an.

Abbildung einer Website eines Webshops. Oben wird ein Hemd gezeigt, unten werden die Empfehlungen basierend auf dem Hemd gezeigt.

Ein Kunde kann jederzeit ein Produkt im Webshop auswählen. Sie möchten, dass das Modell die Empfehlungen nahezu sofort findet. Die Zeit, die es dauert, bis die Webseite geladen ist und die Hemddetails anzeigt, sollte die gleiche Zeit sein, die zum Erhalten der Empfehlungen oder Vorhersagen benötigt wird. Wenn dann das Hemd angezeigt wird, können auch die Empfehlungen angezeigt werden.

Abrufen von Batchvorhersagen

Wenn Sie möchten, dass das Modell neue Daten in Batches bewertet und die Ergebnisse als Datei oder in einer Datenbank speichert, benötigen Sie Batchvorhersagen.

Sie können beispielsweise ein Modell trainieren, das den Verkauf von Orangensaft für jede künftige Woche vorhersagt. Durch Vorhersagen des Orangensaftumsatzes können Sie sicherstellen, dass das Angebot ausreicht, um die erwartete Nachfrage zu erfüllen.

Stellen Sie sich vor, Sie visualisieren alle verlaufsbezogenen Umsatzsdaten in einem Bericht. Sie möchten die vorhergesagten Umsätze im selben Bericht aufnehmen.

Diagramm eines Berichts mit mehreren Graphen. Einer der Graphen ist ein Liniendiagramm mit einem blauen Pfeil, der die prognostizierten Werte hervorhebt.

Obwohl Orangensaft den ganzen Tag über verkauft wird, möchten Sie die Vorhersage nur einmal pro Woche berechnen. Sie können die Umsatzdaten während der gesamten Woche sammeln und das Modell nur dann aufrufen, wenn Sie die Umsatzdaten einer ganzen Woche haben. Eine Sammlung von Datenpunkten wird als Batch bezeichnet.

Entscheidung zwischen Echtzeit- oder Batchbereitstellung

Um zu entscheiden, ob eine Echtzeit- oder Batchbereitstellungslösung entworfen werden soll, müssen Sie die folgenden Fragen berücksichtigen:

  • Wie oft sollten Vorhersagen generiert werden?
  • Wie schnell werden die Ergebnisse benötigt?
  • Sollten Vorhersagen einzeln oder in Batches generiert werden?
  • Wie viel Computeleistung ist für die Ausführung des Modells erforderlich?

Bestimmen der erforderlichen Bewertungshäufigkeit

Ein gängiges Szenario ist, dass Sie neue Daten mithilfe eines Modells bewerten. Bevor Sie Vorhersagen in Echtzeit oder im Batch erhalten können, müssen Sie zuerst die neuen Daten sammeln.

Es gibt verschiedene Möglichkeiten, Daten zu generieren oder zu sammeln. Neue Daten können auch in unterschiedlichen Zeitintervallen gesammelt werden.

Beispielsweise können Sie jede Minute Temperaturdaten von einem IoT-Gerät (Internet of Things, Internet der Dinge) sammeln. Sie können Transaktionsdaten jedes Mal abrufen, wenn ein Kunde ein Produkt in Ihrem Webshop kauft. Alternativ können Sie alle drei Monate Finanzdaten aus einer Datenbank extrahieren.

Im Allgemeinen gibt es zwei Arten von Anwendungsfällen:

  1. Sie benötigen das Modell, um die neuen Daten zu bewerten, sobald sie eingehen.
  2. Sie können das Modell planen oder auslösen, um die neuen Daten zu bewerten, die Sie im Zeitverlauf gesammelt haben.

Diagramm einer visuellen Darstellung von Echtzeit- und Batchvorhersagen.

Ob Sie Echtzeit- oder Batchvorhersagen wünschen, hängt nicht unbedingt davon ab, wie oft neue Daten gesammelt werden. Stattdessen hängt es davon ab, wie oft und wie schnell die Vorhersagen generiert werden müssen.

Wenn Sie die Vorhersagen des Modells sofort benötigen, sobald neue Daten gesammelt wurden, benötigen Sie Echtzeitvorhersagen. Wenn die Vorhersagen des Modells nur zu bestimmten Zeiten genutzt werden, benötigen Sie Batchvorhersagen.

Bestimmen Sie die Anzahl der Vorhersagen

Eine weitere wichtige Frage, die Sie sich stellen sollten, ist, ob die Vorhersagen einzeln oder in Batches generiert werden müssen.

Eine einfache Möglichkeit, den Unterschied zwischen individuellen und Batchvorhersagen zu veranschaulichen, besteht darin, sich eine Tabelle vorzustellen. Angenommen, Sie verfügen über eine Tabelle mit Kundendaten, in der jede Zeile einen Kunden darstellt. Für jeden Kunden verfügen Sie über einige demografische und Verhaltensdaten, z. B. die Anzahl der von ihm in Ihrem Webshop gekauften Produkte und das Datum des letzten Kaufs.

Anhand dieser Daten können Sie Kundenabwanderungen vorhersagen, d. h. ob ein Kunde erneut in Ihrem Webshop kaufen wird oder nicht.

Nachdem Sie das Modell trainiert haben, können Sie entscheiden, ob Sie Vorhersagen generieren möchten:

  • Individuell: Das Modell empfängt eine einzelne Datenzeile und gibt zurück, ob dieser individuelle Kunde erneut kaufen wird oder nicht.
  • Batch: Das Modell empfängt mehrere Datenzeilen in einer Tabelle und gibt zurück, ob einzelne Kunden erneut kaufen werden oder nicht. Die Ergebnisse werden in einer Tabelle sortiert, die alle Vorhersagen enthält.

Sie können auch individuelle oder Batchvorhersagen generieren, wenn Sie mit Dateien arbeiten. Wenn Sie beispielsweise mit einem Modell für maschinelles Sehen arbeiten, müssen Sie möglicherweise ein einzelnes Bild individuell oder eine Sammlung von Bildern in einem Batch bewerten.

Berücksichtigen der Computekosten

Zusätzlich zur Nutzung von Computekapazität beim Trainieren eines Modells benötigen Sie auch beim Bereitstellen eines Modells Computekapazität. Je nachdem, ob Sie das Modell an einem Echtzeit- oder Batchendpunkt bereitstellen, verwenden Sie verschiedene Computetypen. Um zu entscheiden, ob Ihr Modell auf einem Echtzeit- oder Batch-Endpunkt bereitgestellt werden soll, müssen Sie die Kosten der einzelnen Computetypen berücksichtigen.

Wenn Sie Echtzeitvorhersagen brauchen, benötigen Sie Computekapazität, die stets verfügbar ist und die Ergebnisse (nahezu) sofort zurückgeben kann. Containertechnologien wie Azure Container Instance (ACI) und Azure Kubernetes Service (AKS) eignen sich ideal für solche Szenarien, da sie für Ihr bereitgestelltes Modell eine schlanke Infrastruktur bieten.

Wenn Sie jedoch ein Modell an einem Echtzeitendpunkt bereitstellen und eine solche Containertechnologie verwenden, ist die Computekapazität stets aktiviert. Sobald ein Modell bereitgestellt ist, zahlen Sie kontinuierlich für die Computekapazität, da Sie sie nicht unterbrechen oder anhalten können, weil das Modell stets für sofortige Vorhersagen verfügbar sein muss.

Wenn Sie dagegen Batchvorhersagen brauchen, ist eine Computekapazität erforderlich, die eine große Workload verarbeiten kann. Im Idealfall arbeiten Sie mit einem Computecluster, der die Daten in parallelen Batches mithilfe mehrerer Knoten bewerten kann.

Wenn Sie mit Compute-Clustern arbeiten, die Daten in parallelen Batches verarbeiten können, stellt der Arbeitsbereich die Rechenressourcen bereit, wenn die Batchverarbeitung ausgelöst wird, und skaliert die Anzahl der Knoten auf null herunter, wenn keine neuen Daten zu verarbeiten sind. Wenn Sie den Arbeitsbereich einen Computecluster im Leerlauf herunterskalieren lassen, können Sie erhebliche Kosten sparen.