We wszystkich branżach modele uczenia maszynowego (ML) stają się coraz głębsze, przepływy pracy stają się coraz bardziej złożone, a obciążenia działają na większą skalę. Znaczne wysiłki i zasoby są wkładane w udoskonalanie tych modeli, ponieważ ta inwestycja bezpośrednio skutkuje lepszymi produktami i doświadczeniami. Z drugiej strony sprawienie, by te modele działały wydajnie w środowisku produkcyjnym, to nietrywialne przedsięwzięcie, które często jest pomijane, mimo że jest kluczem do osiągnięcia celów wydajnościowych i budżetowych. W tym poście omawiamy, w jaki sposób Exafunction i Inferencja AWS współpracuj, aby odblokować łatwe i ekonomiczne wdrażanie modeli ML w środowisku produkcyjnym.
Exafunkcja to start-up skoncentrowany na umożliwieniu firmom przeprowadzania ML na dużą skalę tak wydajnie, jak to możliwe. Jednym z ich produktów jest ExaDeploy, łatwe w użyciu rozwiązanie SaaS do obsługi obciążeń uczenia maszynowego na dużą skalę. ExaDeploy skutecznie koordynuje obciążenia ML w ramach mieszanych zasobów (akceleratory procesora i sprzętu), aby zmaksymalizować wykorzystanie zasobów. Zajmuje się również automatycznym skalowaniem, kolokacją obliczeniową, problemami z siecią, odpornością na awarie i nie tylko, aby zapewnić wydajne i niezawodne wdrożenie. Oparte na AWS Inferentia Instancje Amazon EC2 Inf1 zostały stworzone z myślą o zapewnieniu najniższego kosztu wnioskowania w chmurze. ExaDeploy obsługuje teraz instancje Inf1, co pozwala użytkownikom uzyskać zarówno sprzętowe oszczędności akceleratorów, jak i oszczędności programowe zoptymalizowanej wirtualizacji zasobów i orkiestracji na dużą skalę.
Omówienie rozwiązania
Jak ExaDeploy rozwiązuje problemy związane z wydajnością wdrażania
Aby zapewnić efektywne wykorzystanie zasobów obliczeniowych, należy wziąć pod uwagę odpowiednią alokację zasobów, automatyczne skalowanie, kolokację obliczeniową, zarządzanie kosztami sieci i opóźnieniami, odporność na błędy, przechowywanie wersji i odtwarzalność oraz wiele innych. Na dużą skalę wszelkie nieefektywności mają istotny wpływ na koszty i opóźnienia, a wiele dużych firm rozwiązało te nieefektywności, budując wewnętrzne zespoły i dysponując specjalistyczną wiedzą. Jednak dla większości firm niepraktyczne jest przyjmowanie narzutów finansowych i organizacyjnych związanych z tworzeniem uniwersalnego oprogramowania, które nie jest pożądaną podstawową kompetencją firmy.
ExaDeploy został zaprojektowany, aby rozwiązać te problemy związane z wydajnością wdrażania, w tym te, które występują w najbardziej złożonych obciążeniach, takich jak pojazdy autonomiczne i aplikacje do przetwarzania języka naturalnego (NLP). W przypadku niektórych dużych wsadowych obciążeń ML ExaDeploy obniżył koszty o ponad 85% bez poświęcania opóźnień lub dokładności, a czas integracji wynosił zaledwie jeden dzień pracy inżyniera. Udowodniono, że ExaDeploy automatycznie skaluje i zarządza tysiącami jednoczesnych instancji zasobów akceleratora sprzętowego bez degradacji systemu.
Kluczowe cechy ExaDeploy obejmują:
- Działa w Twojej chmurze: Żaden z twoich modeli, wejść ani wyjść nigdy nie opuszcza twojej sieci prywatnej. Nadal korzystaj ze zniżek dostawcy usług w chmurze.
- Udostępnione zasoby akceleratora: ExaDeploy optymalizuje używane akceleratory, umożliwiając wielu modelom lub obciążeniom współdzielenie zasobów akceleratorów. Może również zidentyfikować, czy wiele obciążeń wdraża ten sam model, a następnie udostępnić model między tymi obciążeniami, optymalizując w ten sposób używany akcelerator. Jego automatyczne przywracanie równowagi i możliwości opróżniania węzłów maksymalizują wykorzystanie i minimalizują koszty.
- Skalowalny model wdrażania bezserwerowego: Automatyczne skalowanie ExaDeploy na podstawie nasycenia zasobów akceleratora. Dynamicznie skaluj w dół do 0 lub w górę do tysięcy zasobów.
- Obsługa różnych typów obliczeń: Możesz odciążyć modele głębokiego uczenia się ze wszystkich głównych platform ML, a także z dowolnego kodu C++, jąder CUDA, niestandardowych operacji i funkcji Pythona.
- Dynamiczna rejestracja i wersjonowanie modeli: Nowe modele lub wersje modeli można rejestrować i uruchamiać bez konieczności przebudowywania lub ponownego wdrażania systemu.
- Realizacja punktowa: Klienci łączą się bezpośrednio ze zdalnymi zasobami akceleratora, co zapewnia niskie opóźnienia i wysoką przepustowość. Mogą nawet przechowywać stan zdalnie.
- Wykonanie asynchroniczne: ExaDeploy obsługuje asynchroniczne wykonywanie modeli, co pozwala klientom na zrównoleglanie lokalnych obliczeń ze zdalną pracą zasobów akceleratora.
- Odporne na uszkodzenia zdalne potoki: ExaDeploy umożliwia klientom dynamiczne komponowanie zdalnych obliczeń (modeli, wstępnego przetwarzania itp.) w potoki z gwarancją odporności na błędy. System ExaDeploy obsługuje awarie pod lub węzłów z automatycznym odtwarzaniem i odtwarzaniem, dzięki czemu programiści nigdy nie muszą myśleć o zapewnieniu odporności na awarie.
- Nieszablonowe monitorowanie: ExaDeploy udostępnia metryki Prometheus i pulpity nawigacyjne Grafana do wizualizacji wykorzystania zasobów akceleratora i innych metryk systemowych.
ExaDeploy obsługuje AWS Inferentia
Oparte na AWS Inferentia instancje Amazon EC2 Inf1 zostały zaprojektowane z myślą o specyficznych obciążeniach związanych z głębokim uczeniem się. Te instancje zapewniają nawet 2.3-krotną przepustowość i do 70% oszczędności kosztów w porównaniu z instancjami wnioskowania GPU obecnej generacji.
ExaDeploy obsługuje teraz AWS Inferentia i razem odblokowują zwiększoną wydajność i oszczędności kosztów osiągnięte dzięki specjalnie zaprojektowanej akceleracji sprzętowej i zoptymalizowanej orkiestracji zasobów na dużą skalę. Przyjrzyjmy się połączonym zaletom ExaDeploy i AWS Inferentia, biorąc pod uwagę bardzo powszechne nowoczesne obciążenie ML: wsadowe, mieszane obciążenia obliczeniowe.
Hipotetyczna charakterystyka obciążenia pracą:
- 15 ms przetwarzania wstępnego/końcowego tylko dla procesora
- Wnioskowanie modelu (15 ms na GPU, 5 ms na AWS Inferentia)
- 10 klientów, każdy wysyła żądanie co 20 ms
- Przybliżony względny koszt CPU:Inferentia:GPU wynosi 1:2:4 (na podstawie cen Amazon EC2 On-Demand dla c5.xlarge, inf1.xlarge i g4dn.xlarge)
Poniższa tabela pokazuje, jak kształtuje się każda z opcji:
ustawienie | Potrzebne zasoby | Koszty: | Utajenie |
GPU bez ExaDeploy | 2 CPU, 2 GPU na klienta (łącznie 20 CPU, 20 GPU) | 100 | 30 ms |
GPU z ExaDeploy | 8 procesorów graficznych współdzielonych przez 10 klientów, 1 procesor na klienta | 42 | 30 ms |
AWS Inferentia bez ExaDeploy | 1 CPU, 1 AWS Inferentia na klienta (łącznie 10 CPU, 10 Inferentia) | 30 | 20 ms |
AWS Inferentia z ExaDeploy | 3 AWS Inferentia współdzielone przez 10 klientów, 1 procesor na klienta | 16 | 20 ms |
ExaDeploy na przykładzie AWS Inferentia
W tej sekcji omówimy kroki konfiguracji ExaDeploy na przykładzie z węzłami inf1 w modelu BERT PyTorch. Zaobserwowaliśmy średnią przepustowość 1140 próbek/s dla modelu bert-base, co pokazuje, że ExaDeploy wprowadził niewielki lub żaden narzut dla tego pojedynczego modelu i scenariusza pojedynczego obciążenia.
Krok 1: Skonfiguruj Elastyczna usługa Amazon Kubernetes (Amazon EKS).
Klaster Amazon EKS można utworzyć za pomocą naszego Moduł Terraform AWS. W naszym przykładzie użyliśmy an inf1.xlarge
dla AWS Inferentia.
Krok 2: Skonfiguruj ExaDepoy
Drugim krokiem jest skonfigurowanie ExaDeploy. Ogólnie rzecz biorąc, wdrożenie ExaDeploy w instancjach inf1 jest proste. Konfiguracja przebiega w większości zgodnie z tą samą procedurą, co w przypadku instancji procesora graficznego (GPU). Podstawowa różnica polega na zmianie znacznika modelu z GPU na AWS Inferentia i ponownej kompilacji modelu. Na przykład przejście z instancji g4dn do inf1 przy użyciu interfejsów programowania aplikacji (API) ExaDeploy wymagało zmiany tylko około 10 linii kodu.
- Jedną z prostych metod jest użycie Exafunction Moduł Terraform AWS Kubernetes or Wykres steru. Wdrażają one podstawowe komponenty ExaDeploy do działania w klastrze Amazon EKS.
- Skompiluj model do formatu serializowanego (np. TorchScript, zapisane modele TF, ONNX itp.). W przypadku AWS Inferentia postępowaliśmy zgodnie z ten poradnik.
- Zarejestruj skompilowany model w repozytorium modułów ExaDeploy.
- Przygotuj dane do modelu (tzn. nie
ExaDeploy-specific
).
- Uruchom model zdalnie z poziomu klienta.
ExaDeploy i AWS Inferentia: razem lepiej
AWS Inferentia przesuwa granice przepustowości dla wnioskowania modelu i zapewnia najniższy koszt wnioskowania w chmurze. To powiedziawszy, firmy potrzebują odpowiedniej orkiestracji, aby cieszyć się korzyściami cenowo-wydajnymi Inf1 na dużą skalę. Obsługa systemów uczących się to złożony problem, który, jeśli zostanie rozwiązany wewnętrznie, wymaga specjalistycznej wiedzy, która jest oderwana od celów firmy i często opóźnia harmonogramy produktów. ExaDeploy, oprogramowanie do wdrażania ML firmy Exafunction, stało się liderem w branży. Obsługuje nawet najbardziej złożone obciążenia ML, zapewniając jednocześnie płynną integrację i wsparcie światowej klasy zespołu. Razem ExaDeploy i AWS Inferentia odblokowują zwiększoną wydajność i oszczędności kosztów dla obciążeń wnioskowania na dużą skalę.
Wnioski
W tym poście pokazaliśmy, jak Exafunction wspiera AWS Inferentia dla wydajności ML. Aby uzyskać więcej informacji na temat tworzenia aplikacji za pomocą Exafunction, odwiedź stronę Exafunkcja. Aby zapoznać się z najlepszymi praktykami dotyczącymi tworzenia obciążeń związanych z uczeniem głębokim w Inf1, odwiedź stronę Instancje Amazon EC2 Inf1.
O autorach
Nicholas Jiang, inżynier oprogramowania, Exafunction
Jonathan Ma, inżynier oprogramowania, Exafunction
Prem Nair, inżynier oprogramowania, Exafunction
Anshul Ramachandran, inżynier oprogramowania, Exafunction
Shruti Koparkar, starszy kierownik ds. marketingu produktów, AWS
- AI
- ai sztuka
- generator sztuki ai
- masz robota
- sztuczna inteligencja
- certyfikacja sztucznej inteligencji
- sztuczna inteligencja w bankowości
- robot sztucznej inteligencji
- roboty sztucznej inteligencji
- oprogramowanie sztucznej inteligencji
- Inferencja AWS
- Uczenie maszynowe AWS
- blockchain
- konferencja blockchain ai
- pomysłowość
- sztuczna inteligencja konwersacyjna
- konferencja kryptograficzna
- Rozwiązania dla klientów
- Dall's
- głęboka nauka
- google to
- uczenie maszynowe
- plato
- Platon Ai
- Analiza danych Platona
- Gra Platona
- PlatoDane
- platogaming
- skala ai
- składnia
- zefirnet