Einführung
In der Fast-Moving Consumer Goods (FMCG) -Branche ist Machine Learning Operations (MLOps) entscheidend für die Optimierung und Automatisierung des Einsatzes von Machine-Learning-Modellen. Dieser Artikel befasst sich mit den technischen Aspekten der wichtigsten Tools und Technologien, die in MLOPsund konzentriert sich darauf, wie sie von Entwicklern genutzt werden können, um Prozesse im FMCG-Sektor zu rationalisieren.
Überblick über beliebte MLOps-Tools
TensorFlow
TensorFlow ist eine Open-Source-Plattform für maschinelles Lernen, die ein umfassendes Ökosystem von Bibliotheken, Tools und Community-Ressourcen bietet. Sie wird häufig für die Entwicklung, das Training und den Einsatz von Modellen für maschinelles Lernen verwendet.
Kernkomponenten:
- TensorFlow Core: Die primäre API zum Erstellen und Trainieren von Modellen.
- TensorFlow Extended (TFX): Eine produktionsreife Plattform für den Einsatz von Modellen für maschinelles Lernen.
- TensorFlow Serving: Ein flexibles, leistungsstarkes Serversystem für Modelle des maschinellen Lernens, das für Produktionsumgebungen entwickelt wurde.
- TensorFlow Lite: Eine leichte Lösung für mobile und eingebettete Geräte.
Die wichtigsten Funktionen:
- Eager Execution: Eine unverzichtbare Programmierumgebung, die Operationen sofort evaluiert.
- Keras-API: Eine übergeordnete API zum Erstellen und Trainieren von Modellen.
- Vertriebsstrategien: Unterstützung für Schulungen auf mehreren GPUs und verteilten Umgebungen.
Python
importiere Tensorflow als tf
aus Tensorflow Keras importieren
# Definieren Sie ein einfaches sequentielles Modell
Modell = Keras.Sequential ([
keras.layers.Dense (128, Aktivierung = 'Relu', input_shape= (784,)),
keras.layers.dropout (0.2),
keras.layers.Dense (10, Aktivierung = 'Softmax')
])
# Kompilieren Sie das Modell
model.compile (optimizer='adam',
loss = 'sparse_categorical_crossentropy',
metrics= ['Genauigkeit'])
# Trainiere das Modell
model.fit (train_images, train_labels, epochen=5)
# Speichern Sie das Modell
model.save ('mein_modell')
Kubernetes
Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Es ist unerlässlich für die Verwaltung komplexer Microservices-Architekturen in MLOps.
Kernkomponenten:
- Pods: Die kleinsten einsatzfähigen Einheiten, die einen oder mehrere Container enthalten können.
- Dienste: Definiert einen logischen Satz von Pods und eine Richtlinie, mit der auf sie zugegriffen werden kann.
- Bereitstellungen: Verwaltet die Bereitstellung von Pods.
- ConfigMaps and Secrets: Verwaltet Konfigurationsdaten und vertrauliche Informationen.
Die wichtigsten Funktionen:
- Horizontale Pod-Autoskalierung: Passt die Anzahl der Pods automatisch an die CPU-Auslastung oder andere ausgewählte Metriken an.
- Helm: Ein Paketmanager für Kubernetes, der bei der Definition, Installation und Aktualisierung komplexer Kubernetes-Anwendungen hilft.
Beispiel für die Verwendung:
Yaml
API-Version: Apps/v1
Art: Einsatz
Metadaten:
Name: meine-ml-App
spezifikation:
Repliken: 3
Selektor:
Labels abgleichen:
App: meine-ml-App
schablone:
Metadaten:
Beschriftungen:
App: meine-ml-App
spezifikation:
Behälter:
— Name: ml-Behälter
Bild: my-ml-image
Anschlüsse:
— Containerport: 8080
—
API-Version: v1
Art: Service
Metadaten:
Name: my-ml-service
spezifikation:
Selektor:
App: meine-ml-App
Anschlüsse:
— Protokoll: TCP
Anschluss: 80
Zielport: 8080
Typ: LoadBalancer
DS STREAM-Implementierung mit Kubernetes
Für einen Kunden im FMCG-Sektor richtete DS Stream eine Webanwendung auf Azure Kubernetes Service (AKS) ein, um Deep-Learning-Modelle leicht zugänglich zu machen. Wir nutzten das horizontale Pod-Autoscaling von Kubernetes, um sicherzustellen, dass die App hohen Datenverkehr reibungslos bewältigen kann, und passten die Ressourcen nach Bedarf an.
In einem anderen Projekt verwendete DS Stream Kubernetes-Namespaces, um Umgebungen getrennt zu halten und Ressourcen in Azure für Modellinferenzaufgaben ordnungsgemäß zuzuweisen. Diese Methode half uns dabei, Ressourcen effizient zu verwalten und durch die gemeinsame Infrastruktur Kosten zu sparen.
MLFlow
MLflow ist eine Open-Source-Plattform für die Verwaltung des gesamten Lebenszyklus des maschinellen Lernens, einschließlich Experimentieren, Reproduzierbarkeit und Bereitstellung.
Kernkomponenten:
- MLflow Tracking: Zeichnet Experimente auf und fragt sie ab: Code, Daten, Konfiguration und Ergebnisse.
- MLflow Projects: Ein Format zum wiederverwendbaren und reproduzierbaren Verpacken von Data-Science-Code.
- MLflow-Modelle: Ein Format zum Paketieren von Modellen für maschinelles Lernen, um sie einfach bereitzustellen.
- MLflow Registry: Ein zentralisierter Modellspeicher zur kollaborativen Verwaltung des gesamten Lebenszyklus eines MLflow-Modells.
Die wichtigsten Funktionen:
- Versuchsverfolgung: Log-Parameter, Codeversionen, Metriken und Ausgabedateien.
- Modellpaketierung: Paketmodelle in verschiedenen Formaten (z. B. Python, R, Java).
- Bereitstellung: Stellen Sie Modelle auf verschiedenen Plattformen bereit, einschließlich REST-APIs, Cloud-Diensten und Edge-Geräten.
Python
mlflow importieren
importiere mlflow.sklearn
aus sklearn.ensemble importiere randomForestRegressor
# Setze den Namen des Experiments
mlflow.set_experiment ('mein-experiment')
# Starte einen neuen Lauf
mit mlflow.start_run ():
# Trainiere ein Modell
modell = RandomForestRegressor (n_estimators=100)
model.fit (X_Zug, y_Zug)
# Modellparameter protokollieren
mlflow.log_param ('n_estimators', 100)
# Modellmetriken protokollieren
mlflow.log_metric ('rmse', rmse)
# Das Modell protokollieren
mlflow.sklearn.log_model (Modell, 'Random-Forest-Modell')
Kubeflow
Kubeflow ist eine Open-Source-Plattform, die entwickelt wurde, um die Bereitstellung von Workflows für maschinelles Lernen auf Kubernetes einfach, portabel und skalierbar zu machen.
Kernkomponenten:
- Kubeflow Pipelines: Eine Plattform für die Erstellung und Bereitstellung portabler, skalierbarer Workflows für maschinelles Lernen (ML) auf der Basis von Docker-Containern.
- Katib: Ein Kubernetes-natives Projekt für automatisiertes Hyperparameter-Tuning.
- KFServing: Ein System zur Bereitstellung von Modellen für maschinelles Lernen auf Kubernetes, optimiert für Inferenz-Workloads.
Die wichtigsten Funktionen:
- Reproduzierbare Pipelines: Erstellen und verwalten Sie tragbare, skalierbare ML-Workflows.
- Hyperparameter-Tuning: Automatisieren Sie die Suche nach den besten Hyperparametern.
- Model Serving: Stellen Sie Modelle mit hoher Leistung und Skalierbarkeit bereit und stellen Sie sie bereit.
Beispiel für die Verwendung:
Python
kfp importieren
von kfp import dsl
@dsl .pipeline (
name='Meine Pipeline',
description='Eine Beispiel-Pipeline'
)
def my_pipeline ():
# Pipeline-Schritte definieren
train_op = dsl.containerOp (
name='Eisenbahnmodell',
image='gcr.io/mein-projekt/train-image:neuest',
argumente= ['—modellverzeichnis', '/mnt/models']
)
serve_op = dsl.containerOp (
name='Modell servieren',
image='gcr.io/mein-projekt/serve-image:neuest',
argumente= ['—modellverzeichnis', '/mnt/models']
)
# Kompiliere die Pipeline
kfp.compiler.compiler () .compile (meine_pipeline, 'meine_pipeline.yaml')
DS STREAM-Implementierung mit Kubeflow
In einem Projekt zur Zentralisierung des Betriebs auf der Google Cloud Platform (GCP) verwendete DS Stream Kubeflow, um die Workflows für maschinelles Lernen zu verbessern. Durch die Implementierung von Kubeflow Pipelines haben wir die Bereitstellung von ML-Workflows automatisiert und sie so skalierbar und portabel für verschiedene Cloud-Setups gemacht.
Ein anderes Projekt beinhaltete das Verschieben von Code nach Kubeflow auf GCP. Dieser Prozess umfasste die Trennung von Umgebungen mit Kubernetes-Namespaces, die Verwendung von CI/CD-Branching-Strategien auf GitHub, die Durchführung von Datenvalidierungsprüfungen, das Einrichten von Docker-Images und die Zuweisung von Ressourcen für das Modelltraining. Diese Schritte sorgten für einen reibungslosen und wiederverwendbaren Übergang von der Entwicklung zur Produktion.
Integration von MLOps-Tools in FMCG-Geschäftsprozesse
Die Integration von MLOps-Tools in die FMCG-Geschäftsprozesse umfasst mehrere wichtige Schritte:
Datenaufnahme und -verarbeitung:
- Verwenden Sie Tools wie Apache Kafka oder Google Pub/Sub für die Datenaufnahme in Echtzeit.
- Verarbeiten Sie Daten mit Apache Beam oder Spark und speichern Sie verarbeitete Daten in Data Warehouses wie BigQuery oder Snowflake.
Modelltraining und Experimentieren:
- Verwenden Sie MLFlow oder TensorFlow für Modelltraining und Experimente.
- Implementieren Sie verteiltes Training mit Kubernetes und TensorFlow.
DS STREAM-Implementierung des Modelltrainings:
DS Stream erstellte eine automatisierte CI/CD-Pipeline mit GitHub Actions, um die Bereitstellung und Skalierung von Worker-Pods in AKS zu verwalten. Durch dieses Setup waren Batch-Inferencing und Modellüberwachung effizient, was eine hohe Leistung und Skalierbarkeit sicherstellte und gleichzeitig die Kosten durch intelligente Ressourcennutzung niedrig hielt.
Bereitstellung und Bereitstellung von Modellen:
- Stellen Sie Modelle mit KFServing oder TensorFlow Serving bereit.
- Verwenden Sie Kubernetes, um containerisierte Anwendungen zu verwalten und Skalierbarkeit sicherzustellen.
DS STREAM-Implementierung der Modellbereitstellung:
In einem Projekt bereitete DS Stream Docker-Images vor und richtete die Ressourcenzuweisung für GPU-basierte Modellinferencing in Azure ein. Dieser Ansatz sorgte für eine effiziente Bereitstellung und Skalierung von Worker-Pods auf der Grundlage eingehender Anfragen, was im Vergleich zu herkömmlichen verwalteten Endpunkten zu erheblichen Kosteneinsparungen führte.
Überwachung und Wartung:
- Implementieren Sie die Überwachung mithilfe von Prometheus und Grafana, um die Modellleistung zu verfolgen.
- Verwenden Sie MLflow und Kubeflow für die kontinuierliche Modellvalidierung und Neuausbildung.
DS STREAM Implementierung von Überwachung und Wartung
Für die Modellüberwachung verwendete DS Stream OpenTelemetry, um die Anwendungsleistung zu verfolgen und Datenabweichungen zu erkennen. Automatisierte Prozesse für die Neuschulung und Überwachung der Modelle sorgten dafür, dass die eingesetzten Modelle im Laufe der Zeit genau und zuverlässig blieben.
Fazit
Für Entwickler in der FMCG-Branche ist die Beherrschung der Tools und Technologien von MLOps unerlässlich, um die Workflows für maschinelles Lernen zu optimieren und den Geschäftsbetrieb zu verbessern. Durch die Nutzung von TensorFlow, Kubernetes, MLFlow und Kubeflow können Entwickler robuste, skalierbare und effiziente ML-Systeme entwickeln, die ihren Unternehmen einen erheblichen Mehrwert bieten. Das Verständnis der technischen Aspekte und Integrationsstrategien dieser Tools ermöglicht es Entwicklern, Prozesse zu rationalisieren, Betriebskosten zu senken und hochwertige ML-Lösungen bereitzustellen.
Häufig gestellte Fragen: Technischer Leitfaden zu MLOps-Tools und -Technologien für FMCG-Entwickler
1. Was sind die Kernkomponenten von TensorFlow, die in MLOps für die FMCG-Industrie verwendet werden?
- TensorFlow Core: Die primäre API zum Erstellen und Trainieren von Modellen.
- TensorFlow Extended (TFX): Eine produktionsreife Plattform für den Einsatz von Modellen für maschinelles Lernen.
- TensorFlow Serving: Ein Hochleistungs-Serversystem für Produktionsumgebungen.
- TensorFlow Lite: Eine leichte Lösung für mobile und eingebettete Geräte.
2. Wie hilft Kubernetes bei der Verwaltung von Workflows für maschinelles Lernen im FMCG-Sektor?
- Kubernetes automatisiert die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Es hilft bei der Verwaltung komplexer Microservices-Architekturen, unterstützt die horizontale Pod-Autoskalierung und bietet Tools wie Helm für die Paketierung und Bereitstellung von Kubernetes-Anwendungen.
3. Was ist MLFlow und wie wird es in MLOps für FMCG verwendet?
- MLflow ist eine Open-Source-Plattform für die Verwaltung des gesamten Lebenszyklus des maschinellen Lernens, einschließlich Experimentieren, Reproduzierbarkeit und Bereitstellung. Sie bietet Komponenten wie MLflow Tracking zum Protokollieren von Experimenten, MLflow Projects zum Paketieren von Code und MLflow Models zum Verpacken und Bereitstellen von Modellen.
4. Welche Vorteile bietet Kubeflow für FMCG-Workflows für maschinelles Lernen?
- Kubeflow vereinfacht die Bereitstellung von Workflows für maschinelles Lernen auf Kubernetes. Es bietet Komponenten wie Kubeflow Pipelines für die Erstellung und Bereitstellung von ML-Workflows, Katib für das Hyperparameter-Tuning und KFServing für die Bereitstellung von Modellen mit hoher Leistung und Skalierbarkeit.
5. Wie können FMCG-Entwickler MLOps-Tools in Geschäftsprozesse integrieren?
- Entwickler können MLOps-Tools integrieren, indem sie:
- Verwenden Sie Tools zur Datenaufnahme wie Apache Kafka oder Google Pub/Sub.
- Verarbeitung von Daten mit Apache Beam oder Spark und Speicherung in Data Warehouses wie BigQuery.
- Training und Experimentieren mit Modellen mit MLFlow oder TensorFlow.
- Bereitstellung von Modellen mit KFServing oder TensorFlow Serving.
- Überwachung der Leistung mit Prometheus und Grafana und Verwendung kontinuierlicher Validierung und Nachschulung mit MLflow und Kubeflow.

[/vc_column_text] [/vc_column] [/vc_row]