Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Usługi internetowe Amazona

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Usługi internetowe Amazona

To jest post gościnny napisany przez Axfood AB. 

W tym poście dzielimy się tym, jak Axfood, duży szwedzki sprzedawca detaliczny żywności, usprawnił działanie i skalowalność swoich istniejących operacji związanych ze sztuczną inteligencją (AI) i uczeniem maszynowym (ML), tworząc prototypy w ścisłej współpracy z ekspertami AWS i wykorzystując Amazon Sage Maker.

siekiera to drugi co do wielkości sprzedawca detaliczny żywności w Szwecji, zatrudniający ponad 13,000 300 pracowników i posiadający ponad XNUMX sklepów. Axfood ma strukturę składającą się z wielu zdecentralizowanych zespołów zajmujących się analizą danych o różnych obszarach odpowiedzialności. Wraz z centralnym zespołem zajmującym się platformą danych zespoły analityki danych wprowadzają do organizacji innowacje i transformację cyfrową poprzez rozwiązania AI i ML. Axfood korzysta z Amazon SageMaker do kultywowania swoich danych przy użyciu ML i od wielu lat produkuje modele. Ostatnio poziom zaawansowania i sama liczba produkowanych modeli rośnie wykładniczo. Jednakże, mimo że tempo innowacji jest wysokie, różne zespoły opracowały własne sposoby pracy i poszukiwały nowych najlepszych praktyk MLOps.

Nasze wyzwanie

Aby zachować konkurencyjność w zakresie usług w chmurze i sztucznej inteligencji/ML, Axfood zdecydował się na współpracę z AWS i współpracuje z nią od wielu lat.

Podczas jednej z naszych cyklicznych sesji burzy mózgów z AWS omawialiśmy, jak najlepiej współpracować między zespołami, aby zwiększyć tempo innowacji i efektywność specjalistów zajmujących się analizą danych i ML. Postanowiliśmy podjąć wspólny wysiłek w celu zbudowania prototypu w oparciu o najlepsze praktyki MLOps. Celem prototypu było zbudowanie szablonu modelu dla wszystkich zespołów zajmujących się analityką danych w celu zbudowania skalowalnych i wydajnych modeli ML – podstawy nowej generacji platform AI i ML dla Axfood. Szablon powinien łączyć i łączyć najlepsze praktyki ekspertów AWS ML z modelami najlepszych praktyk specyficznych dla firmy — to, co najlepsze z obu światów.

Zdecydowaliśmy się zbudować prototyp z jednego z najbardziej rozwiniętych obecnie modeli ML w Axfood: prognozowanie sprzedaży w sklepach. A dokładniej prognoza dotycząca owoców i warzyw w nadchodzących kampaniach dla sklepów spożywczych. Dokładne codzienne prognozowanie wspiera proces zamawiania w sklepach, zwiększając zrównoważony rozwój poprzez minimalizację marnowania żywności w wyniku optymalizacji sprzedaży poprzez dokładne przewidywanie potrzebnych poziomów zapasów w sklepie. To było idealne miejsce na rozpoczęcie pracy nad naszym prototypem — nie tylko Axfood zyska nową platformę AI/ML, ale także zyskamy szansę na przetestowanie naszych możliwości ML i uczenie się od wiodących ekspertów AWS.

Nasze rozwiązanie: Nowy szablon ML w Amazon SageMaker Studio

Budowanie pełnego potoku uczenia maszynowego zaprojektowanego pod kątem rzeczywistego przypadku biznesowego może być wyzwaniem. W tym przypadku opracowujemy model prognostyczny, dlatego należy wykonać dwa główne kroki:

  1. Wytrenuj model, aby dokonywał prognoz na podstawie danych historycznych.
  2. Zastosuj przeszkolony model, aby przewidywać przyszłe zdarzenia.

