Einleitung
In der Fast-Moving Consumer Goods (FMCG) Branche ist Machine Learning Operations (MLOps) entscheidend für die Optimierung und Automatisierung des Deployments von Machine-Learning-Modellen. Dieser Artikel beleuchtet die technischen Aspekte der wichtigsten Tools und Technologien im MLOps-Bereich und zeigt, wie Entwickler diese nutzen können, um Prozesse im FMCG-Sektor zu optimieren.
Überblick über beliebte MLOps-Tools
TensorFlow
TensorFlow ist eine Open-Source-Plattform für Machine Learning, die ein umfassendes Ökosystem aus Bibliotheken, Tools und Community-Ressourcen bietet. Sie wird häufig für die Entwicklung, das Training und das Deployment von Machine-Learning-Modellen eingesetzt.
Kernkomponenten:
- TensorFlow Core: Die primäre API zum Erstellen und Trainieren von Modellen.
- TensorFlow Extended (TFX): Eine produktionsreife Plattform für das Deployment von Machine-Learning-Modellen.
- TensorFlow Serving: Ein flexibles, leistungsstarkes Serving-System für Machine-Learning-Modelle, ausgelegt für Produktionsumgebungen.
- TensorFlow Lite: Eine leichtgewichtige Lösung für mobile und Embedded-Geräte.
Wichtige Features:
- Eager Execution: Eine imperative Programmierumgebung, die Operationen sofort ausführt.
- Keras API: Eine High-Level-API zum Erstellen und Trainieren von Modellen.
- Distribution Strategies: Unterstützung für Training auf mehreren GPUs und in verteilten Umgebungen.
python
import tensorflow as tf from tensorflow import keras # Einfaches Sequential-Modell definieren model = keras.Sequential([ keras.layers.Dense(128, activation='relu', input_shape=(784,)), keras.layers.Dropout(0.2), keras.layers.Dense(10, activation='softmax') ]) # Modell kompilieren model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Modell trainieren model.fit(train_images, train_labels, epochs=5) # Modell speichern model.save('my_model')
Kubernetes
Kubernetes ist ein Open-Source-System zur Automatisierung des Deployments, der Skalierung und Verwaltung von containerisierten Anwendungen. Es ist essenziell für das Management komplexer Microservices-Architekturen im MLOps-Bereich.
Kernkomponenten:
- Pods: Die kleinsten deploybaren Einheiten, die einen oder mehrere Container enthalten können.
- Services: Definiert eine logische Gruppe von Pods und eine Zugriffsrichtlinie.
- Deployments: Verwalten das Deployment von Pods.
- ConfigMaps und Secrets: Verwalten Konfigurationsdaten und sensible Informationen.
Wichtige Features:
- Horizontal Pod Autoscaling: Passt die Anzahl der Pods automatisch basierend auf CPU-Auslastung oder anderen Metriken an.
- Helm: Ein Paketmanager für Kubernetes, der das Definieren, Installieren und Upgraden komplexer Kubernetes-Anwendungen erleichtert.
Beispiel:
yaml
apiVersion: apps/v1 kind: Deployment metadata: name: my-ml-app spec: replicas: 3 selector: matchLabels: app: my-ml-app template: metadata: labels: app: my-ml-app spec: containers: - name: ml-container image: my-ml-image ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: my-ml-service spec: selector: app: my-ml-app ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer
DS STREAM Implementation mit Kubernetes
Für einen Kunden aus dem FMCG-Sektor hat DS Stream eine Webanwendung auf Azure Kubernetes Service (AKS) eingerichtet, um Deep-Learning-Modelle einfach zugänglich zu machen. Kubernetes' horizontal pod autoscaling wurde genutzt, um die App bei hohem Traffic automatisch zu skalieren und Ressourcen dynamisch anzupassen.
In einem anderen Projekt nutzte DS Stream Kubernetes namespaces, um Umgebungen zu trennen und Ressourcen für Model-Inferencing-Aufgaben auf Azure effizient zuzuweisen. Diese Methode ermöglichte ein effizientes Ressourcenmanagement und Kosteneinsparungen durch geteilte Infrastruktur.
MLflow
MLflow ist eine Open-Source-Plattform zur Verwaltung des gesamten Machine-Learning-Lebenszyklus, einschließlich Experimentieren, Reproduzierbarkeit und Deployment.
Kernkomponenten:
- MLflow Tracking: Protokolliert und fragt Experimente ab: Code, Daten, Konfiguration und Ergebnisse.
- MLflow Projects: Ein Format zum Verpacken von Data-Science-Code für wiederverwendbare und reproduzierbare Workflows.
- MLflow Models: Ein Format zum Verpacken von Machine-Learning-Modellen für einfaches Deployment.
- MLflow Registry: Zentrale Modellablage zur kollaborativen Verwaltung des gesamten Lebenszyklus eines MLflow-Modells.
Wichtige Features:
- Experiment Tracking: Protokolliert Parameter, Code-Versionen, Metriken und Output-Dateien.
- Model Packaging: Verpackt Modelle in verschiedenen Formaten (z. B. Python, R, Java).
- Deployment: Modelle können auf verschiedenen Plattformen bereitgestellt werden, einschließlich REST-APIs, Cloud-Services und Edge-Geräten.
unknown
python
Kubeflow
Kubeflow ist eine Open-Source-Plattform, die das Deployment von Machine-Learning-Workflows auf Kubernetes einfach, portabel und skalierbar macht.
Kernkomponenten:
- Kubeflow Pipelines: Plattform zum Erstellen und Deployen portabler, skalierbarer ML-Workflows auf Basis von Docker-Containern.
- Katib: Kubernetes-natives Projekt für automatisiertes Hyperparameter-Tuning.
- KFServing: System zum Bereitstellen von Machine-Learning-Modellen auf Kubernetes, optimiert für Inferenz-Workloads.
Wichtige Features:
- Reproducible Pipelines: Erstellen und Verwalten portabler, skalierbarer ML-Workflows.
- Hyperparameter Tuning: Automatisierte Suche nach den besten Hyperparametern.
- Model Serving: Modelle mit hoher Performance und Skalierbarkeit bereitstellen und serven.

Demand side platforms rolle in der programmatischen werbung