To jest część 3 naszej serii, w której projektujemy i wdrażamy potok MLOps do wizualnej kontroli jakości na krawędzi. W tym poście skupiamy się na automatyzacji części wdrażania brzegowego kompleksowego potoku MLOps. Pokażemy Ci, jak używać Zielona trawa AWS IoT zarządzać wnioskowaniem modelu na krawędzi i jak zautomatyzować proces za pomocą Funkcje kroków AWS oraz inne usługi AWS.
Omówienie rozwiązania
In Część 1 z tej serii opracowaliśmy architekturę naszego kompleksowego potoku MLOps, który automatyzuje cały proces uczenia maszynowego (ML), od etykietowania danych po szkolenie modeli i wdrażanie na brzegu sieci. W Część 2pokazaliśmy, jak zautomatyzować etykietowanie i modelowanie części potoku.
Przykładowy przypadek użycia zastosowany w tej serii to rozwiązanie do wizualnej kontroli jakości, które może wykryć defekty na metalowych etykietach i które można wdrożyć w ramach procesu produkcyjnego. Poniższy diagram przedstawia architekturę wysokiego poziomu potoku MLOps, który zdefiniowaliśmy na początku tej serii. Jeżeli jeszcze nie czytałeś, polecamy to sprawdzić Część 1.
Automatyzacja wdrażania brzegowego modelu ML
Po przeszkoleniu i ocenie modelu uczenia maszynowego należy go wdrożyć w systemie produkcyjnym, aby wygenerować wartość biznesową poprzez przewidywanie przychodzących danych. Proces ten może szybko stać się skomplikowany w środowisku brzegowym, gdzie modele muszą zostać wdrożone i uruchomione na urządzeniach, które często znajdują się daleko od środowiska chmury, w którym modele zostały przeszkolone. Poniżej przedstawiono niektóre wyzwania charakterystyczne dla uczenia maszynowego na krawędzi:
- Modele ML często wymagają optymalizacji ze względu na ograniczenia zasobów na urządzeniach brzegowych
- Urządzeń brzegowych nie można ponownie wdrożyć ani nawet wymienić jak serwera w chmurze, dlatego potrzebny jest niezawodny proces wdrażania modelu i zarządzania urządzeniami
- Komunikacja między urządzeniami a chmurą musi być wydajna i bezpieczna, ponieważ często przebiega przez niezaufane sieci o niskiej przepustowości
Zobaczmy, jak możemy stawić czoła tym wyzwaniom za pomocą usług AWS, oprócz eksportu modelu w formacie ONNX, co pozwala nam na przykład zastosować optymalizacje, takie jak kwantyzacja, aby zmniejszyć rozmiar modelu dla urządzeń ograniczających. ONNX zapewnia również zoptymalizowane czasy działania dla najpopularniejszych platform sprzętu brzegowego.
Przerywając proces wdrażania brzegowego, potrzebujemy dwóch komponentów:
- Mechanizm wdrażania dostarczania modelu, który obejmuje sam model i pewną logikę biznesową do zarządzania modelem i interakcji z nim
- Silnik przepływu pracy, który może zaaranżować cały proces, aby był solidny i powtarzalny
W tym przykładzie używamy różnych usług AWS do zbudowania naszego zautomatyzowanego mechanizmu wdrażania brzegowego, który integruje wszystkie wymagane komponenty, o których mówiliśmy.
Po pierwsze, symulujemy urządzenie brzegowe. Aby ułatwić Ci przejście przez cały proces pracy, używamy pliku Elastyczna chmura obliczeniowa Amazon (Amazon EC2) w celu symulacji urządzenia brzegowego poprzez zainstalowanie na tej instancji oprogramowania AWS IoT Greengrass Core. Możesz także użyć instancji EC2 do sprawdzenia poprawności różnych komponentów w procesie kontroli jakości przed wdrożeniem na rzeczywistym urządzeniu produkcyjnym brzegowym. AWS IoT Greengrass to środowisko wykonawcze typu open source i usługa w chmurze Internetu rzeczy (IoT), która pomaga tworzyć, wdrażać i zarządzać oprogramowaniem dla urządzeń brzegowych. AWS IoT Greengrass zmniejsza wysiłek związany z tworzeniem, wdrażaniem i zarządzaniem oprogramowaniem urządzeń brzegowych w bezpieczny i skalowalny sposób. Po zainstalowaniu oprogramowania AWS IoT Greengrass Core na swoim urządzeniu możesz dodawać lub usuwać funkcje i komponenty oraz zarządzać aplikacjami na urządzeniu IoT za pomocą AWS IoT Greengrass. Oferuje wiele wbudowanych komponentów ułatwiających życie, takich jak komponenty StreamManager i broker MQTT, których można używać do bezpiecznej komunikacji z chmurą, obsługując kompleksowe szyfrowanie. Za pomocą tych funkcji można efektywnie przesyłać wyniki wnioskowania i obrazy.
W środowisku produkcyjnym zazwyczaj masz kamerę przemysłową dostarczającą obrazy, dla których model ML powinien generować prognozy. Na potrzeby naszej konfiguracji symulujemy wprowadzanie obrazu, przesyłając gotowe obrazy do określonego katalogu na urządzeniu brzegowym. Następnie używamy tych obrazów jako danych wejściowych do wnioskowania dla modelu.
Podzieliliśmy cały proces wdrażania i wnioskowania na trzy kolejne etapy, aby wdrożyć model uczenia maszynowego wyszkolony w chmurze w środowisku brzegowym i wykorzystać go do prognozowania:
- Przygotować — Spakuj przeszkolony model na potrzeby wdrożenia brzegowego.
- Rozmieścić – Transfer komponentów modelu i wnioskowania z chmury na urządzenie brzegowe.
- Wnioskowanie – Załaduj model i uruchom kod wnioskowania w celu prognozowania obrazu.
Poniższy diagram architektury przedstawia szczegóły tego trzyetapowego procesu oraz sposób jego wdrożenia za pomocą usług AWS.
W poniższych sekcjach omawiamy szczegóły każdego kroku i pokazujemy, jak osadzić ten proces w zautomatyzowanej i powtarzalnej orkiestracji oraz przepływie pracy CI/CD zarówno dla modeli ML, jak i odpowiedniego kodu wnioskowania.
Przygotować
Urządzenia brzegowe często mają ograniczoną moc obliczeniową i pamięć w porównaniu ze środowiskiem chmurowym, w którym wydajne procesory i procesory graficzne mogą z łatwością uruchamiać modele ML. Różne techniki optymalizacji modelu umożliwiają dostosowanie modelu do konkretnej platformy programowej lub sprzętowej w celu zwiększenia szybkości przewidywania bez utraty dokładności.
W tym przykładzie wyeksportowaliśmy przeszkolony model w potoku szkoleniowym do formatu ONNX ze względu na przenośność, możliwe optymalizacje, a także zoptymalizowane czasy działania na krawędzi i zarejestrowaliśmy model w Rejestr modelu Amazon SageMaker. Na tym etapie tworzymy nowy komponent modelu Greengrass, zawierający najnowszy zarejestrowany model do późniejszego wdrożenia.
Rozmieścić
Bezpieczny i niezawodny mechanizm wdrażania jest kluczowy podczas wdrażania modelu z chmury na urządzenie brzegowe. Ponieważ AWS IoT Greengrass zawiera już solidny i bezpieczny system wdrażania brzegowego, używamy go do celów wdrażania. Zanim szczegółowo przyjrzymy się procesowi wdrażania, podsumujmy szybko, jak działają wdrożenia AWS IoT Greengrass. Podstawą systemu wdrażania AWS IoT Greengrass są składniki, które definiują moduły oprogramowania wdrożone na urządzeniu brzegowym z systemem AWS IoT Greengrass Core. Mogą to być komponenty prywatne, które budujesz, lub komponenty publiczne dostarczane przez AWS lub szerszy Społeczność Greengrass. W ramach wdrożenia można połączyć wiele komponentów. Konfiguracja wdrożenia definiuje komponenty zawarte we wdrożeniu i urządzenia docelowe wdrożenia. Można go zdefiniować w pliku konfiguracyjnym wdrożenia (JSON) lub za pomocą konsoli AWS IoT Greengrass podczas tworzenia nowego wdrożenia.
Tworzymy następujące dwa komponenty Greengrass, które następnie są wdrażane na urządzeniu brzegowym w procesie wdrażania:
- Model w pakiecie (komponent prywatny) – Ten komponent zawiera model przeszkolony i ML w formacie ONNX.
- Kod wnioskowania (komponent prywatny) – Oprócz samego modelu ML musimy zaimplementować logikę aplikacji do obsługi zadań takich jak przygotowanie danych, komunikacja z modelem w celu wnioskowania i przetwarzanie końcowe wyników wnioskowania. W naszym przykładzie opracowaliśmy prywatny komponent oparty na języku Python, który obsługuje następujące zadania:
- Zainstaluj wymagane komponenty wykonawcze, takie jak pakiet Ultralytics YOLOv8 Python.
- Zamiast pobierać obrazy z transmisji na żywo z kamery, symulujemy to, ładując przygotowane obrazy z określonego katalogu i przygotowując dane obrazu zgodnie z wymaganiami wejściowymi modelu.
- Wykonuj wywołania wnioskowania na podstawie załadowanego modelu z przygotowanymi danymi obrazu.
- Sprawdź prognozy i prześlij wyniki wnioskowania z powrotem do chmury.
Jeśli chcesz głębiej przyjrzeć się zbudowanemu przez nas kodowi wnioskowania, zapoznaj się z sekcją GitHub repo.
Wnioskowanie
Proces wnioskowania o modelu na urządzeniu brzegowym rozpoczyna się automatycznie po zakończeniu wdrażania wyżej wymienionych komponentów. Niestandardowy komponent wnioskowania okresowo uruchamia model ML z obrazami z katalogu lokalnego. Wynik wnioskowania na obraz zwrócony z modelu to tensor o następującej zawartości:
- Wyniki pewności – Jak pewny jest model w odniesieniu do wykrytych wykryć
- Współrzędne obiektu – Współrzędne obiektu zarysowania (x, y, szerokość, wysokość) wykryte przez model na obrazie
W naszym przypadku komponent wnioskowania zajmuje się wysyłaniem wyników wnioskowania do konkretnego tematu MQTT w AWS IoT, gdzie można je odczytać do dalszego przetwarzania. Komunikaty te można przeglądać za pośrednictwem klienta testowego MQTT na konsoli AWS IoT w celu debugowania. W środowisku produkcyjnym możesz zdecydować się na automatyczne powiadamianie innego systemu, który zajmie się usunięciem z linii produkcyjnej wadliwych metalowych zawieszek.
orkiestracja
Jak widać w poprzednich sekcjach, przygotowanie i wdrożenie modelu uczenia maszynowego, odpowiedniego kodu wnioskowania oraz wymaganego środowiska wykonawczego lub agenta na urządzeniu brzegowym wymaga wielu kroków. Step Functions to w pełni zarządzana usługa, która pozwala koordynować te dedykowane kroki i projektować przepływ pracy w formie maszyny stanów. Bezserwerowy charakter tej usługi i natywne możliwości funkcji Step Functions, takie jak integracja API usługi AWS, umożliwiają szybkie skonfigurowanie tego przepływu pracy. Wbudowane funkcje, takie jak ponowne próby lub rejestrowanie, są ważnymi punktami tworzenia niezawodnych orkiestracji. Aby uzyskać więcej informacji na temat samej definicji automatu stanów, zobacz Repozytorium GitHub lub sprawdź wykres maszyny stanu w konsoli Step Functions po wdrożeniu tego przykładu na swoim koncie.
Wdrażanie infrastruktury i integracja z CI/CD
Potok CI/CD służący do integracji i budowy wszystkich wymaganych komponentów infrastruktury przebiega według tego samego schematu, który przedstawiono w Część 1 tej serii. Używamy Zestaw programistyczny AWS Cloud (AWS CDK), z którego można wdrożyć wymagane potoki AWS Code Pipeline.
Nauka
Istnieje wiele sposobów budowania architektury zautomatyzowanego, niezawodnego i bezpiecznego systemu wdrażania modelu ML na krawędzi, które często są w dużym stopniu zależne od przypadku użycia i innych wymagań. Jednak oto kilka wniosków, którymi chcielibyśmy się z Tobą podzielić:
- Oceń z góry, jeśli jest to dodatkowe Wymagania dotyczące zasobów obliczeniowych AWS IoT Greengrass dopasuj się do swojej obudowy, szczególnie w przypadku urządzeń brzegowych o ograniczonych możliwościach.
- Ustanów mechanizm wdrażania, który integruje etap weryfikacji wdrożonych artefaktów przed uruchomieniem na urządzeniu brzegowym, aby upewnić się, że podczas transmisji nie doszło do żadnych manipulacji.
- Dobrą praktyką jest utrzymywanie komponentów wdrożeniowych w AWS IoT Greengrass jako możliwie modułowych i samodzielnych, aby móc je wdrażać niezależnie. Na przykład, jeśli masz stosunkowo mały moduł kodu wnioskowania, ale duży model ML pod względem rozmiaru, nie zawsze chcesz wdrażać oba, jeśli zmienił się tylko kod wnioskowania. Jest to szczególnie ważne w przypadku ograniczonej przepustowości lub kosztownej łączności z urządzeniami brzegowymi.
Wnioski
Na tym kończy się nasza trzyczęściowa seria poświęcona budowaniu kompleksowego potoku MLOps do wizualnej kontroli jakości na krawędzi. Przyjrzeliśmy się dodatkowym wyzwaniom związanym z wdrażaniem modelu uczenia maszynowego na brzegu sieci, takim jak pakowanie modeli lub złożona orkiestracja wdrażania. Wdrożyliśmy potok w sposób w pełni zautomatyzowany, dzięki czemu możemy wprowadzić nasze modele do produkcji w sposób solidny, bezpieczny, powtarzalny i identyfikowalny. Zachęcamy do wykorzystania architektury i implementacji opracowanych w tej serii jako punktu wyjścia do kolejnego projektu z obsługą uczenia maszynowego. Jeśli masz jakiekolwiek pytania, jak zaprojektować i zbudować taki system dla swojego środowiska, prosimy o kontakt osiągnąć. Aby zapoznać się z innymi tematami i przypadkami użycia, zapoznaj się z naszymi Nauczanie maszynowe i Internet przedmiotów blogi.
O autorach
Michael Roth jest starszym architektem rozwiązań w AWS i wspiera klientów produkcyjnych w Niemczech w rozwiązywaniu ich wyzwań biznesowych za pomocą technologii AWS. Oprócz pracy i rodziny interesuje się samochodami sportowymi i pije włoską kawę.
Jörga Wöhrle jest architektem rozwiązań w AWS i współpracuje z klientami produkcyjnymi w Niemczech. Z pasją do automatyzacji Joerg pracował jako programista, inżynier DevOps i inżynier ds. niezawodności witryny w swoim życiu przed AWS. Poza chmurą jest ambitnym biegaczem i lubi miło spędzać czas z rodziną. Jeśli więc masz wyzwanie DevOps lub chcesz pobiegać: daj mu znać.
Johannesa Langera jest starszym architektem rozwiązań w AWS i współpracuje z klientami korporacyjnymi w Niemczech. Johannes pasjonuje się wykorzystaniem uczenia maszynowego do rozwiązywania rzeczywistych problemów biznesowych. W życiu osobistym Johannes lubi pracować nad projektami remontowymi i spędzać czas na świeżym powietrzu z rodziną.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :ma
- :Jest
- :Gdzie
- $W GÓRĘ
- 150
- 7
- a
- Zdolny
- O nas
- Stosownie
- Konto
- precyzja
- rzeczywisty
- Dodaj
- dodatek
- Dodatkowy
- awansować
- Po
- przed
- Agent
- Wszystkie kategorie
- dopuszczać
- pozwala
- już
- również
- zawsze
- Amazonka
- Amazon EC2
- Amazon Web Services
- ambitny
- an
- i
- Inne
- każdy
- api
- Zastosowanie
- aplikacje
- Aplikuj
- Stosowanie
- architektura
- SĄ
- AS
- na bok
- At
- zautomatyzować
- zautomatyzowane
- automaty
- automatycznie
- Automatyzacja
- z dala
- AWS
- Zielona trawa AWS IoT
- z powrotem
- przepustowość
- BE
- bo
- stają się
- być
- zanim
- Początek
- oprócz
- pomiędzy
- Poza
- Duży
- blogi
- obie
- szerszy
- pośrednik
- budować
- Budowanie
- wybudowany
- wbudowany
- w zestawie
- biznes
- ale
- by
- Połączenia
- aparat fotograficzny
- CAN
- możliwości
- który
- samochody
- walizka
- Etui
- wyzwanie
- wyzwania
- zmieniony
- ZOBACZ
- kontrola
- klient
- Chmura
- kod
- Kawa
- jak
- wspólny
- komunikować
- Komunikacja
- w porównaniu
- kompleks
- składnik
- składniki
- obliczać
- pewność
- systemu
- Łączność
- kolejny
- Konsola
- Ograniczenia
- zawiera
- zawartość
- rdzeń
- podstawowe oprogramowanie
- Odpowiedni
- Koszty:
- Stwórz
- Tworzenie
- zwyczaj
- Klientów
- dane
- Przygotowywanie danych
- zdecydować
- dedykowane
- głębiej
- określić
- zdefiniowane
- Definiuje
- definicja
- dostarczanie
- dostawa
- zależny
- rozwijać
- wdrażane
- wdrażanie
- Wdrożenie
- wdrożenia
- Wnętrze
- detal
- detale
- wykryć
- wykryte
- rozwinięty
- Deweloper
- oprogramowania
- urządzenie
- urządzenia
- różne
- dyskutować
- omówione
- podzielony
- do
- nie
- na dół
- z powodu
- podczas
- każdy
- łatwiej
- z łatwością
- krawędź
- wydajny
- skutecznie
- wysiłek
- bądź
- osadzać
- szyfrowanie
- koniec końców
- silnik
- inżynier
- zapewnić
- Enterprise
- Cały
- Środowisko
- szczególnie
- oceniane
- Parzyste
- przykład
- członków Twojej rodziny
- daleko
- Moda
- wadliwy
- Korzyści
- czuć
- kilka
- filet
- dopasować
- Skupiać
- następujący
- następujący sposób
- W razie zamówieenia projektu
- Nasz formularz
- format
- Darmowy
- od
- w pełni
- Funkcje
- dalej
- Generować
- Niemcy
- Go
- dobry
- GPU
- wykres
- uchwyt
- się
- sprzęt komputerowy
- Have
- wysokość
- pomaga
- tutaj
- Wysoki
- na wysokim szczeblu
- go
- jego
- Strona główna
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- if
- obraz
- zdjęcia
- wdrożenia
- realizacja
- realizowane
- ważny
- poprawa
- in
- włączony
- obejmuje
- Włącznie z
- Przybywający
- Zwiększać
- niezależnie
- przemysłowy
- Infrastruktura
- wkład
- zainstalować
- Instalacja
- przykład
- integrować
- Integruje się
- integracja
- integracje
- interakcji
- zainteresowany
- Internet
- Internet przedmiotów
- najnowszych
- Internet przedmiotów
- Urządzenie IoT
- IT
- Włoski
- samo
- jpg
- json
- właśnie
- Trzymać
- Klawisz
- Wiedzieć
- etykietowanie
- firmy
- nauka
- niech
- życie
- lubić
- Ograniczony
- Linia
- relacja na żywo
- załadować
- załadunek
- miejscowy
- usytuowany
- zalogowaniu
- logika
- Popatrz
- wyglądał
- utraty
- Partia
- maszyna
- uczenie maszynowe
- robić
- Dokonywanie
- zarządzanie
- zarządzane
- i konserwacjami
- produkcja
- mechanizm
- Pamięć
- wiadomości
- metal
- Michał
- ML
- MLOps
- model
- modele
- Modułowa
- Moduł
- Moduły
- jeszcze
- większość
- wielokrotność
- rodzimy
- Natura
- Potrzebować
- wymagania
- Nowości
- Następny
- Nie
- przedmiot
- of
- Oferty
- często
- on
- open source
- zoptymalizowane
- or
- orkiestracja
- Inne
- ludzkiej,
- na zewnątrz
- na zewnątrz
- ogólny
- pakiet
- opakowania
- część
- strony
- pasja
- namiętny
- Wzór
- dla
- osobisty
- rurociąg
- Platforma
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- Proszę
- punkt
- zwrotnica
- ruchliwość
- możliwy
- Post
- mocny
- praktyka
- przepowiednia
- Przewidywania
- przygotowanie
- Przygotować
- przygotowany
- przygotowanie
- prywatny
- problemy
- wygląda tak
- przetwarzanie
- produkować
- Produkcja
- projekt
- projektowanie
- pod warunkiem,
- zapewnia
- publiczny
- cele
- położyć
- Python
- Q & A
- jakość
- pytania
- Szybki
- szybko
- Czytaj
- real
- podsumować
- polecić
- zmniejszyć
- zmniejsza
- odnosić się
- w sprawie
- zarejestrowany
- stosunkowo
- niezawodność
- rzetelny
- usunąć
- usuwanie
- powtarzalne
- otrzymuje
- wymagać
- wymagany
- wymagania
- Zasób
- dalsze
- Efekt
- krzepki
- run
- biegacz
- bieganie
- działa
- sagemaker
- taki sam
- skalowalny
- zadraśnięcie
- działy
- bezpieczne
- bezpiecznie
- widzieć
- widziany
- wysyłanie
- senior
- Serie
- serwer
- Bezserwerowe
- usługa
- Usługi
- zestaw
- ustawienie
- ustawienie
- Share
- powinien
- pokazać
- pokazał
- Targi
- witryna internetowa
- Rozmiar
- mały
- So
- Tworzenie
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- kilka
- specyficzny
- prędkość
- Spędzanie
- SPORTOWE
- Startowy
- rozpocznie
- Stan
- Ewolucja krok po kroku
- Cel
- bezpośredni
- strumień
- kolejny
- taki
- Wspierający
- system
- sprzęt
- trwa
- biorąc
- cel
- zadania
- Techniki
- Technologia
- REGULAMIN
- test
- że
- Połączenia
- Państwo
- ich
- Im
- następnie
- Te
- rzeczy
- to
- tych
- trzy
- trzystopniowy
- Przez
- czas
- do
- razem
- aktualny
- tematy
- identyfikowalny
- przeszkolony
- Trening
- przenieść
- drugiej
- zazwyczaj
- wyjątkowy
- Uploading
- us
- posługiwać się
- przypadek użycia
- używany
- za pomocą
- UPRAWOMOCNIĆ
- wartość
- Weryfikacja
- początku.
- przez
- chcieć
- Droga..
- sposoby
- we
- sieć
- usługi internetowe
- DOBRZE
- jeśli chodzi o komunikację i motywację
- który
- cały
- szerokość
- w
- w ciągu
- bez
- Praca
- pracował
- workflow
- pracujący
- by
- X
- jeszcze
- You
- Twój
- zefirnet