W przypadku Axfood dobrze funkcjonujący potok do tego celu został już skonfigurowany przy użyciu notebooków SageMaker i zaaranżowany przez zewnętrzną platformę zarządzania przepływem pracy Airflow. Istnieje jednak wiele wyraźnych korzyści z modernizacji naszej platformy ML i przejścia na nią Studio Amazon SageMaker i Rurociągi Amazon SageMaker. Przejście do SageMaker Studio zapewnia wiele predefiniowanych, gotowych funkcji:

  • Monitorowanie modelu i jakości danych oraz wyjaśnialności modelu
  • Wbudowane narzędzia zintegrowanego środowiska programistycznego (IDE), takie jak debugowanie
  • Monitorowanie kosztów/wyników
  • Ramy akceptacji modelu
  • Rejestr modeli

Jednak najważniejszą zachętą dla Axfood jest możliwość tworzenia niestandardowych szablonów projektów przy użyciu Projekty Amazon SageMaker do wykorzystania jako wzór dla wszystkich zespołów zajmujących się analizą danych i praktyków ML. Zespół Axfood miał już solidny i dojrzały poziom modelowania ML, dlatego główny nacisk położono na budowę nowej architektury.

Omówienie rozwiązania

Proponowane przez Axfood nowe ramy uczenia maszynowego opierają się na dwóch głównych procesach: potok budowania modelu i potok wnioskowania wsadowego:

  • Wersje tych potoków znajdują się w dwóch oddzielnych repozytoriach Git: jednym repozytorium kompilacji i jednym repozytorium wdrażania (wnioskowania). Razem tworzą solidny zestaw narzędzi do prognozowania owoców i warzyw.
  • Potoki są pakowane w niestandardowy szablon projektu przy użyciu SageMaker Projects w integracji z repozytorium Git (Bitbucket) innej firmy i potokami Bitbucket w celu zapewnienia ciągłej integracji i ciągłego wdrażania (CI/CD).
  • Szablon projektu SageMaker zawiera kod początkowy odpowiadający każdemu etapowi budowania i wdrażania potoków (kroki te omówimy bardziej szczegółowo w dalszej części tego wpisu), a także definicję potoku — przepis na sposób wykonywania tych kroków.
  • Usprawniono automatyzację budowania nowych projektów w oparciu o szablon Katalog usług AWS, gdzie tworzone jest portfolio, służące jako abstrakcja dla wielu produktów.
  • Każdy produkt przekłada się na Tworzenie chmury AWS szablon, który jest wdrażany, gdy analityk danych tworzy nowy projekt SageMaker, którego podstawą jest nasz plan MLOps. To aktywuje AWS Lambda funkcja, która tworzy projekt Bitbucket z dwoma repozytoriami — budowaniem modelu i wdrażaniem modelu — zawierającymi kod źródłowy.

Poniższy diagram ilustruje architekturę rozwiązania. Przepływ pracy A przedstawia skomplikowany przepływ pomiędzy dwoma potokami modelu — budowaniem i wnioskowaniem. Przepływ pracy B przedstawia przepływ tworzenia nowego projektu ML.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Potok budowania modelu

Potok budowania modelu organizuje cykl życia modelu, począwszy od przetwarzania wstępnego, poprzez szkolenie, a skończywszy na zarejestrowaniu w rejestrze modelu:

  • Przetwarzanie wstępne – Tutaj, SageMaker ScriptProcessor class jest wykorzystywana do inżynierii cech, w wyniku czego powstaje zbiór danych, na którym model będzie szkolony.
  • Szkolenie i transformacja wsadowa – Niestandardowe kontenery szkoleniowe i wnioskowania z SageMaker są wykorzystywane do uczenia modelu na danych historycznych i tworzenia prognoz na podstawie danych ewaluacyjnych przy użyciu narzędzia SageMaker Estimator i Transformer do odpowiednich zadań.
  • Ocena – Wyszkolony model poddawany jest ocenie poprzez porównanie wygenerowanych przewidywań na danych ewaluacyjnych z podstawową prawdą przy użyciu ScriptProcessor.
  • Zadania podstawowe – Potok tworzy wartości bazowe na podstawie statystyk zawartych w danych wejściowych. Są one niezbędne do monitorowania jakości danych i modeli, a także przypisania funkcji.
  • Rejestr modeli – Wyszkolony model jest zarejestrowany do wykorzystania w przyszłości. Model zostanie zatwierdzony przez wyznaczonych analityków danych w celu wdrożenia go do wykorzystania w środowisku produkcyjnym.

