W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jak Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki NVIDIA Triton na AWS

Wizją Amazon Search jest umożliwienie klientom wyszukiwania bez wysiłku. Nasza korekta pisowni pomoże Ci znaleźć to, czego szukasz, nawet jeśli nie znasz dokładnej pisowni zamierzonych słów. W przeszłości używaliśmy klasycznych algorytmów uczenia maszynowego (ML) z ręczną inżynierią funkcji do poprawiania pisowni. Aby dokonać kolejnego skoku pokoleniowego w wydajności poprawiania pisowni, stosujemy szereg podejść do głębokiego uczenia się, w tym modele sekwencja-do-sekwencji. Modele głębokiego uczenia (DL) wymagają intensywnych obliczeń zarówno pod względem uczenia, jak i wnioskowania, a koszty te historycznie powodowały, że modele DL były niepraktyczne w środowisku produkcyjnym na skalę firmy Amazon. W tym poście przedstawiamy wyniki eksperymentu optymalizacji wnioskowania, w którym pokonaliśmy te przeszkody i uzyskaliśmy 534% przyspieszenie wnioskowania dla popularnego transformatora Hugging Face T5.

Opis projektu

Transformator transferu tekstu na tekst (T5, Odkrywanie ograniczeń transferu uczenia się za pomocą ujednoliconego transformatora tekstu na tekst, Reffel i in.) to najnowocześniejsza architektura modelu przetwarzania języka naturalnego (NLP). T5 to obiecująca architektura do poprawiania pisowni, która sprawdziła się w naszych eksperymentach. Modele T5 można łatwo badać, rozwijać i szkolić dzięki otwartym strukturom głębokiego uczenia się oraz ciągłym badaniom akademickim i korporacyjnym.

Jednak trudno jest uzyskać wnioskowanie o niskim poziomie opóźnień na poziomie produkcyjnym z T5. Na przykład pojedyncze wnioskowanie za pomocą PyTorch T5 zajmuje 45 milisekund na jednym z czterech procesorów graficznych NVIDIA V100 Tensor Core wyposażonych w instancję Amazon Elastic Compute Cloud (EC2) p3.8xlarge. (Wszystkie zgłoszone liczby wnioskowania dotyczą wejścia 9 tokenów i wyjścia 11 tokenów. Opóźnienie architektur T5 jest wrażliwe zarówno na długość wejścia, jak i wyjścia).

Niskie opóźnienia, opłacalne wnioskowanie T5 na dużą skalę to znana trudność, którą zgłosiło kilku klientów AWS poza wyszukiwarką Amazon, co zwiększa naszą motywację do napisania tego posta. Aby przejść od osiągnięcia naukowego offline do usługi produkcyjnej skierowanej do klienta, Amazon Search musi stawić czoła następującym wyzwaniom:

  • Utajenie – Jak zrealizować wnioskowanie T5 w czasie opóźnienia P50 poniżej 99 milisekund
  • Wydajność – Jak obsłużyć współbieżne żądania wnioskowania na dużą skalę
  • Efektywność kosztowa – Jak utrzymać koszty pod kontrolą

W dalszej części tego postu wyjaśnimy, w jaki sposób stos optymalizacji wnioskowania firmy NVIDIA — mianowicie NVIDIA TensorRT kompilator i open source Serwer wnioskowania NVIDIA Triton—rozwiązuje te wyzwania. Czytać Komunikat prasowy firmy NVIDIA aby dowiedzieć się o aktualizacjach.

NVIDIA TensorRT: redukcja kosztów i opóźnień dzięki optymalizacji wnioskowania

Struktury uczenia głębokiego są wygodne do szybkiej iteracji w nauce i są wyposażone w liczne funkcje do modelowania naukowego, ładowania danych i optymalizacji treningu. Jednak większość z tych narzędzi jest nieoptymalna do wnioskowania, co wymaga jedynie minimalnego zestawu operatorów dla funkcji mnożenia macierzy i aktywacji. W związku z tym można uzyskać znaczne korzyści, korzystając ze specjalistycznej aplikacji służącej tylko do przewidywania zamiast uruchamiania wnioskowania w ramach programowania głębokiego uczenia się.

