Narzędzia i technologie w MLOP dla FMCG: Przewodnik techniczny dla programistów

Jakub Grabski
Jakub Grabski
May 27, 2025
24 min read
Loading the Elevenlabs Text to Speech AudioNative Player...

Wprowadzenie
W branży Fast-Moving Consumer Goods (FMCG) Machine Learning Operations (MLOps) odgrywa kluczową rolę w optymalizacji i automatyzacji wdrażania modeli machine learning. Ten artykuł zagłębia się w techniczne aspekty najważniejszych narzędzi i technologii wykorzystywanych w MLOps, koncentrując się na tym, jak mogą być one wykorzystywane przez deweloperów do usprawniania procesów w sektorze FMCG.

Przegląd popularnych narzędzi MLOps

TensorFlow
TensorFlow to open-source platforma do machine learning, która oferuje kompleksowy ekosystem bibliotek, narzędzi i zasobów społecznościowych. Jest szeroko stosowana do tworzenia, trenowania i wdrażania modeli machine learning.

Główne komponenty:

  • TensorFlow Core: Podstawowe API do budowania i trenowania modeli.
  • TensorFlow Extended (TFX): Platforma produkcyjna do wdrażania modeli machine learning.
  • TensorFlow Serving: Elastyczny, wydajny system serwowania modeli machine learning, zaprojektowany do środowisk produkcyjnych.
  • TensorFlow Lite: Lekkie rozwiązanie dla urządzeń mobilnych i embedded.

Kluczowe funkcje:

  • Eager Execution: Imperatywne środowisko programistyczne, które natychmiast wykonuje operacje.
  • Keras API: Wysokopoziomowe API do budowania i trenowania modeli.
  • Distribution Strategies: Wsparcie dla trenowania na wielu GPU i w środowiskach rozproszonych.

python

import tensorflow as tf  from tensorflow import keras  # Definiowanie prostego modelu sequential  model = keras.Sequential([      keras.layers.Dense(128, activation='relu', input_shape=(784,)),      keras.layers.Dropout(0.2),      keras.layers.Dense(10, activation='softmax')  ])  # Kompilacja modelu  model.compile(optimizer='adam',                loss='sparse_categorical_crossentropy',                metrics=['accuracy'])  # Trenowanie modelu  model.fit(train_images, train_labels, epochs=5)  # Zapisanie modelu  model.save('my_model')  

Kubernetes
Kubernetes to open-source system do automatyzacji wdrażania, skalowania i zarządzania aplikacjami kontenerowymi. Jest niezbędny do zarządzania złożonymi architekturami microservices w MLOps.

Główne komponenty:

  • Pods: Najmniejsze jednostki wdrożeniowe, mogące zawierać jeden lub więcej kontenerów.
  • Services: Definiuje logiczny zestaw Pods i politykę dostępu do nich.
  • Deployments: Zarządza wdrożeniem Pods.
  • ConfigMaps i Secrets: Zarządzają danymi konfiguracyjnymi i poufnymi informacjami.

Kluczowe funkcje:

  • Horizontal Pod Autoscaling: Automatycznie dostosowuje liczbę Pods na podstawie wykorzystania CPU lub innych metryk.
  • Helm: Menedżer pakietów dla Kubernetes, ułatwiający definiowanie, instalowanie i aktualizowanie złożonych aplikacji Kubernetes.

Przykład użycia:

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 with Kubernetes
Dla klienta z sektora FMCG, DS Stream wdrożył aplikację webową na Azure Kubernetes Service (AKS), aby udostępnić modele deep learning. Wykorzystano horizontal pod autoscaling Kubernetes, by aplikacja mogła płynnie obsługiwać duży ruch, dynamicznie dostosowując zasoby.

W innym projekcie DS Stream użył namespaces Kubernetes do separacji środowisk i właściwej alokacji zasobów na Azure dla zadań inferencji modeli, co pozwoliło na efektywne zarządzanie zasobami i oszczędności dzięki współdzielonej infrastrukturze.

MLflow
MLflow to open-source platforma do zarządzania całym cyklem życia machine learning, w tym eksperymentowaniem, powtarzalnością i wdrażaniem.

Główne komponenty:

  • MLflow Tracking: Rejestruje i zapytuje eksperymenty: kod, dane, konfiguracje i wyniki.
  • MLflow Projects: Format do pakowania kodu data science w sposób wielokrotnego użytku i powtarzalny.
  • MLflow Models: Format do pakowania modeli machine learning, ułatwiający ich wdrażanie.
  • MLflow Registry: Centralny magazyn modeli do zarządzania pełnym cyklem życia modelu MLflow.

Kluczowe funkcje:

  • Experiment Tracking: Logowanie parametrów, wersji kodu, metryk i plików wyjściowych.
  • Model Packaging: Pakowanie modeli w różnych formatach (np. Python, R, Java).
  • Deployment: Wdrażanie modeli na różnych platformach, w tym REST API, chmurze i na urządzeniach edge.

python

import mlflow  import mlflow.sklearn  from sklearn.ensemble import RandomForestRegressor  mlflow.set_experiment('my-experiment')  with mlflow.start_run():      model = RandomForestRegressor(n_estimators=100)      model.fit(X_train, y_train)      mlflow.log_param('n_estimators', 100)      mlflow.log_metric('rmse', rmse)      mlflow.sklearn.log_model(model, 'random-forest-model')  