W środowiskach produkcyjnych pozyskiwanie danych i mechanizmy wyzwalania są zarządzane za pośrednictwem podstawowej orkiestracji przepływu powietrza. Tymczasem podczas programowania potok jest aktywowany za każdym razem, gdy wprowadzane jest nowe zatwierdzenie do repozytorium Bitbucket służącego do tworzenia modelu. Poniższy rysunek wizualizuje potok kompilacji modelu.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Potok wnioskowania wsadowego

Potok wnioskowania wsadowego obsługuje fazę wnioskowania, która składa się z następujących kroków:

  • Przetwarzanie wstępne – Dane są wstępnie przetwarzane przy użyciu ScriptProcessor.
  • Transformacja wsadowa – Model wykorzystuje niestandardowy kontener wnioskowania z SageMaker Transformer i generuje prognozy na podstawie wstępnie przetworzonych danych wejściowych. Używany model to najnowszy zatwierdzony model przeszkolony w rejestrze modeli.
  • Przetwarzanie końcowe – Prognozy przechodzą szereg etapów przetwarzania końcowego przy użyciu ScriptProcessor.
  • Monitorowanie – Ciągły nadzór kończy sprawdzanie odchyleń związanych z jakością danych, jakością modelu i przypisaniem cech.

Jeśli pojawią się rozbieżności, logika biznesowa zawarta w skrypcie przetwarzania końcowego ocenia, czy konieczne jest ponowne uczenie modelu. Rurociąg będzie kursował w regularnych odstępach czasu.

Poniższy diagram ilustruje potok wnioskowania wsadowego. Przepływ pracy A odpowiada przetwarzaniu wstępnemu, sprawdzaniu dryftu jakości danych i atrybucji cech, wnioskowaniu i przetwarzaniu końcowemu. Przepływ pracy B odpowiada sprawdzeniu dryftu jakości modelu. Potoki te są podzielone, ponieważ sprawdzanie dryfu jakości modelu będzie uruchamiane tylko wtedy, gdy dostępne będą nowe podstawowe dane.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Monitor modelu SageMaker

Z Monitor modelu Amazon SageMaker zintegrowane, rurociągi korzystają z monitorowania w czasie rzeczywistym następujących elementów:

  • Jakość danych – Monitoruje wszelkie odchylenia i niespójności danych
  • Jakość modelu – Obserwuje wszelkie wahania w działaniu modelu
  • Przypisanie funkcji – Sprawdza dryf w atrybucjach funkcji

Monitorowanie jakości modelu wymaga dostępu do podstawowych danych. Chociaż uzyskanie podstawowej prawdy może czasami być trudne, wykorzystanie monitorowania dryftu atrybucji danych lub cech służy jako kompetentny wskaźnik jakości modelu.

W szczególności w przypadku zmiany jakości danych system zwraca uwagę na:

  • Pojęcie dryfu – Dotyczy to zmian w korelacji pomiędzy danymi wejściowymi i wyjściowymi, wymagających ugruntowania prawdy
  • Przesunięcie kowariancji – Tutaj nacisk położony jest na zmiany w rozkładzie niezależnych zmiennych wejściowych

Funkcja dryfu danych SageMaker Model Monitor skrupulatnie przechwytuje i analizuje dane wejściowe, wdrażając reguły i kontrole statystyczne. Alerty są zgłaszane po wykryciu anomalii.