NVIDIA TensorRT to pakiet SDK do wnioskowania o wysokiej wydajności uczenia głębokiego. TensorRT zapewnia zarówno zoptymalizowane środowisko wykonawcze, korzystając z niskopoziomowych zoptymalizowanych jąder dostępnych na procesorach graficznych NVIDIA, jak i wykres modelu tylko wnioskowania, który zmienia kolejność obliczeń wnioskowania w zoptymalizowanej kolejności.

W następnej sekcji omówimy szczegóły związane z TensorRT i jak przyspiesza on wydajność.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

  1. Zmniejszona precyzja maksymalizuje przepustowość z FP16 lub INT8 poprzez kwantyzację modeli przy zachowaniu poprawności.
  2. Fuzja warstw i tensorów optymalizuje wykorzystanie pamięci GPU i przepustowości, łącząc węzły w jądrze, aby uniknąć opóźnień podczas uruchamiania jądra.
  3. Automatyczne dostrajanie jądra wybiera najlepsze warstwy danych i algorytmy w oparciu o docelową platformę GPU i kształty jądra danych.
  4. Dynamiczna pamięć tensora minimalizuje zużycie pamięci, uwalniając niepotrzebne zużycie pamięci przez wyniki pośrednie i efektywnie ponownie wykorzystuje pamięć dla tensorów.
  5. Wykonywanie wielostrumieniowe wykorzystuje skalowalną konstrukcję do przetwarzania wielu strumieni wejściowych równolegle z dedykowanymi strumieniami CUDA.
  6. Fuzja czasu optymalizuje powtarzające się sieci neuronowe w krokach czasowych z dynamicznie generowanymi jądrami.

T5 wykorzystuje warstwy transformatorów jako elementy konstrukcyjne swoich architektur. Najnowsza wersja NVIDIA TensorRT 8.2 wprowadza nowe optymalizacje dla modeli T5 i GPT-2 pod kątem wnioskowania w czasie rzeczywistym. W poniższej tabeli możemy zobaczyć przyspieszenie dzięki TensorRT w niektórych publicznych modelach T5 działających na instancjach Amazon EC2G4dn, zasilanych przez procesory graficzne NVIDIA T4 i instancje EC2 G5, zasilanych przez procesory graficzne NVIDIA A10G.

 

Model Instancja Bazowe opóźnienie Pytorcha (ms) TensorRT 8.2 Opóźnienie (ms) Przyspieszenie w porównaniu do linii bazowej HF
FP32 FP32 FP16 FP32 FP16
koder dekoder Koniec końców koder dekoder Koniec końców koder dekoder Koniec końców Koniec końców Koniec końców
t5-mały g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xduży 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
t5-podstawa g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xduży 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Aby uzyskać więcej informacji na temat optymalizacji i replikacji dołączonej wydajności, zobacz Optymalizacja T5 i GPT-2 pod kątem wnioskowania w czasie rzeczywistym za pomocą NVIDIA TensorRT.

Należy zauważyć, że kompilacja zachowuje dokładność modelu, ponieważ działa na środowisku wnioskowania i harmonogramowaniu obliczeń, pozostawiając naukę o modelach niezmienioną – w przeciwieństwie do kompresji z usuwaniem masy, takiej jak destylacja lub przycinanie. NVIDIA TensorRT pozwala połączyć kompilację z kwantyzacją dla dalszych korzyści. Kwantyzacja ma podwójne zalety na najnowszym sprzęcie NVIDIA: zmniejsza zużycie pamięci i umożliwia korzystanie z rdzeni NVIDIA Tensor, komórek specyficznych dla DL, które uruchamiają fuzję macierzy-pomnóż-dodaj z mieszaną precyzją.

W przypadku eksperymentu Amazon Search z modelem Hugging Face T5, zastąpienie PyTorch przez TensorRT dla wnioskowania modelu zwiększa prędkość o 534%.

