Nach dem Training eines Machine-Learning-Modells besteht der nächste Schritt darin, es für Vorhersagen zu neuen Daten zu verwenden. 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 wird hoher Durchsatz und Recheneffizienz gegenüber niedriger Latenz priorisiert. Da die Verarbeitung offline und nicht als Direct-Response 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 | Onlineinferenz |
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. | Geringe 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 herunterskalieren. | 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
Onlineinferenz
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.
Geringe 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 herunterskalieren.
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 umsetzbare 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ätsprotokolle, Transaktionsdatensätze oder Messwerte von Sensoren 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 Inferenz-Pipeline 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 Machine-Learning-Modell aus einem zentralen Repository wie der Modellregistrierung 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. Dieses 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 kann die Batch-Inferenz gegenüber der Echtzeitverarbeitung erhebliche Vorteile bieten.
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
Batchsysteme sind so konzipiert, dass sie skaliert werden können und Terabytes an Daten effizient verarbeiten. Dadurch können komplexe Modelle auf sehr große Datasets angewendet werden, was bei einem Onlinesystem zu langsam oder zu teuer wäre.
Einfache Abläufe
Batch-Inferenz-Pipelines sind in der Regel einfacher zu erstellen und zu warten 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 sehr komplexe und rechenintensive Feature-Engineering-Aufgaben für Ihre Eingabedaten ausführen, 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 | Generieren Sie täglich personalisierte Produktempfehlungen für alle Nutzer, damit sie schnell abgerufen werden können, wenn Nutzer die Website besuchen. | Mit Batchvorhersagen der Agent Platform können Sie ein Empfehlungsmodell ausführen und die Ergebnisse in eine schnelle Datenbank 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 Kundendaten ausführen, die im Data Warehouse gespeichert sind. Die Ergebnisse werden in eine neue Tabelle für das Team zur Kundenbindung 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 Agent Platform Batch-Vorhersagen 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 spezieller 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
Generieren Sie täglich personalisierte Produktempfehlungen für alle Nutzer, damit sie schnell abgerufen werden können, wenn Nutzer die Website besuchen.
Mit Batchvorhersagen der Agent Platform können Sie ein Empfehlungsmodell ausführen und die Ergebnisse in eine schnelle Datenbank 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 Kundendaten ausführen, die im Data Warehouse gespeichert sind. Die Ergebnisse werden in eine neue Tabelle für das Team zur Kundenbindung 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 Agent Platform Batch-Vorhersagen 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 spezieller 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.
Die Gemini Enterprise Agent Platform ist die verwaltete Plattform für maschinelles Lernen von Google Cloud und bietet einen optimierten, serverlosen Ansatz für die 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 Agent Platform SDK starten. Beim Erstellen des Jobs geben Sie die folgende Konfiguration an:
Sobald Sie den Job senden, übernimmt die Agent Platform. 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 die Agent Platform alle Ressourcen automatisch 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 fertig. Auf die Ausgabedateien in Cloud Storage oder die neue Tabelle in BigQuery kann jetzt über Ihre nachgelagerten Anwendungen, Analysetools oder BI-Dashboards zugegriffen 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 vorhandenen 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 den 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 Steuerungsebene von GKE 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 Agent Platform-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 in Höhe von 300 $ und mehr als 20 immer kostenlose Produkten, um Google Cloud kennenzulernen.