Amazon Web Services zbudowało układy AWS Inferentia od podstaw, aby obniżyć do minimum koszty uzytkowania algorytmow uczenia maszynowego w chmurze. Na ich bazie funkcjonują instancje Inf1, które zostały wprowadzone podczas wydarzenia AWS re:Invent 2019. Instancje Inf1 zapewniają do 30% wyższą przepustowość i do 45% niższy koszt jednostkowy w porównaniu z opartymi na procesorach graficznych instancjami G4. Do czasu wprowadzenia Inf1 zapewniały najniższy koszt inferencji przy wykorzystaniu uczenia maszynowego spośród rozwiązań opartych na chmurze.

Alexa to oparta na chmurze usługa głosowa Amazon, która działa na urządzeniach Amazon Echo oraz ponad 140 tys. modeli inteligentnych głośników, lamp, wtyczek, telewizorów Smart TV i aparatów. Obecnie ponad 100 milionów urządzeń dostępnych na rynku jest podłączonych do Alexy. Każdego miesiąca dziesiątki milionów klientów wchodzi w interakcję z Alexą. Sterują urządzeniami domowymi („Alexa, zwiększ temperaturę w salonie”, „Alexa, wyłącz światło w sypialni”), słuchają radia i muzyki („Alexa, włącz Maxi 80 w łazience”, „Alexa, włącz Van Halen w Spotify”), szukają informacji („Alexa, co się dziś wydarzyło?”, „Alexa, czy będzie dzisiaj padać?”), uczą się lub po prostu szukają rozrywki, dzięki ponad 100 tys. umiejętności Alexa.

Alexę zapytana o to, gdzie mieszka, odpowie, że „tutaj”, ale zaznaczy, że głowę ma w chmurze. Faktycznie, jej mózg znajduje się w AWS, a Alexa korzysta ze zbudowanej dla klientów Amazon potężnej infrastruktury i globalnej sieci.

Jak działa Alexa?

Gdy siedząc na kanapie w salonie, spytasz Alexę o pogodę, wprawiasz w ruch złożony system. Najpierw układ urządzenia wychwytuje słowo wybudzające (czyli „Alexa”). Następnie mikrofony rejestrują to, co mówisz i przesyłają dźwięk do analizy w chmurze. Na wysokim poziomie występują dwa etapy analizy dźwięku. Najpierw Alexa konwertuje go na tekst. Określa się to terminem automatycznego rozpoznawania mowy (Automatic Speech Recognition, ASR). Po przygotowaniu tekstu nadchodzi kolej na zrozumienie, o co chodzi w przekazie. To rozumienie języka naturalnego (Natural Language Understanding, NLU). Wynikami przeprowadzenia NLU jest intencja (to, czego chce użytkownik) oraz związane z nią parametry. W naszym przykładzie („Alexa, jaka będzie dzisiaj pogoda?”) intencją może być „GetWeatherForecast”, a parametrem – kod pocztowy ustalony na podstawie profilu użytkownika.

Cały proces opiera się mocno na sztucznej inteligencji, przekształcając głos w fonemy, fonemy w słowa, słowa we frazy, a frazy w intencje. W oparciu o dane wyjściowe z NLU Alexa kieruje ustaloną intencję do usługi, aby wykonać polecenie. Usługa może być wewnętrzną usługą Alexy lub zewnętrzna, np. jedną z umiejętności aktywowanych na koncie Alexa. Usługa realizacji przetwarza intencję i zwraca odpowiedź w postaci dokumentu JSON. Dokument zawiera tekst odpowiedzi, której udzieli Alexa.

Ostatnim krokiem procesu jest wygenerowanie głosu Alexy na podstawie tekstu. Ten proces znany jest jako „zamiana tekstu na mowę” (Text-To-Speech, TTS). Gdy tylko syntezator TTS zacznie generować dane dźwiękowe, przesyłane są z powrotem do urządzenia Amazon Echo: „Dziś będzie częściowe zachmurzenie. Najwyższa temperatura to 16 stopni, a najniższa 8 stopni”. Proces zamiany tekstu na mowę również w dużym stopniu wykorzystuje modele uczenia maszynowego, aby tworzone frazy brzmiały naturalnie pod względem wymowy, rytmu wypowiedzi, połączeń między słowami, intonacji, itd.

Alexa to jedna z najpopularniejszych na świecie usług, wykorzystująca uczenie maszynowe. Co tydzień przetwarza miliardy poleceń użytkowników. Z trzech głównych zadań Alexy (czyli ASR, NLU i TTS), procesy TTS początkowo były przetwarzane przez instancje oparte na GPU. Zespół Alexa zdecydował jednak o jak najszybszym przejściu na instancje Inf1, aby podnieść jakość usługi i zmniejszyć koszty obliczeniowe.