NVIDIA Triton: obsługa wnioskowania o niskim opóźnieniu i wysokiej przepustowości

Nowoczesne rozwiązania do obsługi modeli mogą przekształcić modele trenowane w trybie offline w produkty skierowane do klientów oparte na ML. Aby utrzymać rozsądne koszty na taką skalę, ważne jest, aby utrzymać niskie koszty obsługi (obsługa HTTP, przetwarzanie wstępne i postprocessing, komunikacja CPU-GPU) i w pełni wykorzystać możliwości przetwarzania równoległego procesorów graficznych.

NVIDIA Triton to wnioskowanie obsługujące oprogramowanie proponujące szeroką obsługę modelowych środowisk wykonawczych (m.in. NVIDIA TensorRT, ONNX, PyTorch, XGBoost) oraz zaplecza infrastruktury, w tym procesorów graficznych, procesorów i Inferencja AWS.

Praktycy ML kochają Tritona z wielu powodów. Jego dynamiczna zdolność do grupowania umożliwia gromadzenie żądań wnioskowania podczas zdefiniowanego przez użytkownika opóźnienia i w ramach maksymalnego zdefiniowanego przez użytkownika rozmiaru wsadu, dzięki czemu wnioskowanie GPU jest grupowane, amortyzując obciążenie komunikacyjne między procesorem a procesorem. Należy zauważyć, że dynamiczne przetwarzanie wsadowe odbywa się po stronie serwera iw bardzo krótkich ramach czasowych, dzięki czemu klient żądający nadal ma możliwość wywoływania synchronicznego, niemal w czasie rzeczywistym. Użytkownicy Tritona również cieszą się z możliwości jednoczesnego wykonywania modeli. Procesory GPU to wydajne urządzenia wielozadaniowe, które doskonale sprawdzają się w równoległym wykonywaniu intensywnych obliczeń. Triton maksymalizuje wykorzystanie i przepustowość GPU, używając strumieni CUDA do jednoczesnego uruchamiania wielu instancji modelu. Te wystąpienia modelu mogą być różnymi modelami z różnych platform dla różnych przypadków użycia lub bezpośrednią kopią tego samego modelu. Przekłada się to na bezpośrednią poprawę przepustowości, gdy masz wystarczającą ilość bezczynnej pamięci GPU. Ponadto, ponieważ Triton nie jest powiązany z konkretnym frameworkiem do tworzenia DL, pozwala naukowcom w pełni wyrazić siebie w wybranym przez siebie narzędziu.

Dzięki Tritonowi na AWS, Amazon Search oczekuje lepszej obsługi Amazon.com klientów i spełniaj wymagania dotyczące opóźnień przy niskich kosztach. Ścisła integracja między środowiskiem wykonawczym TensorRT a serwerem Triton ułatwia rozwój. Korzystanie z infrastruktury chmurowej AWS pozwala na skalowanie w górę lub w dół w ciągu kilku minut w oparciu o wymagania dotyczące przepustowości, przy jednoczesnym utrzymaniu poprzeczki na wysokim poziomie niezawodności i bezpieczeństwa.

Jak AWS obniża barierę wejścia?

Podczas gdy Amazon Search przeprowadził ten eksperyment na infrastrukturze Amazon EC2, istnieją inne usługi AWS, które ułatwiają opracowywanie, szkolenie i hosting najnowocześniejszych rozwiązań do głębokiego uczenia się.

Na przykład AWS i NVIDIA współpracowały, aby wydać zarządzaną implementację Triton Inference Server w: Amazon Sage Maker ; aby uzyskać więcej informacji, zobacz Wdrażaj szybką i skalowalną sztuczną inteligencję z NVIDIA Triton Inference Server w Amazon SageMaker. AWS współpracował również z Hugging Face, aby opracować zarządzaną, zoptymalizowaną integrację między Amazon SageMaker i Hugging Face Transformers, platformą open source, z której wywodzi się model Amazon Search T5; Przeczytaj więcej na https://aws.amazon.com/machine-learning/hugging-face/.

