Wprowadzenie
W branży szybko przemieszczających się dóbr konsumpcyjnych (FMCG) operacje uczenia maszynowego (MLOP) mają kluczowe znaczenie dla optymalizacji i automatyzacji wdrażania modeli uczenia maszynowego. W tym artykule omówiono techniczne aspekty kluczowych narzędzi i technologii stosowanych w MLOP, koncentrując się na tym, w jaki sposób programiści mogą wykorzystać je do usprawnienia procesów w sektorze FMCG.
Przegląd popularnych narzędzi MLOP
TensorFlow
TensorFlow to platforma typu open source do uczenia maszynowego, która zapewnia kompleksowy ekosystem bibliotek, narzędzi i zasobów społeczności. Jest szeroko stosowany do opracowywania, szkolenia i wdrażania modeli uczenia maszynowego.
Podstawowe komponenty:
- TensorFlow Core: Podstawowy interfejs API do budowania i szkolenia modeli.
- TensorFlow Extended (TFX): gotowa do produkcji platforma do wdrażania modeli uczenia maszynowego.
- TensorFlow Serving: Elastyczny, wysokowydajny system serwowania dla modeli uczenia maszynowego, zaprojektowany do środowisk produkcyjnych.
- TensorFlow Lite: lekkie rozwiązanie dla urządzeń mobilnych i wbudowanych.
Kluczowe cechy:
- Eager Execution: imperatywne środowisko programistyczne, które natychmiast ocenia operacje.
- Keras API: API wysokiego poziomu do budowania i szkolenia modeli.
- Strategie dystrybucji: Wsparcie dla szkoleń na wielu procesorach graficznych i środowiskach rozproszonych.
Python
importuj tensorflow jako tf
z tensorflow import keras
# Zdefiniuj prosty model sekwencyjny
model = KERAS.Sekwencyjny ([
keras.layers.dense (128, aktywacja = 'relu', kształt_wejścia= (784,)),
Keras.Layers.Dropout (0,2),
keras.layers.dense (10, activation='softmax')
])
# Skompiluj model
model.compile (optymalizator = 'adam',
loss='sparse_categorical_crossentropy',
metrics= ['dokładność'])
# Trenuj model
model.fit (obrazek_trenów, etykietyki_pociągów, epoki=5)
# Zapisz model
model.save ('mo_model')
Kubernetes
Kubernetes to system open source do automatyzacji wdrażania, skalowania i zarządzania aplikacjami kontenerowymi. Jest niezbędny do zarządzania złożonymi architekturami mikrousług w MLOP.
Podstawowe komponenty:
- Strąki: najmniejsze jednostki do rozmieszczenia, które mogą zawierać jeden lub więcej pojemników.
- Usługi: Definiuje logiczny zestaw podów i zasadę dostępu do nich.
- Wdrożenia: zarządza wdrażaniem podów.
- ConfigMaps and Secrets: zarządza danymi konfiguracyjnymi i poufnymi informacjami.
Kluczowe cechy:
- Horyzontal Pod Autoscaling: Automatycznie dostosowuje liczbę podów na podstawie wykorzystania procesora lub innych wybranych wskaźników.
- Helm: Menedżer pakietów dla Kubernetes, który pomaga w definiowaniu, instalowaniu i aktualizowaniu złożonych aplikacji Kubernetes.
Przykładowe użycie:
iaml
APiVersion: aplikacje/v1
rodzaj: Wdrożenie
metadane:
nazwa: my-ml-app
specyfikacja:
repliki: 3
selektor:
Etykiety meczowe:
aplikacja: my-ml-app
szablon:
metadane:
etykiety:
aplikacja: my-ml-app
specyfikacja:
pojemniki:
— nazwa: ml-container
obrazek: my-ml-image
porty:
— Port kontenera: 8080
—
Wersja API: v1
rodzaj: Usługa
metadane:
nazwa: my-ml-service
specyfikacja:
selektor:
aplikacja: my-ml-app
porty:
— protokół: TCP
port: 80
Port docelowy: 8080
typ: LoadBalancer
Implementacja DS STREAM z Kubernetes
Dla klientów z sektora FMCG firma DS Stream skonfigurowała aplikację internetową w usłudze Azure Kubernetes Service (AKS), aby ułatwić dostęp do modeli uczenia głębokiego. Wykorzystaliśmy poziome automatyczne skalowanie pod firmy Kubernetes, aby zapewnić, że aplikacja może płynnie obsługiwać duży ruch, dostosowując zasoby w razie potrzeby.
W innym projekcie DS Stream wykorzystywał przestrzenie nazw Kubernetes do oddzielania środowisk i prawidłowego przydzielania zasobów na platformie Azure do zadań wnioskowania modelu. Ta metoda pomogła nam efektywnie zarządzać zasobami i zaoszczędzić koszty dzięki wspólnej infrastrukturze.
MLFlow
MLFlow to platforma typu open source do zarządzania kompleksowym cyklem życia uczenia maszynowego, w tym eksperymentowania, odtwarzalności i wdrażania.
Podstawowe komponenty:
- Śledzenie MLFlow: Rekordy i eksperymenty z zapytaniami: kod, dane, konfiguracja i wyniki.
- Projekty MLFlow: Format pakowania kodu do nauki danych w sposób wielokrotnego użytku i powtarzalny.
- Modele MLFlow: format pakowania modeli uczenia maszynowego, który ułatwia ich wdrożenie.
- Rejestr MLFlow: scentralizowany magazyn modeli do wspólnego zarządzania pełnym cyklem życia modelu MLFlow.
Kluczowe cechy:
- Śledzenie eksperymentów: Parametry dziennika, wersje kodu, metryki i pliki wyjściowe.
- Opakowanie modeli: modele pakietów w różnych formatach (np. Python, R, Java).
- Wdrażanie: Wdrażaj modele na różnych platformach, w tym interfejsach API REST, usługach w chmurze i urządzeniach brzegowych.
Python
importuj mlflow
importowanie pliku mlflow.sklearn
z sklearn.ensemble importuj RandomForestRegressor
# Ustaw nazwę eksperymentu
mlflow.set_experiment ('mój eksperyment')
# Rozpocznij nowy bieg
z mlflow.start_run ():
# Trenuj model
model = RandomForestRegressor (n_estimators=100)
model.fit (X_train, y_train)
# Parametry modelu dziennika
mlflow.log_param ('n_estymatorów', 100)
# Metryki modelu dziennika
mlflow.log_metric ('rmse', rmse)
# Zaloguj model
mlflow.sklearn.log_model (model, „losowy model lasu”)
Kubeflow
Kubeflow to platforma typu open source zaprojektowana tak, aby wdrażanie przepływów pracy uczenia maszynowego na Kubernetes było proste, przenośne i skalowalne.
Podstawowe komponenty:
- Kubeflow Pipelines: platforma do budowania i wdrażania przenośnych, skalowalnych przepływów pracy uczenia maszynowego (ML) opartych na kontenerach Docker.
- Opis: Natywny projekt Kubernetes do automatycznego dostrajania hiperparametrów.
- KFServing: System do obsługi modeli uczenia maszynowego na Kubernetes, zoptymalizowany pod kątem obciążeń wnioskodawczych.
Kluczowe cechy:
- Powtarzalne rurociągi: twórz przenośne, skalowalne przepływy pracy ML i zarządzaj nimi.
- Strojenie hiperparametrów: Automatyzuj wyszukiwanie najlepszych hiperparametrów.
- Serwis modeli: Wdrażaj i obsługuj modele o wysokiej wydajności i skali.
Przykładowe użycie:
Python
import kfp
z kfp import dsl
@dsl .pipeline (
name='Mój rurocią',
description='Przykład rurociągowy'
)
def my_pipeline ():
# Zdefiniuj etapy rurociągu
train_op = DSL.kontenerop (
name='Model pociągu',
image='gcr.io/my-project/train-image:latest',
arguments= ['--model-dir', '/mnt/modele']
)
serve_op = DSL.ContainerOp (
name='Serwuj model',
image='gcr.io/my-project/serve-image:latest',
arguments= ['--model-dir', '/mnt/modele']
)
# Skompiluj rurociąg
kfp.compiler.Compiler () .compile (my_pipeline, 'my_pipeline .yaml')
Implementacja DS STREAM z Kubeflow
W projekcie mającym na celu scentralizowanie operacji na platformie Google Cloud Platform (GCP), DS Stream wykorzystał Kubeflow do usprawnienia przepływów pracy uczenia maszynowego. Wdrażając Kubeflow Pipelines, zautomatyzowaliśmy wdrażanie przepływów pracy ML, czyniąc je skalowalnymi i przenośnymi w różnych konfiguracjach chmury.
Kolejny projekt obejmował przeniesienie kodu do Kubeflow na GCP. Proces ten obejmował oddzielanie środowisk za pomocą przestrzeni nazw Kubernetes, wykorzystanie strategii rozgałęziania CI/CD na GitHub, przeprowadzanie kontroli walidacji danych, konfigurowanie obrazów Dockera i przydzielanie zasobów do szkolenia modelu. Etapy te zapewniły płynne i wielokrotnego użytku przejście od rozwoju do produkcji.
Integracja narzędzi MLOP z procesami biznesowymi FMCG
Integracja narzędzi MLOP z procesami biznesowymi FMCG obejmuje kilka kluczowych etapów:
Pobieranie i przetwarzanie danych:
- Używaj 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 przetworzone dane w hurtowniach danych, takich jak BigQuery lub Snowflake.
Trening modelowy i eksperymentowanie:
- Użyj MLFlow lub TensorFlow do treningu modelowego i eksperymentowania.
- Wdrażaj szkolenia rozproszone za pomocą Kubernetes i TensorFlow.
DS STREAM Wdrożenie szkolenia modelowego:
DS Stream stworzył zautomatyzowany potok CI/CD z działaniami GitHub do zarządzania wdrażaniem i skalowaniem kapsułek roboczych w AKS. Ta konfiguracja sprawiła, że wnioskowanie wsadowe i monitorowanie modelu jest wydajne, zapewniając wysoką wydajność i skalowalność przy jednoczesnym utrzymaniu niskich kosztów dzięki inteligentnemu wykorzystaniu zasobów.
Wdrażanie i obsługa modelu:
- Wdrażaj modele za pomocą serwowania KFServing lub TensorFlow Serving.
- Używaj Kubernetes do zarządzania aplikacjami kontenerowymi i zapewniania skalowalności.
Implementacja wdrażania modelu DS STREAM:
W jednym projekcie DS Stream przygotował obrazy Dockera i skonfigurował alokację zasobów do wnioskowania modeli opartych na GPU na platformie Azure. Takie podejście zapewniło efektywne wdrażanie i skalowanie modułów roboczych w oparciu o przychodzące żądania, co skutkowało znacznymi oszczędnościami kosztów w porównaniu z tradycyjnymi zarządzanymi punktami końcowymi.
Monitorowanie i konserwacja:
- Wdrażaj monitorowanie za pomocą Prometheus i Grafana w celu śledzenia wydajności modelu.
- Używaj MLFlow i Kubeflow do ciągłej walidacji i przekwalifikowania modelu.
DS STREAM Wdrożenie monitoringu i konserwacji
Do monitorowania modelu DS Stream używał OpenTeleMetry do śledzenia wydajności aplikacji i wykrywania dryfu danych. Zautomatyzowane procesy przekwalifikowania i monitorowania modeli zapewniły, że wdrożone modele pozostają dokładne i niezawodne w czasie.
Wniosek
Dla programistów z branży FMCG opanowanie narzędzi i technologii MLOP jest niezbędne do optymalizacji przepływów pracy uczenia maszynowego i usprawnienia operacji biznesowych. Korzystając z TensorFlow, Kubernetes, MLFlow i Kubeflow, programiści mogą budować solidne, skalowalne i wydajne systemy ML, które przynoszą znaczną wartość dla ich organizacji. Zrozumienie aspektów technicznych i strategii integracji tych narzędzi umożliwi programistom usprawnienie procesów, zmniejszenie kosztów operacyjnych i dostarczanie wysokiej jakości rozwiązań ML.
FAQ: Przewodnik techniczny po narzędziach i technologiach MLOP dla programistów FMCG
1. Jakie są podstawowe składniki TensorFlow stosowane w MLOP dla branży FMCG?
- TensorFlow Core: Podstawowy interfejs API do budowania i szkolenia modeli.
- TensorFlow Extended (TFX): gotowa do produkcji platforma do wdrażania modeli uczenia maszynowego.
- TensorFlow Serving: Wysokowydajny system serwowania dla środowisk produkcyjnych.
- TensorFlow Lite: lekkie rozwiązanie dla urządzeń mobilnych i wbudowanych.
2. W jaki sposób Kubernetes pomaga zarządzać procesami uczenia maszynowego w sektorze FMCG?
- Kubernetes automatyzuje wdrażanie, skalowanie i zarządzanie aplikacjami kontenerowymi. Pomaga zarządzać złożonymi architekturami mikrousług, obsługuje automatyczne skalowanie pod poziome i zapewnia narzędzia takie jak Helm do pakowania i wdrażania aplikacji Kubernetes.
3. Co to jest MLFlow i jak jest stosowany w MLOP dla FMCG?
- MLFlow to platforma typu open source do zarządzania kompleksowym cyklem życia uczenia maszynowego, w tym eksperymentowania, odtwarzalności i wdrażania. Oferuje komponenty, takie jak śledzenie MLFlow do rejestrowania eksperymentów, Projekty MLFlow dla kodu pakowania i Modele MLFlow do pakowania i wdrażania modeli.
4. Jakie korzyści oferuje Kubeflow dla przepływów pracy uczenia maszynowego FMCG?
- Kubeflow upraszcza wdrażanie przepływów pracy uczenia maszynowego na Kubernetes. Dostarcza komponenty takie jak Kubeflow Pipelines do budowania i wdrażania przepływów pracy ML, Katib do dostrajania hiperparametrów i KFServing do obsługi modeli o wysokiej wydajności i skalowalności.
5. W jaki sposób programiści FMCG mogą zintegrować narzędzia MLOP z procesami biznesowymi?
- Programiści mogą integrować narzędzia MLOP poprzez:
- Korzystanie z narzędzi do pobierania danych, takich jak Apache Kafka lub Google Pub/Sub.
- Przetwarzanie danych za pomocą Apache Beam lub Spark i przechowywanie ich w hurtowniach danych, takich jak BigQuery.
- Szkolenie i eksperymentowanie z modelami używającymi MLFlow lub TensorFlow.
- Wdrażanie modeli z KFServing lub TensorFlow Serving.
- Monitorowanie wydajności za pomocą Prometheus i Grafana oraz stosowanie ciągłej walidacji i przekwalifikowania za pomocą MLFlow i Kubeflow.

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