Kubeflow
Kubeflow to open-source platforma zaprojektowana do uproszczenia wdrażania workflow machine learning na Kubernetes – prosto, przenośnie i skalowalnie.

Główne komponenty:

  • Kubeflow Pipelines: Platforma do budowania i wdrażania przenośnych, skalowalnych workflow ML opartych na Docker containers.
  • Katib: Kubernetes-native projekt do automatycznego strojenia hyperparametrów.
  • KFServing: System do serwowania modeli machine learning na Kubernetes, zoptymalizowany pod workloady inferencyjne.

Kluczowe funkcje:

  • Reproducible Pipelines: Tworzenie i zarządzanie przenośnymi, skalowalnymi workflow ML.
  • Hyperparameter Tuning: Automatyzacja wyszukiwania najlepszych hyperparametrów.
  • Model Serving: Wdrażanie i serwowanie modeli z wysoką wydajnością i skalą.

Przykład użycia:

python

import kfp  from kfp import dsl  @dsl.pipeline(      name='My Pipeline',      description='An example pipeline'  )  def my_pipeline():      train_op = dsl.ContainerOp(          name='Train Model',          image='gcr.io/my-project/train-image:latest',          arguments=['--model-dir', '/mnt/models']      )      serve_op = dsl.ContainerOp(          name='Serve Model',          image='gcr.io/my-project/serve-image:latest',          arguments=['--model-dir', '/mnt/models']      )  kfp.compiler.Compiler().compile(my_pipeline, 'my_pipeline.yaml')  

DS STREAM Implementation with Kubeflow
W projekcie centralizacji operacji na Google Cloud Platform (GCP), DS Stream wdrożył Kubeflow, by usprawnić workflow machine learning. Dzięki Kubeflow Pipelines zautomatyzowano deployment workflow ML, czyniąc je skalowalnymi i przenośnymi między różnymi środowiskami chmurowymi.

W innym projekcie przeniesiono kod do Kubeflow na GCP, rozdzielając środowiska za pomocą Kubernetes namespaces, stosując strategie CI/CD na GitHub, uruchamiając walidację danych, budując Docker images i alokując zasoby do trenowania modeli. Te kroki zapewniły płynne i powtarzalne przejście od developmentu do produkcji.

Integracja narzędzi MLOps w procesach biznesowych FMCG

Integracja narzędzi MLOps w procesach biznesowych FMCG obejmuje kilka kluczowych kroków:

  • Data Ingestion i Processing:
    Użyj narzędzi takich jak Apache Kafka lub Google Pub/Sub do pobierania danych w czasie rzeczywistym. Przetwarzaj dane za pomocą Apache Beam lub Spark i przechowuj je w data warehouses jak BigQuery lub Snowflake.
  • Model Training i Experimentation:
    Wykorzystaj MLflow lub TensorFlow do trenowania i eksperymentowania z modelami. Wdrażaj distributed training z użyciem Kubernetes i TensorFlow.
  • DS STREAM Implementation of Model Training:
    DS Stream stworzył zautomatyzowany pipeline CI/CD z GitHub Actions do zarządzania deploymentem i skalowaniem worker pods w AKS. To rozwiązanie usprawniło batch inferencing i monitoring modeli, zapewniając wysoką wydajność i skalowalność przy niskich kosztach dzięki inteligentnemu wykorzystaniu zasobów.
  • Model Deployment i Serving:
    Wdrażaj modele za pomocą KFServing lub TensorFlow Serving. Używaj Kubernetes do zarządzania aplikacjami kontenerowymi i zapewnienia skalowalności.
  • DS STREAM Implementation of Model Deployment:
    W jednym z projektów DS Stream przygotował Docker images i skonfigurował alokację zasobów dla inferencji modeli na GPU na Azure. To podejście zapewniło efektywne wdrożenie i skalowanie worker pods w zależności od liczby żądań, co przyniosło znaczne oszczędności w porównaniu do tradycyjnych managed endpoints.
  • Monitoring i Maintenance:
    Wdrażaj monitoring z użyciem Prometheus i Grafana do śledzenia wydajności modeli. Używaj MLflow i Kubeflow do ciągłej walidacji i retrainingu modeli.
  • DS STREAM Implementation of Monitoring and Maintenance:
    Do monitorowania modeli DS Stream użył OpenTelemetry do śledzenia wydajności aplikacji i wykrywania data drift. Zautomatyzowane procesy retrainingu i monitoringu zapewniły, że wdrożone modele pozostają dokładne i niezawodne w czasie.

Podsumowanie
Dla deweloperów w branży FMCG opanowanie narzędzi i technologii MLOps jest kluczowe dla optymalizacji workflow machine learning i usprawnienia operacji biznesowych. Wykorzystując TensorFlow, Kubernetes, MLflow i Kubeflow, deweloperzy mogą budować solidne, skalowalne i wydajne systemy ML, które przynoszą znaczącą wartość organizacjom. Zrozumienie aspektów technicznych i strategii integracji tych narzędzi pozwoli usprawnić procesy, obniżyć koszty operacyjne i dostarczać wysokiej jakości rozwiązania ML.

DS Stream banner with the text 'Make Accurate and Timely Decisions' and a 'Learn More' button, featuring an illustration of data analysis.

Targetowanie zrozumienie first party data

Kubernetes w fmcg automatyzacja aplikacji

Demand side platforms rola w programmatic advertising

Share this post
DevOps
Jakub Grabski
MORE POSTS BY THIS AUTHOR
Jakub Grabski

Curious how we can support your business?

TALK TO US