Zachęcamy klientów korzystających z aplikacji obsługujących głębokie uczenie procesorów i procesorów graficznych wrażliwych na opóźnienia do rozważenia rozwiązań NVIDIA TensorRT i Triton w AWS. Daj nam znać, co budujesz!

Pasjonujesz się głębokim uczeniem i tworzeniem rozwiązań opartych na głębokim uczeniu dla Amazon Search? Sprawdź nasze kariera.


O autorach

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.RJ jest inżynierem w zespole Search M5 prowadzącym prace nad budowaniem systemów głębokiego uczenia na dużą skalę do szkolenia i wnioskowania. Poza pracą poznaje różne kuchnie i uprawia sporty rakietowe.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Hemant Pugaliya jest naukowcem w Search M5. Pracuje nad zastosowaniem najnowszych badań w zakresie przetwarzania języka naturalnego i głębokiego uczenia się, aby poprawić wrażenia klientów podczas zakupów w Amazon na całym świecie. Jego zainteresowania badawcze obejmują przetwarzanie języka naturalnego oraz wielkoskalowe systemy uczenia maszynowego. Poza pracą lubi wędrować, gotować i czytać.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Andy Słońce jest inżynierem oprogramowania i kierownikiem technicznym ds. poprawiania pisowni w wyszukiwarkach. Jego zainteresowania badawcze obejmują optymalizację opóźnień wnioskowania głębokiego uczenia się oraz budowanie platform do szybkiego eksperymentowania. Poza pracą lubi kręcić filmy i akrobatykę.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Le Cai jest inżynierem oprogramowania w Amazon Search. Pracuje nad poprawą skuteczności korekty pisowni w wyszukiwarce, aby pomóc klientom w ich wrażeniach z zakupów. Koncentruje się na wysokowydajnym wnioskowaniu online i optymalizacji szkolenia rozproszonego dla modelu głębokiego uczenia się. Poza pracą lubi jeździć na nartach, wędrować i jeździć na rowerze.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Antoni Ko obecnie pracuje jako inżynier oprogramowania w Search M5 Palo Alto w Kalifornii. Zajmuje się budowaniem narzędzi i produktów do wdrażania modeli i optymalizacji wnioskowania. Poza pracą lubi gotować i uprawiać sporty rakietowe.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Oliviera Cruchanta jest specjalistą ds. rozwiązań w zakresie uczenia maszynowego w AWS z siedzibą we Francji. Olivier pomaga klientom AWS — od małych start-upów po duże przedsiębiorstwa — opracowywać i wdrażać aplikacje do uczenia maszynowego klasy produkcyjnej. W wolnym czasie lubi czytać artykuły naukowe i odkrywać dziką przyrodę z przyjaciółmi i rodziną.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Anisha Mohana jest architektem uczenia maszynowego w firmie NVIDIA i kierownikiem technicznym ds. współpracy ML i DL ze swoimi klientami w aglomeracji Seattle.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jiahong Liu jest architektem rozwiązań w zespole Cloud Service Provider firmy NVIDIA. Pomaga klientom we wdrażaniu rozwiązań uczenia maszynowego i sztucznej inteligencji, które wykorzystują akcelerowane obliczenia NVIDIA, aby sprostać wyzwaniom związanym ze szkoleniem i wnioskowaniem. W wolnym czasie lubi origami, projekty DIY i grę w koszykówkę.

W jaki sposób usługa Amazon Search osiąga niskie opóźnienia i wysoką przepustowość wnioskowania T5 dzięki rozwiązaniu NVIDIA Triton na platformie AWS PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Eliut Triana jest kierownikiem ds. relacji z programistami w firmie NVIDIA. Łączy liderów produktów Amazon i AWS, programistów i naukowców z technologami i liderami produktów firmy NVIDIA w celu przyspieszenia obciążeń Amazon ML/DL, produktów EC2 i usług AWS AI. Ponadto Eliuth jest zapalonym kolarzem górskim, narciarzem i pokerzystą.

Znak czasu:

Więcej z Uczenie maszynowe AWS