Was ist Batch-Inferenz?

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.

Definition von Batch-Inferenz

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.

Wichtige Merkmale der Batch-Inferenz

  • Asynchrone Verarbeitung: Vorhersagen werden nach einem vordefinierten Zeitplan (z. B. stündlich, täglich) oder auf Anfrage generiert, nicht in Echtzeit, wenn neue Daten eingehen.
  • Hoher Durchsatz: Das System ist für die Verarbeitung einer großen Anzahl von Datenpunkten in einem einzigen Durchlauf optimiert und daher sehr effizient.
  • Kosteneffizienz: Durch die Ausführung nach Zeitplan können Sie Rechenressourcen nutzen, wenn sie am besten verfügbar oder am kostengünstigsten sind, wodurch die Betriebskosten erheblich gesenkt werden.
  • Latenztoleranz: Die primäre Annahme ist, dass die Anwendung, die die Vorhersagen nutzt, keine sofortige Antwort benötigt. Eine Verzögerung von Minuten oder Stunden zwischen der Datenerhebung und der Vorhersageerstellung ist akzeptabel.

Batch-Inferenz im Vergleich zur Online-Inferenz

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.

Wie funktioniert die Batch-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.

Schritt 1: Datenerhebung und ‑speicherung

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.

Schritt 2: Batch-Job auslösen

Die Inferenzpipeline wird durch einen Trigger initiiert. Dieser Trigger kann Folgendes sein:

  • Zeitbasiert: Ein Planer (wie ein Cronjob) startet den Job in regelmäßigen Abständen, z. B. jede Nacht um 1 Uhr.
  • Ereignisbasiert: Der Job wird als Reaktion auf ein bestimmtes Ereignis gestartet, z. B. wenn eine neue Datendatei in einem Cloud Storage-Bucket eintrifft.

Schritt 3: Daten vorverarbeiten

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.

Schritt 4: Vorhersagen generieren

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.

Schritt 5: Ergebnisse speichern

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.

Schritt 6: Vorhersagen verwenden

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.

Vorteile der Batch-Inferenz

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.

Anwendungsfälle für Batch-Inferenz

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.

Batch-Inferenz in Vertex AI einrichten

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.

Assets vorbereiten.

Bevor Sie beginnen, benötigen Sie drei Dinge:

  • Ein trainiertes Modell, das in die Vertex AI Model Registry hochgeladen werden soll
  • Ihre Eingabedaten, die im erforderlichen Format für Ihr Modell vorliegen. Diese Daten sollten sich entweder in Google Cloud Storage (zum Beispiel als JSON- oder CSV-Dateien) oder in einer BigQuery-Tabelle befinden.
  • Ein Zielort für die Ausgabe, der ebenfalls ein Cloud Storage-Bucket oder eine BigQuery-Tabelle ist

Batchvorhersagejob erstellen.

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:

  • Das spezifische Modell aus der Model Registry, das Sie verwenden möchten
  • Der Pfad zu Ihren Eingabedaten und der Speicherort für Ihre Ausgaberesultate
  • Der Maschinentyp und der Beschleuniger (z. B. GPU), die Sie für den Job verwenden möchten. So können Sie Kosten und Leistung abwägen.

Job ausführen und überwachen.

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.

Auf die Vorhersagen zugreifen und sie verwenden.

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.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.

Batch-Inferenz in GKE einrichten

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.

  • Schreiben Sie ein Script (zum Beispiel in Python), das Ihr trainiertes Modell lädt, Daten aus einer Quelle liest, Inferenz durchführt und die Ergebnisse in ein Ziel schreibt.
  • Erstellen Sie ein Dockerfile. Diese Datei definiert die Schritte zum Erstellen Ihres Containers, einschließlich der Angabe eines Basis-Images, der Installation von Abhängigkeiten (wie TensorFlow oder Pandas) und des Kopierens Ihrer Modelldatei und Ihres Inferenzscripts in das Image.
  • Erstellen Sie das Image und übertragen Sie es per Push in eine Container Registry wie Artifact Registry.

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:

  • Das Container-Image, das aus Artifact Registry verwendet werden soll
  • Die erforderlichen Rechenressourcen (CPU, Arbeitsspeicher, GPUs)
  • Alle erforderlichen Konfigurationen, z. B. Umgebungsvariablen für Dateipfade oder Secrets für Datenbankanmeldedaten

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.

Welches Problem möchten Sie lösen?
What you'll get:
Detaillierte Anleitung
Referenzarchitektur
Vorkonfigurierte Lösungen
Dieser Dienst wurde mit Vertex AI erstellt. Nutzer müssen mindestens 18 Jahre alt sein, um ihn verwenden zu können. Geben Sie keine vertraulichen oder personenbezogenen Daten ein.

Weitere Ressourcen

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.

Google Cloud