Równolegle do wykorzystywania kontroli dryftu jakości danych jako zastępczego wskaźnika monitorowania degradacji modelu, system monitoruje również dryft atrybucji cech, korzystając ze znormalizowanego wyniku zdyskontowanego skumulowanego zysku (NDCG). Wynik ten jest wrażliwy zarówno na zmiany w kolejności rankingu atrybucji cech, jak i na surowe wyniki atrybucji cech. Monitorując zmiany w atrybucji dla poszczególnych cech i ich względnego znaczenia, łatwo jest wykryć pogorszenie jakości modelu.

Wytłumaczalność modelu

Wyjaśnialność modelu jest kluczową częścią wdrożeń ML, ponieważ zapewnia przejrzystość przewidywań. Aby uzyskać szczegółowe zrozumienie, używamy Amazon SageMaker Wyjaśnij.

Oferuje zarówno wyjaśnienia modelu globalnego, jak i lokalnego za pomocą techniki atrybucji cech niezależnej od modelu, opartej na koncepcji wartości Shapleya. Służy do dekodowania, dlaczego podczas wnioskowania dokonano określonej prognozy. Takie wyjaśnienia, które są z natury kontrastowe, mogą się różnić w zależności od różnych punktów odniesienia. SageMaker Clarify pomaga w określeniu tej linii bazowej przy użyciu K-średnich lub K-prototypów w wejściowym zestawie danych, który jest następnie dodawany do potoku budowania modelu. Ta funkcjonalność umożliwia nam w przyszłości tworzenie generatywnych aplikacji AI w celu lepszego zrozumienia działania modelu.

Industrializacja: od prototypu do produkcji

Projekt MLOps charakteryzuje się wysokim stopniem automatyzacji i może służyć jako wzór dla podobnych przypadków użycia:

  • Infrastrukturę można w całości ponownie wykorzystać, natomiast kod początkowy można dostosować do każdego zadania, przy czym większość zmian ogranicza się do definicji potoku i logiki biznesowej na potrzeby przetwarzania wstępnego, szkolenia, wnioskowania i przetwarzania końcowego.
  • Skrypty uczące i wnioskowujące są hostowane przy użyciu niestandardowych kontenerów SageMaker, dzięki czemu można dostosować różnorodne modele bez zmian w danych i monitorowaniu modelu lub etapach wyjaśniania modelu, o ile dane są w formacie tabelarycznym.

Po zakończeniu prac nad prototypem zajęliśmy się tym, jak powinniśmy go wykorzystać w produkcji. W tym celu uznaliśmy za konieczne wprowadzenie dodatkowych zmian w szablonie MLOps:

  • Oryginalny kod początkowy użyty w prototypie szablonu obejmował etapy przetwarzania wstępnego i końcowego uruchamiane przed i po podstawowych etapach uczenia maszynowego (uczenie i wnioskowanie). Jednak w przypadku skalowania w celu użycia szablonu do wielu przypadków użycia w środowisku produkcyjnym wbudowane etapy przetwarzania wstępnego i końcowego mogą prowadzić do zmniejszenia ogólności i reprodukcji kodu.
  • Aby poprawić ogólność i zminimalizować powtarzalność kodu, zdecydowaliśmy się jeszcze bardziej uprościć potoki. Zamiast uruchamiać etapy przetwarzania wstępnego i końcowego w ramach potoku ML, uruchamiamy je w ramach podstawowej orkiestracji przepływu powietrza przed i po wyzwoleniu potoku ML.
  • W ten sposób zadania przetwarzania specyficzne dla przypadku użycia są wyodrębniane z szablonu, a pozostaje podstawowy potok ML wykonujący zadania ogólne dla wielu przypadków użycia przy minimalnej liczbie powtórzeń kodu. Parametry, które różnią się w zależności od przypadku użycia, są dostarczane jako dane wejściowe do potoku ML z podstawowej orkiestracji Airflow.