Co to jest AWS Inferentia?

AWS Inferentia to specjalnie zaprojektowany układ, opracowany przez AWS, który przyspiesza procesy dotyczące uczenia maszynowego i optymalizuje ich koszt. Każdy układ AWS Inferentia zawiera cztery rdzenie NeuronCore. W każdym rdzeniu NeuronCore zaimplementowano układy obliczeniowe o wysokiej wydajności, tzw. tablice systoliczne, które znacznie przyspieszają operacje typowe dla głębokiego uczenia, takie jak konwolucja czy transformacja. Rdzenie NeuronCore wyposażono także w dużą, wbudowaną pamięć podręczną, która ogranicza konieczność korzystania z pamięci zewnętrznej, znacznie zmniejszając opóźnienie i zwiększając przepustowość.

AWS Inferentia można używać natywnie w popularnych platformach uczenia maszynowego, takich jak TensorFlow, PyTorch i MXNet z AWS Neuron. AWS Neuron to zestaw narzędzi do tworzenia oprogramowania (SDK), służącego do wnioskowania przy wykorzystaniu uczenia maszynowego na bazie układów AWS Inferentia. Składa się z narzędzi do kompilacji, wykonywania i profilowania, które umożliwiają wnioskowanie o wysokiej wydajności i małych opóźnieniach.

Kto jeszcze korzysta z Amazon EC2 Inf1?

Poza Alexą, AWS Inferentia wdrożono również w Amazon Rekognition. Uruchamiane w instancjach Inf1 modele klasyfikacji obiektów odnotowywały ośmiokrotnie mniejsze opóźnienie i dwukrotnie większą przepustowość w porównaniu z instancjami opartymi na GPU.

Różni klienci, od firm z listy Fortune 500 po start-upy, używają instancji Inf1 do wnioskowania opartego na uczeniu maszynowym. Na przykład Snap Inc.​ wykorzystuje uczenie maszynowe w wielu obszarach Snapchata, a innowacje w tej dziedzinie są dla nich priorytetem. Gdy dowiedzieli się o AWS Inferentia, podjęli współpracę z AWS w celu wdrożenia instancji Inf1 z myślą o uczeniu maszynowym, ze względu na wysoką wydajność i niski koszt tego rozwiązania. Zaczęli od analiz na potrzeby modeli rekomendacji, a obecnie planują w przyszłości wdrożyć więcej modeli opartych na instancjach Inf1.

Conde Nast, jedna z najbardziej znanych spółek medialnych, ograniczyła koszty wnioskowania na potrzeby swojej usługi rekomendacji o 72% w porównaniu z instancjami opartymi na GPU. Anthem, jedna z wiodących firm medycznych w USA, podwoiła przepustowość przy przetwarzaniu opinii klientów z wykorzystaniem uczenia maszynowego, w porównaniu z instancjami opartymi na GPU.

Jak rozpocząć pracę z Amazon EC2 Inf1?Z instancji Inf1 można zacząć korzystać już dziś.

Jeśli wolisz zarządzać własnymi platformami do tworzenia aplikacji wykorzystujących uczenie maszynowe, możesz rozpocząć od uruchomienia instancji Inf1 za pomocą obrazów AWS Deep Learning AMI, które zawierają Neuron SDK, lub możesz korzystać z instancji Inf1 w ramach usług Amazon Elastic Kubernetes Service lub Amazon ECS, umożliwiających uruchomienie skonteneryzowanych aplikacji wykorzystujących uczenie maszynowe. Aby dowiedzieć się więcej o uruchamianiu kontenerów w instancjach Inf1, przeczytaj ten wpis na blogu, aby rozpocząć pracę z ECS i ten wpis, aby rozpocząć korzystanie z EKS.

Najłatwiejszymi najszybszym sposobem rozpoczęcia pracy z instancjami Inf1 jest skorzystanie z Amazon SageMaker – w pełni zarządzanej usługi, która umożliwia programistom szybkie tworzenie, szkolenie i wdrażanie modeli uczenia maszynowego.

O Autorze:

Sébastien Stormacq


Seb koduje od czasu, gdy po raz pierwszy dotknął Commodore 64 w połowie lat osiemdziesiątych. Inspiruje architektów do wykorzystywania w pełni potencjału chmury AWS, dzięki swojej pasji, entuzjazmowi, ciekawości i kreatywności oraz wspieraniu klientów. Interesuje się architekturą oprogramowania, narzędziami programistycznymi i technologiami mobilnymi. Jeśli chcesz mu coś sprzedać, sprawdź, czy to coś ma API. Obserwuj go na Twitterze @sebsto.