Ciągła dostawa do uczenia maszynowego w FMCG

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

1. Wprowadzenie

Znaczenie ciągłego dostarczania w uczeniu maszynowym

Ciągła dostawa (CD) to krytyczna praktyka w inżynierii oprogramowania, która pozwala na bezpieczne, szybkie i trwałe wdrażanie zmian w produkcji. W kontekście uczenia maszynowego (ML), Continuous Delivery for Machine Learning (CD4ML) integruje zasady CD z unikalnymi wyzwaniami systemów ML, takimi jak zarządzanie zależnościami danych, złożoność modelu i potrzeba odtwarzalności.

Znaczenie dla branży FMCG

W przypadku firm FMCG (FMCG) przyjęcie CD4ML może znacznie zwiększyć wydajność operacyjną, poprawić prognozowanie produktów i umożliwić spersonalizowane strategie marketingowe. Dzięki usprawnieniu wdrażania modeli ML i zarządzania nimi, firmy FMCG mogą szybciej reagować na zmiany rynku i wymagania konsumentów.

DS Stream wdrożył rozwiązanie MLoPS na platformie Google Cloud Platform (GCP) w celu scentralizowania operacji FMCG. To rozwiązanie usprawniło przetwarzanie danych i zarządzanie modelami, co prowadzi do poprawy wydajności i znacznych oszczędności kosztów.

2. Wdrażanie ciągłej dostawy dla uczenia maszynowego

Przegląd zasad CD4ML

CD4ML to podejście inżynierii oprogramowania, w którym zespół wielofunkcyjny tworzy aplikacje do uczenia maszynowego oparte na kodzie, danych i modelach w małych, bezpiecznych odstępach, które można odtwarzać i niezawodnie uwolnić w dowolnym momencie. Podejście to obejmuje:

  • Zespoły wielofunkcyjne: Współpraca między inżynierami danych, naukowcami danych, inżynierami ML i specjalistami DevOps.
  • Kontrola wersji: Zarządzanie wersjami danych, kodu i modeli.
  • Automatyzacja: Korzystanie z narzędzi do automatyzacji przetwarzania danych, szkolenia modelowania i wdrażania.
  • Ciągły monitoring: Śledzenie wydajności modelu w produkcji w celu umożliwienia ciągłego doskonalenia.

Kluczowe komponenty i procesy

Wdrożenie CD4ML obejmuje kilka kluczowych elementów:

  • Rurociągi danych: Zapewnienie, że dane są wykrywalne, dostępne i efektywnie przetwarzane.
  • Modelowe rurociągi szkoleniowe: Automatyzacja szkolenia i walidacji modeli ML.
  • Rurociągi wdrażania: Zarządzanie wdrażaniem modeli w środowiskach produkcyjnych.
  • Monitorowanie i obserwowalność: Śledzenie wydajności i zachowania modeli w produkcji.

Korzystanie z usługi Azure Kubernetes Service (AKS) przez DS Stream jest przykładem tych zasad, umożliwiając płynne wdrażanie i monitorowanie modelu, zapewniając skalowalność i wydajność.

3. Poprawa zapewnienia jakości danych w ciągłym dostarczaniu

Techniki walidacji danych

Zapewnienie jakości danych jest najważniejsze w ML. Techniki obejmują:

  • Walidacja schematu: Sprawdzanie, czy dane są zgodne z oczekiwaną strukturą.
  • Kontrole zasięgu: Zapewnienie, że wartości liczbowe mieszczą się w dopuszczalnych zakresach.
  • Obsługa brakujących wartości: Wykrywanie i przypisywanie brakujących punktów danych.

Automatyzacja z modelami AI

Modele AI mogą zautomatyzować procesy walidacji danych. Na przykład GPT-3.5-turbo OpenAI można wykorzystać do identyfikacji anomalii i sugerowania poprawek.

Przykład: Walidacja danych za pomocą GPT-3.5-turbo OpenAI

import openai

importuj pandy jako pd

openai.api_key = 'Twój klucz api'

def validate_data (dane):

prompt = f"Sprawdź następujące dane pod kątem anomalii i brakujących wartości:\n{data.to_dict (orient='rekords')}”

