Blog
Automatisiertes maschinelles Lernen (AutoML) mit BigQuery ML. Starten Sie maschinelles Lernen ganz einfach und prüfen Sie, ob sich eine Investition in ML lohnt oder nicht.

Maschinelles Lernen wird in vielen Branchen immer beliebter, vom Finanzwesen über das Marketing bis hin zum Gesundheitswesen. Aber seien wir ehrlich, das bedeutet nicht, dass ML zwangsläufig für jedes Unternehmen eine brauchbare Lösung ist. Wird das Nutzen-Kosten-Verhältnis zufriedenstellend sein? Andererseits wäre es leichtsinnig, die Möglichkeiten von ML nicht zu prüfen. Die Implementierung von maschinellem Lernen ist ein umfangreicher Prozess, der hohe Kosten verursacht. In diesem Artikel stellen wir Ihnen eine Lösung vor, die ein einfacher Einstieg in das maschinelle Lernen sein kann und mit der Sie überprüfen können, ob ML eine effiziente Lösung für die Probleme Ihres Unternehmens darstellt.
In diesem Artikel stellen wir AutoML-Modelle vor, gefolgt von einem Beispiel für das AutoML-Klassifikatormodell, das in BigQuery ML trainiert wurde. Wir besprechen die Anwendbarkeit von AutoML , seine Grenzen und Anwendungsbeispiele.
Was ist die Idee von Automated Machine Learning (AutoML)?
Automatisiertes maschinelles Lernen, auch AutoML genannt, ist ein Ansatz, der den Einstieg in das maschinelle Lernen erleichtert. Der Grundgedanke ist die Automatisierung der Datenaufbereitung, des Feature Engineering, der Modellschulung und der Modellbewertung. Als Ergebnis erhält der Endbenutzer eine vereinfachte Schnittstelle zum Trainieren von Machine Learning-Modellen: die Rohdaten als Eingabe und das gebrauchsfertige Machine Learning-Modell als Ausgabe.
AutoML ist über mehrere Tools und Frameworks verfügbar (z.B. auto-sklearn, AutoKeras, tpot). Da das Ziel von AutoML darin besteht, die Einstiegshürde für maschinelles Lernen zu senken, werden wir in unserem Beispiel die AutoML nutzen, die in der Google Cloud Platform als Teil von BigQuery ML (BQML) angeboten wird. Mit dieser serverlosen Einrichtung können wir AutoML ohne komplizierte Konfiguration und Wartung der Infrastruktur nutzen.
Hinter den Kulissen führt Auto ML den normalen Arbeitsablauf des maschinellen Lernens durch:
- Vorverarbeitung der Daten,
- Automatisches Feature Engineering,
- Modell-Architektur-Suche,
- Modellabstimmung,
- Kreuzvalidierung,
- automatische Modellauswahl und Ensembling.
Regulärer Machine Learning Arbeitsablauf
Wann sind AutoML-Modelle nützlich?
Dieser Blackbox-Ansatz ist zwar keine Einheitslösung für jedes Problem, aber vielleicht hilft er Ihnen dabei:
- Beginnen Sie in Ihrem Unternehmen mit ML zu arbeiten, selbst wenn Sie intern nicht über genügend Fachwissen verfügen.
- Überprüfen Sie, ob Sie mit den vorhandenen Daten ein wertvolles ML-Modell erstellen können. Das kann Ihnen viel Zeit sparen, vor allem in der Prototyping-Phase durch Feedback, ohne dass Sie viel Forschungsarbeit leisten müssen.
- Erhalten Sie das Basismodell zusammen mit der Modellgenauigkeit. Sie können es als Benchmark verwenden, um die Leistung des manuell erstellten Modells zu bewerten.
- Erstellen Sie ein Proof-of-Concept-Modell, um die Vorteile und möglichen Einschränkungen zu erkennen, bevor Sie mehr in die Ziellösung investieren.
Grenzen des automatisierten maschinellen Lernens
- Datensatzgröße - der Datensatz darf nicht zu groß (oder zu klein) sein. In unserem Fall mit BigQuery müssen die Eingabedaten für AutoML-Modelle zwischen 1000 und 200.000.000 Zeilen und weniger als 100 GB groß sein[Quelle]. Das bedeutet, dass Sie BigQuery nicht für kleine Daten verwenden können und dass Sie auch bei der maximalen Größe des Datensatzes eingeschränkt sind.
- Langes Training - es braucht Zeit, um den gesamten Workflow einschließlich Feature Engineering und Datenvorverarbeitung abzuschließen. Wenn Sie beispielsweise AutoML in BigQuery verwenden möchten, müssen Sie mindestens 1 Stunde für das Training einplanen, und für die restlichen Schritte des Workflows können Sie kein Limit festlegen[Quelle].
- Reproduzierbarkeit und geringe Kontrolle - da es sich um einen Blackbox-Ansatz handelt, gibt es viele Zwischenschritte zwischen den Rohdaten und dem endgültigen Modell, so dass eine geringfügige Änderung der Eingabedaten das Endergebnis beeinflussen kann. Dies kann im Laufe der Zeit zu schwer zu behebenden Problemen mit der Stabilität des Modells führen. Wenn Sie mehr Kontrolle über den AutoML-Prozess benötigen, können Sie tabellarische Workflows auf Vertex AI testen.
- Kosten - wenn Sie wissen, wie Sie Ihr Problem mit einem geeigneten ML-Modell lösen können, ist AutoML möglicherweise nicht der kostengünstigste Weg, es kontinuierlich, d.h. täglich, zu trainieren.[Preisgestaltung]
Aber auch mit den oben genannten Einschränkungen ist AutoML ein guter Ansatz, um Ihre Reise mit Machine Learning zu beginnen und zu prüfen, ob es die richtige Lösung ist.
Unser Testszenario für AutoML in BigQuery
Einer der wichtigsten Anwendungsfälle von AutoML ist das überwachte Lernen für strukturierte Daten, einschließlich der Merkmalsspalten und der Zielspalte[Quelle].
AutoML in BigQuery bietet 2 Modelltypen: AutoML Classifier für Klassifizierungsprobleme und AutoML Regressor für Regressionsprobleme.
In den folgenden Schritten werden wir anhand dieses Szenarios demonstrieren, wie AutoML Classifier (unterstützt durch AutoML-Tabellen in Vertex AI) in BigQuery funktioniert. Wir erstellen ein Klassifizierungsmodell für maschinelles Lernen , um die Wahrscheinlichkeit vorherzusagen, mit der ein Benutzer einer E-Commerce-Website ein Produkt in den Warenkorb legt. Als Quelldatensatz dient der Export von Google Analytics 4 nach BigQuery (siehe: Schritt-für-Schritt-Anleitung zum Training eines Machine Learning-Modells mit BigQueryML (BQML) - GetInData).
Vorbereitung der Daten
Zunächst müssen Sie die Quelldaten vorbereiten (siehe: A Step-by-Step Guide to Training a Machine Learning Model using BigQueryML (BQML) - GetInData ), indem Sie die folgende Abfrage ausführen:
AutoML-Modell-Training
Jetzt können Sie Ihr erstes AutoML-Modell in BigQuery mit der folgenden Abfrage erstellen:
CREATE OR REPLACE MODEL
bqmlhackathon.ga4.init_model_automl
OPTIONS(MODEL_TYPE = 'AUTOML_CLASSIFIER',
BUDGET_HOURS = 1.0,
INPUT_LABEL_COLS = ['addedToCart'],
OPTIMIZATION_OBJECTIVE = 'MAXIMIZE_AU_ROC'
)
AS
SELECT
*
FROM
`bqmlhackathon.ga4.ga4_sample_ecommerce`
;
Dies ist eine minimale Einrichtung, bei der wir nur angeben müssen:
- Modelltyp auf 'AUTOML_CLASSIFIER' setzen
- Budgetstunden auf 1.0 (optional - 1.0 ist der Standardwert)
- Beschriftungsspalten in ['addedToCart'] eingeben
- Optimierungsziel auf 'MAXIMIZE_AU_ROC' setzen
Das ist alles, was Sie für das erste Modell brauchen. AutoML übernimmt den Rest des maschinellen Lernens (aber das braucht Zeit).
Bewertung des Modells
Wenn das Modell fertig ist, können Sie seine Leistung auf der Registerkarte [Bewertung] überprüfen. Da wir versuchen, ein Klassifizierungsproblem zu lösen, wird unsere Bewertungsmetrik der ROC AUC sein (je höher der Wert, desto besser). Beachten Sie, dass das Limit budget_hoursden Trainingsprozess zu unterbrechen scheint und daher mehr Zeit für die Fertigstellung benötigt.
Bewertung des Modells
AutoML im Vergleich zu den anderen Modelltypen
In der folgenden Tabelle vergleichen wir die Leistung von Standardmodellen für maschinelles Lernen und AutoML-Modellen sowie die Trainingszeit. Wir haben die Zeit gemessen, die für die Erstellung eines Modells mit denselben Daten benötigt wurde, und dann die Leistung des Modells mit der ROC AUC-Metrik gemessen.
Vergleich von Standard-Modellen für maschinelles Lernen und AutoML-Modellen
* BUDGET_HOURS = 4.0
** BUDGET_HOURS = 1.0
Wie Sie sehen können, erreicht das von AUTOML_CLASSIFIER trainierte Modell einen hohen ROC AUC-Wert, aber nicht so hoch wie andere Modelle, die von den Datenwissenschaftlern manuell erstellt wurden. Die Ergebnisse von AutoML können sich den von Experten erstellten Modellen annähern, wenn wir mehr Trainingsstunden (und ein höheres Budget) verwenden - der maximale BUDGET_HOURS-Wert ist 72, aber Sie sollten bedenken, dass die Trainingskosten möglicherweise nicht in einem angemessenen Verhältnis zum erzielten Ergebnis stehen.
Preisgestaltung
1 TB Datenverarbeitung für das AutoML-Modelltraining in BigQuery kostet 5$ plus die Vertex AI-Trainingskosten [[Quelle]](https://cloud.google.com/bigquery-ml/pricing#bqml). Für eine genauere Schätzung sollten Sie die Vertex AI AutoML-Preise hinzufügen - 21$ pro 1 Stunde Training[Quelle].
Seien Sie vorsichtig mit der anfänglichen Kostenschätzung, die in der BigQuery-Konsole angezeigt wird - die Vorverarbeitungsphase (siehe: Best Practices für die Erstellung von Trainingsdaten | AutoML-Tabellen | Google Cloud) kann die Größe des Datensatzes explodieren lassen. Außerdem kann auf den vorverarbeiteten Datensatz mehrfach parallel zugegriffen werden, um mehrere Modelle während des AutoML-Trainings zu erstellen. Dies hat erhebliche Auswirkungen auf die während Ihres BigQueryML-Trainingsauftrags verarbeiteten Daten. Außerdem scheint der anfängliche Kostenvoranschlag die Vertex AI AutoML-Preise nicht zu enthalten.
In unserem Testszenario stellte sich die ursprüngliche Schätzung für 135 MB als 3,5 TB heraus, die für das 1-stündige Modelltraining berechnet wurden. Das gleiche Training über 4 Stunden verarbeitete 26,69 TB an Daten.
Wenn Sie die Kontrolle über den Workflow behalten, aber dennoch AutoML-Modelle verwenden möchten, können Sie tabellarische Workflows auf Vertex AI ausprobieren, bei denen Sie den Automodus für jeden Workflow-Schritt aktivieren/deaktivieren können.
Die geschätzte Datenverarbeitung im Vergleich zu den tatsächlich verarbeiteten Bytes
Nächste Schritte
Was können Sie als nächstes mit Ihrem AutoML-Modell tun? Die beiden Standardwege sind, Vorhersagen zu den neuen Daten innerhalb von BigQuery zu erhalten oder das Modell zu exportieren, um es außerhalb der BigQuery-Umgebung zu verwenden (d. h. für Online-Vorhersagen in Ihrer Anwendung).
Prognostizieren Sie auf der Grundlage der neuen Daten
Um die Vorhersagen für die neuen Daten zu erhalten, bietet BigQuery die Funktion ML.PREDICT mit der folgenden Syntax (Siehe: Die Funktion ML.PREDICT | BigQuery ML | Google Cloud).
SELECT
sessionId,
prob as addedToCart
FROM
ML.PREDICT(MODEL `bqmlhackathon.ga4.init_model_logistic_reg`,
(
SELECT *,CONCAT(fullVisitorId, CAST(visitStartTime as string)) as sessionId
FROM `bqmlhackathon.ga4.ga4_sample_ecommerce_20201231`)
),
UNNEST(predicted_addedToCart_probs)
WHERE label = 1
Exportieren Sie das Modell
Sie können Ihre AutoML zur Verwendung aus BigQuery heraus exportieren:
Exportieren von Modellen | BigQuery ML | Google Cloud
Der Modellexport erzeugt das Modell-Artefakt im TensorFlow SavedModel Format.
Leider wird das Online-Serving von AutoML-Modellen in den Vertex AI Endpoints(Exporting models | BigQuery ML | Google Cloud) nicht unterstützt. Der Grund dafür ist, dass die AutoML-Modelle einen benutzerdefinierten Docker-Container für das Model-Serving benötigen, der in den vorgefertigten Containern in VertexAI Endpoints(gcr.io/cloud-automl-tables-public/model_server) nicht enthalten ist.
Sie können das AutoML-Modell dennoch auf Vertex AI Endpoints bereitstellen, indem Sie den benutzerdefinierten Docker-Container erstellen und ihn in der Artifact Registry speichern. Dieses Szenario bringt jedoch eine zusätzliche Komplexität mit sich, die möglicherweise nicht durch die Vorteile der Verwendung von AutoML aufgewogen wird.
Wie bereits erwähnt, ist AutoML nicht in jedem Fall ein idealer Ansatz, aber es kann ein guter Ausgangspunkt für die Reise des maschinellen Lernens sein. Nachfolgend finden Sie eine kurze Liste mit ergänzenden Artikeln, die Ihnen auf Ihrem Weg helfen können.
Weitere Lektüre
Interessieren Sie sich für ML- und MLOps-Lösungen? Wie können Sie ML-Prozesse verbessern und die Lieferfähigkeit von Projekten steigern? Sehen Sie sich unsere MLOps-Demo an und melden Sie sich für eine kostenlose Beratung an.
Verfasst von
Michał Bryś
Unsere Ideen
Weitere Blogs
Contact




