Nachdem ein Modell für maschinelles Lernen trainiert wurde, besteht der nächste Schritt darin, es zu verwenden, um Vorhersagen zu neuen Daten zu treffen. Dieser Prozess, auch Inferenz genannt, erfordert eine Strategie, die stark von den Latenz- und Durchsatzanforderungen Ihrer Anwendung abhängt. Die Batch-Inferenz, auch Offline-Inferenz oder asynchrone Verarbeitung genannt, ist eine leistungsstarke und hocheffiziente Methode, um Vorhersagen für große Datenmengen zu generieren, wenn keine sofortigen Echtzeitantworten erforderlich sind.
Die Batch-Inferenz ist der Prozess, bei dem ein trainiertes Machine-Learning-Modell verwendet wird, um Vorhersagen für eine große Menge von Beobachtungen, oder einen „Batch“, auf einmal zu generieren.
Im Gegensatz zur Online-Inferenz, bei der Vorhersagen für einzelne Datenpunkte erstellt werden, sobald diese eintreffen, werden bei der Batch-Inferenz Daten verarbeitet, die über einen bestimmten Zeitraum gesammelt wurden. Bei diesem Ansatz haben hoher Durchsatz und Recheneffizienz Vorrang vor niedriger Latenz. Da die Verarbeitung offline und nicht als direkte Antwort auf eine Nutzeranfrage erfolgt, wird sie auch als statische Inferenz bezeichnet – die Vorhersagen werden generiert und für die spätere Verwendung gespeichert.
Die Entscheidung zwischen Batch- und Online-Inferenz ist eine grundlegende architektonische Entscheidung beim Entwurf eines Machine-Learning-Systems. Jeder Ansatz dient einem anderen Zweck und ist für unterschiedliche Leistungsmerkmale optimiert.
Feature | Batch-Inferenz | Online-Inferenz |
Datenverarbeitung | Verarbeitet eine große Sammlung von Datenpunkten zusammen in einem einzigen Job. | Verarbeitet einen einzelnen Datenpunkt oder eine sehr kleine Gruppe von Datenpunkten, sobald sie eintreffen. |
Primäre Optimierung | Hoher Durchsatz und Kosteneffizienz. | Niedrige Latenz und sofortige Reaktionsfähigkeit. |
Latenz | Hohe Latenz; Vorhersagen sind nicht sofort verfügbar (Minuten bis Stunden). | Sehr niedrige Latenz; Vorhersagen werden in Millisekunden zurückgegeben. |
Aufruf | Auslösung nach Zeitplan (z. B. Cronjob) oder bei Bedarf. | Wird durch eine direkte Nutzeranfrage oder ein Ereignis im System ausgelöst. |
Rechenauslastung | Sie können leistungsstarke Rechenressourcen für einen kurzen Zeitraum nutzen und dann auf null herunterfahren. | Erfordert einen Server oder Endpunkt, der ständig ausgeführt wird und bereit ist, Anfragen anzunehmen. |
Anwendungsbeispiel | Generieren Sie tägliche Produktempfehlungen für alle Nutzer einer E-Commerce-Website. | Vorhersagen, ob eine einzelne Kreditkartentransaktion betrügerisch ist, während sie stattfindet. |
Synonyme Begriffe | Offline-Inferenz, asynchrone Verarbeitung, statische Inferenz. | Inferenz in Echtzeit, synchrone Verarbeitung, dynamische Inferenz. |
Feature
Batch-Inferenz
Online-Inferenz
Datenverarbeitung
Verarbeitet eine große Sammlung von Datenpunkten zusammen in einem einzigen Job.
Verarbeitet einen einzelnen Datenpunkt oder eine sehr kleine Gruppe von Datenpunkten, sobald sie eintreffen.
Primäre Optimierung
Hoher Durchsatz und Kosteneffizienz.
Niedrige Latenz und sofortige Reaktionsfähigkeit.
Latenz
Hohe Latenz; Vorhersagen sind nicht sofort verfügbar (Minuten bis Stunden).
Sehr niedrige Latenz; Vorhersagen werden in Millisekunden zurückgegeben.
Aufruf
Auslösung nach Zeitplan (z. B. Cronjob) oder bei Bedarf.
Wird durch eine direkte Nutzeranfrage oder ein Ereignis im System ausgelöst.
Rechenauslastung
Sie können leistungsstarke Rechenressourcen für einen kurzen Zeitraum nutzen und dann auf null herunterfahren.
Erfordert einen Server oder Endpunkt, der ständig ausgeführt wird und bereit ist, Anfragen anzunehmen.
Anwendungsbeispiel
Generieren Sie tägliche Produktempfehlungen für alle Nutzer einer E-Commerce-Website.
Vorhersagen, ob eine einzelne Kreditkartentransaktion betrügerisch ist, während sie stattfindet.
Synonyme Begriffe
Offline-Inferenz, asynchrone Verarbeitung, statische Inferenz.
Inferenz in Echtzeit, synchrone Verarbeitung, dynamische Inferenz.
Eine Batch-Inferenzpipeline ist ein strukturierter, automatisierter Workflow, der Daten von ihrem Rohzustand in verwertbare Vorhersagen überführt. Der Prozess lässt sich in diese wichtigsten Schritte unterteilen, die in der Regel von einem Workflow-Manager oder einem Planungssystem orchestriert werden.
Der Prozess beginnt damit, dass im Laufe der Zeit Daten gesammelt werden. Diese Eingabedaten, die Nutzeraktivitätslogs, Transaktionsdatensätze oder Sensormesswerte umfassen können, werden aus verschiedenen Quellen erfasst und an einem zentralen Speicherort abgelegt. Dabei handelt es sich oft um einen Data Lake, der auf einem Dienst wie Google Cloud Storage basiert, oder um ein Data Warehouse wie BigQuery.
Die Inferenzpipeline wird durch einen Trigger initiiert. Dieser Trigger kann Folgendes sein:
Nach dem Auslösen lädt der Job den gesamten Batch mit Roh-Eingabedaten. Anschließend werden die notwendigen Schritte zur Vorverarbeitung und zum Feature Engineering durchgeführt, um die Daten in das Format zu bringen, das das Machine-Learning-Modell erwartet. Dazu gehören Aufgaben wie das Bereinigen fehlender Werte, das Skalieren numerischer Merkmale und das Codieren kategorialer Variablen.
Das System ruft das trainierte ML-Modell aus einem zentralen Repository wie der Vertex AI Model Registry ab. Der vorverarbeitete Daten-Batch wird dann an das Modell übergeben, das für jede einzelne Beobachtung im Set eine Inferenz ausführt, um eine entsprechende Vorhersage zu generieren.
Die Ausgabe des Modells – die Sammlung von Vorhersagen – wird dann in ein Speichersystem geschrieben. Das Ziel wird basierend auf der Verwendung der Vorhersagen ausgewählt. Häufige Ziele sind das Laden der Ergebnisse in eine BigQuery-Tabelle zur Analyse, eine Cloud SQL-Datenbank für schnelle Abfragen durch eine Anwendung oder das Speichern als Dateien in Cloud Storage.
Die Vorhersagen sind jetzt gespeichert und können von nachgelagerten Systemen verwendet werden. Ein Business Intelligence-Tool könnte die Ergebnisse abfragen, um ein Dashboard mit dem vorhergesagten Kundenverhalten zu erstellen. Das Backend einer Webanwendung kann die vorab berechneten Produktempfehlungen laden, um sie den Nutzern anzuzeigen. Eine Marketingautomatisierungsplattform kann eine Liste von Kunden abrufen, bei denen ein Abwandern prognostiziert wird, um sie mit einer neuen Kampagne anzusprechen.
Für viele Anwendungsfälle in Unternehmen bietet die Batch-Inferenz erhebliche Vorteile gegenüber der Echtzeitverarbeitung.
Kosteneffizienz
Mit der Batchverarbeitung können Sie Ihre Rechenressourcen optimal nutzen. Sie können große Jobs auf leistungsstarker Hardware für einen kurzen Zeitraum ausführen und die Ressourcen dann herunterfahren. So vermeiden Sie die Kosten für die Wartung eines kontinuierlich laufenden Servers.
Hoher Durchsatz und Skalierbarkeit
Batch-Systeme sind so konzipiert, dass sie skaliert werden können und Terabytes an Daten effizient verarbeiten. So können komplexe Modelle auf sehr große Datasets angewendet werden, was für ein Online-System zu langsam oder zu teuer wäre.
Einfache Abläufe
Batch-Inferenzpipelines sind einfacher zu erstellen und zu verwalten als hochverfügbare Online-Inferenzsysteme mit niedriger Latenz. Sie sind im Allgemeinen widerstandsfähiger gegen vorübergehende Fehler und können bei einem Jobausfall einfach neu ausgeführt werden.
Ermöglicht komplexes Feature Engineering
Da die Batch-Inferenz nicht durch Anforderungen an eine niedrige Latenz eingeschränkt ist, können Sie komplexere und rechenintensive Feature-Engineering-Verfahren auf Ihre Eingabedaten anwenden, was oft zu genaueren Modellen führt.
Bessere Ressourcennutzung
Sie können Batch-Jobs so planen, dass sie außerhalb der Spitzenzeiten ausgeführt werden. So nutzen Sie die ungenutzte Rechenkapazität und profitieren möglicherweise von niedrigeren Spot-Preisen für virtuelle Maschinen.
Die Batch-Inferenz ist die bevorzugte Methode für viele zentrale Geschäftsprozesse, bei denen Vorhersagen ein Produkt oder eine Dienstleistung verbessern, ohne in Echtzeit generiert werden zu müssen. Dieser Ansatz kann in verschiedenen Branchen sehr effektiv sein, um umfangreiche Datenprobleme zu lösen.
Branche | Zu lösendes Problem | Lösungsbeispiel |
E-Commerce und Einzelhandel | Täglich personalisierte Produktempfehlungen für alle Nutzer generieren, damit sie schnell abgerufen werden können, wenn Nutzer die Website besuchen. | Vertex AI Batch Predictions kann ein Empfehlungsmodell ausführen und die Ergebnisse in eine Datenbank für schnelle Suchvorgänge wie Cloud SQL oder Bigtable laden. |
Telekommunikation und SaaS | Identifizieren Sie Kunden mit hohem Abwanderungsrisiko im nächsten Monat, indem Sie Nutzungsmuster in der gesamten Kundendatenbank analysieren. | Mit BigQuery ML können Sie ein Klassifikationsmodell direkt für die im Data Warehouse gespeicherten Kundendaten ausführen. Die Ergebnisse werden in eine neue Tabelle für das Kundenbindungsteam geschrieben. |
Finanz- und Versicherungswesen | Finanzmarkttrends vorhersagen oder Risikobewertungen für ein gesamtes Portfolio von Vermögenswerten berechnen. Dies ist eine rechenintensive Aufgabe, die regelmäßig durchgeführt wird. | Mit Vertex AI Batch Predictions lassen sich komplexe Zeitreihenmodelle nach Zeitplan ausführen. So erhalten Sie die Daten, die Sie für strategische Berichte und Dashboards benötigen. |
Logistik und Versorgungskette | Optimieren Sie die Lagerbestände in Hunderten von Lagern, indem Sie eine komplexe Simulation zur Nachfrageprognose auf der Grundlage wöchentlicher Verkaufs- und Logistikdaten durchführen. | Die Google Kubernetes Engine (GKE) bietet die angepasste, leistungsstarke Umgebung, die für die Ausführung spezialisierter Simulationsmodelle mit spezifischen Bibliotheks- und Hardwareanforderungen erforderlich ist. |
Gesundheitswesen | Analysieren Sie eine große tägliche Menge medizinischer Bilder (z. B. Röntgenbilder oder CT-Scans), um potenzielle Anomalien zu erkennen, die später von einem Radiologen überprüft werden können. | GKE mit GPU-Beschleunigern eignet sich ideal für die Ausführung von Deep-Learning-Modellen für Computer Vision mit großen Bildmengen und bietet maximale Kontrolle und Leistung. |
Rechtliches und Compliance | Sie können Millionen vorhandener Dokumente verarbeiten und klassifizieren, um wichtige Entitäten zu extrahieren, das Sentiment zu bewerten und den gesamten Korpus durchsuchbar und analysierbar zu machen. | Mit Dataflow lässt sich eine skalierbare NLP-Pipeline erstellen, die den Text vorverarbeitet und Inferenz ausführt. GKE eignet sich für benutzerdefinierte Modellanforderungen. |
Branche
Zu lösendes Problem
Lösungsbeispiel
E-Commerce und Einzelhandel
Täglich personalisierte Produktempfehlungen für alle Nutzer generieren, damit sie schnell abgerufen werden können, wenn Nutzer die Website besuchen.
Vertex AI Batch Predictions kann ein Empfehlungsmodell ausführen und die Ergebnisse in eine Datenbank für schnelle Suchvorgänge wie Cloud SQL oder Bigtable laden.
Telekommunikation und SaaS
Identifizieren Sie Kunden mit hohem Abwanderungsrisiko im nächsten Monat, indem Sie Nutzungsmuster in der gesamten Kundendatenbank analysieren.
Mit BigQuery ML können Sie ein Klassifikationsmodell direkt für die im Data Warehouse gespeicherten Kundendaten ausführen. Die Ergebnisse werden in eine neue Tabelle für das Kundenbindungsteam geschrieben.
Finanz- und Versicherungswesen
Finanzmarkttrends vorhersagen oder Risikobewertungen für ein gesamtes Portfolio von Vermögenswerten berechnen. Dies ist eine rechenintensive Aufgabe, die regelmäßig durchgeführt wird.
Mit Vertex AI Batch Predictions lassen sich komplexe Zeitreihenmodelle nach Zeitplan ausführen. So erhalten Sie die Daten, die Sie für strategische Berichte und Dashboards benötigen.
Logistik und Versorgungskette
Optimieren Sie die Lagerbestände in Hunderten von Lagern, indem Sie eine komplexe Simulation zur Nachfrageprognose auf der Grundlage wöchentlicher Verkaufs- und Logistikdaten durchführen.
Die Google Kubernetes Engine (GKE) bietet die angepasste, leistungsstarke Umgebung, die für die Ausführung spezialisierter Simulationsmodelle mit spezifischen Bibliotheks- und Hardwareanforderungen erforderlich ist.
Gesundheitswesen
Analysieren Sie eine große tägliche Menge medizinischer Bilder (z. B. Röntgenbilder oder CT-Scans), um potenzielle Anomalien zu erkennen, die später von einem Radiologen überprüft werden können.
GKE mit GPU-Beschleunigern eignet sich ideal für die Ausführung von Deep-Learning-Modellen für Computer Vision mit großen Bildmengen und bietet maximale Kontrolle und Leistung.
Rechtliches und Compliance
Sie können Millionen vorhandener Dokumente verarbeiten und klassifizieren, um wichtige Entitäten zu extrahieren, das Sentiment zu bewerten und den gesamten Korpus durchsuchbar und analysierbar zu machen.
Mit Dataflow lässt sich eine skalierbare NLP-Pipeline erstellen, die den Text vorverarbeitet und Inferenz ausführt. GKE eignet sich für benutzerdefinierte Modellanforderungen.
Vertex AI ist die verwaltete Machine-Learning-Plattform von Google Cloud und bietet einen optimierten, serverlosen Ansatz für Batch-Inferenz. Dabei geht es darum, einen Job zu konfigurieren und die Plattform die zugrunde liegende Infrastruktur verwalten zu lassen.
Bevor Sie beginnen, benötigen Sie drei Dinge:
Sie können den Job über die Google Cloud Console, das gcloud-Befehlszeilentool oder programmatisch mit dem Vertex AI SDK starten. Beim Erstellen des Jobs geben Sie die folgende Konfiguration an:
Sobald Sie den Job senden, übernimmt Vertex AI. Es stellt automatisch die von Ihnen angegebenen Rechenressourcen bereit, führt Ihre Eingabedaten durch das Modell, generiert die Vorhersagen und speichert sie am angegebenen Ausgabespeicherort. Nach Abschluss des Jobs skaliert Vertex AI automatisch alle Ressourcen auf null herunter, sodass Sie nur für die genutzte Rechenzeit bezahlen. Sie können den Fortschritt des Jobs überwachen und Logs direkt in der Google Cloud Console aufrufen.
Sobald der Jobstatus „Erfolgreich“ lautet, sind Ihre Vorhersagen bereit. Die Ausgabedateien in Cloud Storage oder die neue Tabelle in BigQuery können jetzt von Ihren nachgelagerten Anwendungen, Analysetools oder BI-Dashboards aufgerufen werden.
Die Verwendung der Google Kubernetes Engine (GKE) für die Batch-Inferenz bietet maximale Kontrolle und Portabilität und ist daher ideal für Teams mit Kubernetes-Kenntnissen oder speziellen Anforderungen. Dazu müssen Sie Ihre Inferenzlogik containerisieren und die Ausführung mit Kubernetes-Ressourcen verwalten.
Schritt 1: Containerisieren Sie die Inferenzanwendung. Im ersten Schritt verpacken Sie Ihren Vorhersagecode in ein Container-Image.
Schritt 2: Definieren Sie einen Kubernetes-Job. Anstelle eines lang laufenden Deployments definieren Sie die Batchaufgabe mit einem Kubernetes-Job oder einem CronJob-Manifest (einer YAML-Datei). Diese Datei gibt Folgendes an:
Schritt 3: Führen Sie den Job im GKE-Cluster aus. Sie wenden das Manifest mit kubectl auf Ihren GKE-Cluster an. Die GKE-Steuerungsebene plant dann einen Pod, um Ihren Inferenzcontainer auf einem geeigneten Knoten im Cluster auszuführen. Für wiederkehrende Aufgaben erstellt eine CronJob-Ressource automatisch einen neuen Job basierend auf einem vordefinierten Zeitplan (Beispiel: 0 2 * * * für 2 Uhr morgens jeden Tag).
Schritt 4: Implementieren Sie die Datenverarbeitung und speichern Sie die Ergebnisse. Im Gegensatz zum verwalteten Vertex AI-Ansatz ist der Anwendungscode in Ihrem Container für die Bearbeitung der gesamten Daten-E/A verantwortlich. Ihr Script muss die Logik enthalten, um eine Verbindung zur Datenquelle (z. B. einem Cloud Storage-Bucket) herzustellen, Daten daraus zu lesen und die endgültigen Vorhersagen in das ausgewählte Ziel (z. B. eine Cloud SQL-Datenbank) zurückzuschreiben.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.