odpowiedź = Openai.ChatCompletion.Create (

model = „gpt-3.5-turbo”,

wiadomości = [

{"role”: „system”, „content”: „Jesteś asystentem walidacji danych. „},

{"role”: „user”, „content”: monit}

],

max_tokens=150

)

return response.options [0] .message ['content'] .strip ()

dane = pd.DataFrame ({

„wiek”: [25, 30, Brak, 45, 50],

„dochód”: [50000, 60000, 70000, Brak, 90000]

})

validation_result = poprawne dane (dane)

drukuj (wynik walidacji)

4. Budowanie skalowalnych rurociągów danych

Projektowanie wydajnych rurociągów

Projektowanie skalowalnych pociągów danych polega na tworzeniu przepływów pracy, które skutecznie obsługują duże ilości danych, zapewniając przetwarzanie w czasie rzeczywistym, w razie potrzeby.

Zapewnienie jakości danych jest kluczowym aspektem Ciągła dostawa dla uczenia maszynowego (CD4ML). Zapewnienie wysokiej jakości danych ma bezpośredni wpływ na wydajność i niezawodność modeli ML w produkcji. Poprzez zintegrowanie solidnych technik walidacji danych w Ciągła dostawa Rurociąg, organizacje mogą zachować spójność i dokładność przez cały cykl życia ML.

Techniki takie jak walidacja schematu, sprawdzanie zakresu i obsługa brakujących wartości mogą być zautomatyzowane w ramach Ciągła dostawa ramy, zapewniające, że tylko czyste i wiarygodne dane są wykorzystywane do szkolenia i wdrażania modeli.

Przetwarzanie danych w czasie rzeczywistym

Przetwarzanie danych w czasie rzeczywistym ma kluczowe znaczenie dla zadań takich jak prognozowanie popytu i zarządzanie zapasami. Często używane są narzędzia takie jak Apache Kafka i Apache Spark.

Przykład: Przetwarzanie danych w czasie rzeczywistym za pomocą Apache Spark

z pyspark.sql importuj SparkSession

z pyspark.sql.features import z_json, col

z pyspark.sql.types importuj StructType, StructField, StringType, DoubleType

spark = SparkSession.Builder.AppName („RealTimeDataProcessing”) .getOrCreate ()

schemat = StructType ([

StructField („userId”, stringType (), True),

StructField („ProductID”, StringType (), True),

StructField („znacznik czasu”, stringType (), True),

StructField („ocena”, DoubleType (), True)

])

raw_data = spark.readstream.format („kafka”) .option („kafka.bootstrap.servers”, „localhost: 9092”) .option („subskrybuj”, „dane konsumenta”) .load ()

parsed_data = raw_data.select (from_json (col („wartość”) .cast („string”), schemat) .alias („dane”)) .select („dane.*”)

processed_data = parsed_data.filter (col („ocena”) > 3.0)

query = processed_data.writeStream.format („parkiet”) .option („path”, „/path/do/storage”) .option („checkpointLocation”, „/path/do/checkpoint”) .start ()

Query.waitTermination ()

5. Kontrola wersji w MLOP

Zarządzanie danymi i wersjami modelu

Kontrola wersji jest niezbędna dla odtwarzalności i współpracy. Narzędzia takie jak DVC (Data Version Control) mogą zarządzać wersjami zestawów danych i modeli.

Przykład: Korzystanie z DVC do kontroli wersji danych

dvc init

dvc dodaj data/raw/store47-2016.csv

git dodaj dane/.gitignore dane/raw.dvc

git commit -m „Dodaj surowe dane”

dvc pilot dodaj -d myremote s3://mybucket/path

dvc push

Najlepsze praktyki i narzędzia

  • DVC: Do wersji danych i modeli.
  • Git: Do wersji kodu i konfiguracji.
  • Rurociągi CI/CD: Do automatyzacji procesu wdrażania.

W jednym ze swoich projektów DS Stream wykorzystał zautomatyzowane rurociągi CI/CD wykorzystujące Github Actions do efektywnego zarządzania danymi i wersjami modeli, zapewniając ciągłą integrację i wdrażanie zaktualizowanych modeli.

6. Wdrażanie i monitorowanie modelu w ciągłej dostawie

Strategie wdrażania

Modele można wdrażać na kilka sposobów:

  • Wbudowany model: Model jest zapakowany w ramach aplikacji.
  • Model jako usługa: Model jest wdrażany jako oddzielna usługa.
  • Model jako dane: Model jest publikowany jako dane, a aplikacja pobiera go w czasie wykonywania.

Wdrożenie DS Stream na AKS wykazało skuteczność wykorzystania Dockera do wdrażania modeli, zapewniając skalowalność i niezawodność w środowiskach produkcyjnych.

Przykład: Wdrażanie modelu za pomocą Dockera

Tworzenie pliku Dockerfile w celu utworzenia obrazu Dockera modelu ML

Z pythonu:3.10-slim

WORKDIR /aplikacja

SKOPIUJ requirements.txt requirements.txt

URUCHOM instalację pip --no-cache-dir -r requirements.txt

KOPIOWAĆ.

ODSŁONIĆ 5000

CMD ["python”, "app.py „]

Budowa i uruchamianie kontenera Docker

kompilacja dockera -t my_model_image.

docker run -d -p 5000:5000 my_model_image

Narzędzia do monitorowania i obserwacji

Narzędzia monitorujące zapewniają, że modele działają zgodnie z oczekiwaniami w produkcji. Do tego celu można wykorzystać narzędzia takie jak Prometheus i Grafana.

W DS Stream zintegrowaliśmy OpenTeleMetry do monitorowania wydajności modelu, zapewniając kompleksową obserwowalność i zapewniając proaktywne rozwiązywanie problemów.

Przykład: Monitorowanie za pomocą Prometheusa i Grafany

Konfiguracja Prometeusza

globalny:

przerwa_skrapowania: 15s

scrape_configs:

- job_name: 'monitorowanie modelu'

statyczne_konfiguracje:

- cele: ['localhost:5000']

Zapewnienie ciągłego doskonalenia

Ciągłe monitorowanie i pętle sprzężenia zwrotnego są niezbędne do ulepszania modeli opartych na rzeczywistej wydajności.

7. Studia przypadków w FMCG

Optymalizacja zapasów

Korzystanie z ML modele przewidywania zapotrzebowania na zapasy mogą zmniejszyć nadmiar zapasów i zapasy.

W projekcie GCP firma DS Stream zoptymalizowała zarządzanie zapasami poprzez scentralizowane operacje i procesy uczenia maszynowego, co spowodowało znaczne oszczędności kosztów.

Przykładowa implementacja:

# Przykładowy kod dla modelu optymalizacji zapasów

importuj numpy jako np

importuj tensorflow jako tf

z tensorflow.keras.models import Sekwencyjny

z tensorflow.keras.layers importuj gęste, LSTM

# Generuj dane syntetyczne

def generate_inventory_data ():

czas = np.arange (0, 100, 0,1)

żądanie = np.sin (czas) + np.random.normal (skala = 0,5, rozmiar = len (czas))

czas zwrotu, popyt

czas, zapotrzebowanie = generate_inventory_data ()

# Przygotuj dane dla modelu LSTM

def prepare_inventory_data (żądanie, rozmiar okna):

X, y = [], []

dla i w zakresie (len (demand) - window_size):

x.append (żądanie [i:i+window_size])

y.append (żądanie [i + window_size])

zwróć np.array (X), np.array (y)

wielkość_okna = 10

X, y = przygotowania_dana_inwentarza (zapotrzebowanie, rozmiar okna)

X = X.ReShape ((X.Shape [0], X.Shape [1], 1))

# Zdefiniuj model LSTM

model = Sekwencyjny ([

LSTM (50, activation='relu', input_shape= (window_size, 1)),

Gęsty (1)

])

model.compile (optymalizator = 'adam', loss='mse')

# Model pociągu

model.fit (X, y, epoki = 20, walidacja_split=0.2)

# Zapisz model

model.save ('inventory_optymalizacji_model.h5')

Prognozowanie popytu

Wdrażanie modeli prognozowania popytu na produkty w oparciu o dane historyczne i trendy rynkowe.

Przykładowa implementacja:

importuj pandy jako pd

z tensorflow.keras.models import Sekwencyjny

z tensorflow.keras.layers import Gense

# Załaduj historyczne dane sprzedaży

dane = pd.read_csv ('historical_sales_data.csv')

# Inżynieria funkcji

dane ['miesiąc'] = pd.to_datetime (dane ['data']) .dt.month

dane ['day_of_week'] = pd.to_datetime (dane ['data']) .dt.dayofweek

# Przygotuj dane treningowe

X = dane [['miesiąc', 'dzień_tygodnia', 'promocja']] .values

y = dane ['sprzedaż'] .values

# Zdefiniuj model

model = Sekwencyjny ([

Gęsty (64, aktywacja = 'relu', wejścia_kształt= (x.Shape [1],)),

Gęsty (32, aktywacja = „relu”),

Gęsty (1)

])

model.compile (optymalizator = 'adam', loss='mse')

# Model pociągu

model.fit (X, y, epoki = 20, walidacja_split=0.2)

# Zapisz model

model.save ('zapotrzebowania_prognozowania_model.h5')

Spersonalizowane kampanie marketingowe

Wykorzystaj modele ML do analizy danych konsumenckich i tworzenia spersonalizowanych kampanii marketingowych.

Przykład: spersonalizowane treści marketingowe z GPT-3.5-turbo OpenAI

import openai

openai.api_key = 'Twój klucz api'

def generate_marketing_content (dane klienta):

prompt = F"Generuj spersonalizowane treści marketingowe dla następującego klienta: {customer_data}”

odpowiedź = Openai.Completion.create (
model =” 3.5-turbo-instrukt”,
prompt=prompt, max_tokens=100

)

zwrot response.options [0] .text.strip ()

dane klienta = {

„name”: „John Doe”,

„buy_history”: ["laptop”, „smartfon"],

„preferences”: ["elektronika”, „gadżety"]

}

marketing_content = generuj treści_marketingową (dane klienta)

drukuj (treść marketingowa)

8. Wniosek

Podsumowanie kluczowych punktów

Przyjęcie Continuous Delivery for Machine Learning (CD4ML) w FMCG obejmuje rozpoczęcie od małych projektów pilotażowych, inwestowanie w szkolenia, wspieranie współpracy i wykorzystanie modeli sztucznej inteligencji do automatyzacji. Praktyki te zapewniają sprawne i skuteczne wdrażanie MLOP.

Przyszłe kierunki

Ponieważ branża FMCG nadal ewoluuje, zastosowanie CD4ML może przynieść znaczące korzyści pod względem wydajności, skalowalności i innowacji. Ciągłe monitorowanie i pętle sprzężenia zwrotnego umożliwiają firmom ulepszanie modeli w oparciu o rzeczywistą wydajność, zapewniając im konkurencyjność na szybko zmieniającym się rynku.

Tytuł SEO:

„Ciągłe dostarczanie uczenia maszynowego w FMCG: najlepsze praktyki i studia przypadków”

Opis SEO:

„Dowiedz się, w jaki sposób firmy FMCG mogą wdrożyć Continuous Delivery for Machine Learning (CD4ML). Poznaj najlepsze praktyki, techniki automatyzacji za pomocą modeli sztucznej inteligencji oraz rzeczywiste studia przypadków dotyczące optymalizacji zapasów, prognozowania popytu i spersonalizowanych kampanii marketingowych.

FAQ

1. Co to jest ciągłe dostarczanie dla uczenia maszynowego (CD4ML)?

  • CD4ML to podejście inżynieryjne oprogramowania, które integruje zasady ciągłej dostawy z uczeniem maszynowym w celu automatyzacji kompleksowego cyklu życia aplikacji ML, zapewniając bezpieczne, szybkie i niezawodne wdrożenie.

2. W jaki sposób firmy FMCG mogą skorzystać z CD4ML?

  • Firmy FMCG mogą zwiększyć wydajność operacyjną, usprawnić prognozowanie produktów i umożliwić spersonalizowane strategie marketingowe poprzez usprawnienie wdrażania i zarządzania modelami ML.

3. Jakie są kluczowe składniki CD4ML?

  • Kluczowe komponenty obejmują rurociągi danych, rurociągi szkoleniowe modeli, rurociągi wdrażania oraz narzędzia do monitorowania i obserwacji.

4. W jaki sposób modele sztucznej inteligencji mogą zautomatyzować zapewnienie jakości danych w MLOP?

  • Modele AI, takie jak GPT-3 OpenAI, mogą zautomatyzować procesy walidacji danych poprzez identyfikację anomalii, wypełnianie brakujących wartości i korygowanie typów danych.

5. Jakie są wspólne strategie wdrażania modeli ML w FMCG?

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

Curious how we can support your business?

TALK TO US