Rezultat: szybkie i wydajne podejście do budowania i wdrażania modeli

Prototyp we współpracy z AWS zaowocował szablonem MLOps zgodnym z aktualnymi najlepszymi praktykami, który jest teraz dostępny do użytku dla wszystkich zespołów zajmujących się analizą danych w Axfood. Tworząc nowy projekt SageMaker w SageMaker Studio, badacze danych mogą szybko rozpocząć nowe projekty ML i płynnie przejść do produkcji, co pozwala na bardziej efektywne zarządzanie czasem. Jest to możliwe dzięki automatyzacji żmudnych, powtarzalnych zadań MLOps w ramach szablonu.

Co więcej, do naszej konfiguracji ML dodano kilka nowych funkcji w sposób zautomatyzowany. Zyski te obejmują:

  • Monitorowanie modelu – Możemy przeprowadzić kontrolę dryfu pod kątem jakości modelu i danych, a także możliwości wyjaśnienia modelu
  • Model i pochodzenie danych – Można teraz dokładnie prześledzić, które dane zostały wykorzystane w jakim modelu
  • Rejestr modeli – Pomaga nam to w katalogowaniu modeli do produkcji i zarządzaniu wersjami modeli

Wnioski

W tym poście omówiliśmy, jak Axfood poprawił działanie i skalowalność naszych istniejących operacji AI i ML we współpracy z ekspertami AWS oraz korzystając z SageMaker i powiązanych z nim produktów.

Te ulepszenia pomogą zespołom zajmującym się analityką danych Axfood w budowaniu przepływów pracy ML w bardziej ujednolicony sposób oraz znacznie uproszczą analizę i monitorowanie modeli w produkcji, zapewniając jakość modeli ML budowanych i utrzymywanych przez nasze zespoły.

Prosimy o pozostawienie wszelkich opinii lub pytań w sekcji komentarzy.


O autorach

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Doktor Björn Blomqvist jest szefem strategii AI w Axfood AB. Przed dołączeniem do Axfood AB kierował zespołem Data Scientist w Dagab, części Axfood, budującym innowacyjne rozwiązania w zakresie uczenia maszynowego, których misją było dostarczanie dobrej i zrównoważonej żywności ludziom w całej Szwecji. Urodzony i wychowany na północy Szwecji, w wolnym czasie Björn wyrusza w zaśnieżone góry i otwarte morza.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Oskar Klang jest starszym analitykiem danych w dziale analityki w firmie Dagab, gdzie lubi pracować we wszystkich obszarach związanych z analityką i uczeniem maszynowym, np. optymalizując operacje w łańcuchu dostaw, budując modele prognostyczne, a ostatnio także aplikacje GenAI. Angażuje się w budowanie usprawnionych potoków uczenia maszynowego, zwiększających wydajność i skalowalność.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Paweł Masłow jest starszym inżynierem DevOps i ML w zespole Analytic Platforms. Pavel ma szerokie doświadczenie w tworzeniu frameworków, infrastruktury i narzędzi z obszarów DevOps i ML/AI na platformie AWS. Pavel był jednym z kluczowych graczy w budowaniu podstawowych możliwości ML w Axfood.

Jak Axfood umożliwia przyspieszone uczenie maszynowe w całej organizacji przy użyciu Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Joakima Berga to lider zespołu i właściciel produktu ds. platform analitycznych z siedzibą w Sztokholmie w Szwecji. Kieruje zespołem inżynierów Data Platform end DevOps/MLOps dostarczających platformy Data i ML dla zespołów Data Science. Joakim ma wieloletnie doświadczenie w kierowaniu starszymi zespołami zajmującymi się rozwojem i architekturą z różnych branż.

Znak czasu:

Więcej z Uczenie maszynowe AWS