Dzisiaj ogłaszamy publiczną dostępność najnowocześniejszej technologii firmy Amazon Alexa Teacher Model z 20 miliardami parametrów (AlexaTM 20B) przez Amazon SageMaker JumpStart, centrum uczenia maszynowego SageMaker. AlexaTM 20B to wielojęzyczny, wielkoskalowy model języka sekwencja do sekwencji (seq2seq), opracowany przez firmę Amazon. Możesz używać AlexaTM 20B do szerokiego zakresu zastosowań branżowych, od podsumowywania raportów finansowych po odpowiadanie na pytania chatbotów obsługi klienta. Można go zastosować nawet wtedy, gdy dostępnych jest niewiele przykładów szkoleniowych lub w ogóle ich nie ma. AlexaTM 20B przewyższa 175 miliardów Model GPT-3 na prostych zadaniach edukacyjnych, takich jak SuperGLUE, i pokazuje najnowocześniejszą wydajność w wielojęzycznych zadaniach zero-shot, takich jak XNLI.
W tym poście przedstawiamy przegląd tego, jak programowo wdrażać i uruchamiać wnioskowanie z modelem AlexaTM 20B za pośrednictwem interfejsów API JumpStart, dostępnych w SageMaker SDK dla Pythona. Pokazujemy, jak możesz użyć tego modelu do tłumaczenia między wieloma językami, streszczać długi tekst, odpowiadać na pytania w oparciu o dany kontekst i generować tekst, który wydaje się nie do odróżnienia od tekstu napisanego przez człowieka.
AlexaTM 20B i nauka w kontekście
Program Alexa Teacher Model (AlexaTM) firmy Amazon Alexa AI jest przeznaczony do tworzenia wielkoskalowych, wielojęzycznych modeli głębokiego uczenia się (głównie opartych na transformatorze), mających na celu poprawę uogólnienia i radzenie sobie z niedoborem danych dla dalszych zadań. Dzięki szkoleniu wstępnemu na dużą skalę modele nauczycieli mogą dobrze uogólniać, aby uczyć się nowych zadań na podstawie rzadkich danych i pomagać programistom w poprawie wydajności zadań na dalszym etapie. Pokazała się AlexaTM 20B konkurencyjna wydajność na wspólnych testach porównawczych i zadaniach przetwarzania języka naturalnego (NLP), takich jak tłumaczenie maszynowe, generowanie i podsumowywanie danych.
Korzystanie z modeli podstawowych, takich jak AlexaTM 20B, zmniejsza potrzebę kosztownego wstępnego szkolenia modeli i zapewnia najnowocześniejszy punkt wyjścia do opracowywania modeli zadań przy mniejszym wysiłku i mniejszej ilości danych szkoleniowych specyficznych dla zadania. Jedną z kluczowych możliwości modeli podstawowych jest to, że możemy nauczyć model wykonywania nowych zadań, takich jak zadawanie pytań i odpowiadanie w różnych językach, przy bardzo małej liczbie przykładów wejściowych i bez konieczności dostrajania lub aktualizacji gradientu. Jest to znane jako uczenie się w kontekście. Dzięki zaledwie kilku przykładom nowych zadań dostarczonych jako kontekst do wnioskowania, model AlexaTM 20B może przenosić wiedzę z tego, czego nauczyli się podczas szkolenia wstępnego na dużą skalę, nawet między językami. To się nazywa nauka kilku ujęć. W niektórych przypadkach model może działać dobrze bez żadnych danych treningowych, z jedynie wyjaśnieniem, co należy przewidzieć. To się nazywa nauka zero-shot. Załóżmy na przykład, że używamy AlexaTM 20B do jednorazowego generowania języka naturalnego. Dane wejściowe przekazywane do modelu to przykład szkoleniowy w postaci par atrybut-wartość wraz z odpowiadającą mu narracją tekstu wyjściowego. Przykład testowy jest następnie dołączany w celu utworzenia pełnego monitu o wprowadzenie danych, jak pokazano na poniższym rysunku.
Aby dowiedzieć się więcej o modelu, sprawdź Model Alexa z parametrami 20B wyznacza nowe standardy w nauce kilku strzałów lub oryginał papier.
Korzystanie z AlexaTM 20B jest udostępniane do użytku niekomercyjnego i podlega warunkom Modelowa umowa licencyjna dla nauczycieli Alexa.
Omówienie rozwiązania
Poniższe sekcje zawierają demonstrację krok po kroku dotyczącą sposobu wdrażania modelu, uruchamiania wnioskowania i uczenia się w kontekście w celu rozwiązywania kilku zadań edukacyjnych.
Zwróć uwagę, że poniższa sekcja zawiera fragmenty kodu; pełny kod ze wszystkimi krokami w tym demo jest dostępny w dołączonym notatniku: Uczenie się w kontekście z AlexaTM 20B w SageMaker JumpStart.
Wdróż model
Aby użyć dużego modelu językowego w SageMaker, potrzebujesz skryptu wnioskowania specyficznego dla modelu, który obejmuje kroki takie jak ładowanie modelu, równoległość i inne. Musisz także utworzyć kompleksowe testy dla skryptów, modelu i żądanych typów instancji, aby sprawdzić, czy wszystkie trzy elementy mogą ze sobą współpracować. JumpStart usuwa ten wysiłek, dostarczając gotowe do użycia skrypty, które zostały solidnie przetestowane.
SageMaker daje możliwość obszernego uruchamiania kontenerów Docker w celu szkolenia i wnioskowania. JumpStart korzysta z tych dostępnych w ramach specyficznych Kontenery do głębokiego uczenia SageMaker (DLC). Zaczynamy od pobrania zoptymalizowanego DLC (deploy_image_uri
) używając model_id
. Następnie pobieramy model_uri
zawierający parametry modelu wraz ze skryptami obsługującymi wnioskowanie i wszelkimi powiązanymi zależnościami. Następnie tworzymy a instancja modelu w SageMaker i wdrożyć go w punkcie końcowym w czasie rzeczywistym. Zobacz następujący kod:
Wdrożenie AlexaTM 20B wymaga instancji obsługiwanej przez GPU z co najmniej 50 GB pamięci procesora i co najmniej 42 GB pamięci GPU. SageMaker zapewnia wiele takich instancji, które obsługują wnioskowanie w czasie rzeczywistym. Przetestowaliśmy to rozwiązanie na trzech instancjach: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Zobacz następujący kod:
Następnie wdrażamy model w punkcie końcowym SageMaker w czasie rzeczywistym:
AlexaTM 20B wymaga 40 GB miejsca na dysku w kontenerze wnioskowania. Instancja ml.g4dn.12xlarge spełnia to wymaganie. Dla instancji typu ml.p3.8xlarge i ml.p3.16xlarge dołączamy plik Sklep Amazon Elastic Block (Amazon EBS), aby obsłużyć duży rozmiar modelu. Dlatego ustawiamy volume_size = None
podczas wdrażania na ml.g4dn.12xlarge i volume_size=256
podczas wdrażania na ml.p3.8xlarge lub ml.p3.16xlarge.
Wdrażanie modelu może potrwać do 10 minut. Po wdrożeniu modelu możemy uzyskiwać z niego prognozy w czasie rzeczywistym!
Uruchom wnioskowanie
AlexaTM 20B to model generowania tekstu, który na podstawie częściowej sekwencji (zdania lub fragmentu tekstu) generuje kolejny zestaw słów. Poniższy fragment kodu zawiera wgląd w sposób wysyłania zapytań do wdrożonego przez nas punktu końcowego i analizowania danych wyjściowych dla zadania autouzupełniania. Aby wysłać żądania do wdrożonego modelu, używamy słownika JSON zakodowanego w formacie UTF-8. Odpowiedź punktu końcowego to obiekt JSON zawierający listę wygenerowanych tekstów.
Następnie wysyłamy zapytanie do punktu końcowego i analizujemy odpowiedź na przykładowym tekście wejściowym:
AlexaTM 20B obsługuje obecnie 10 parametrów generowania tekstu podczas wnioskowania: max_length
, num_return_sequences
, num_beams
, no_repeat_ngram_size
, temperature
, early_stopping
, do_sample
, top_k
, top_p
, seed
. Szczegółowe informacje na temat prawidłowych wartości każdego parametru i ich wpływu na wynik można znaleźć w załączonym notatniku: Uczenie się w kontekście z AlexaTM 20B w SageMaker JumpStart.
Uczenie się w kontekście
Uczenie się w kontekście odnosi się do następujących kwestii: dostarczamy modelowi językowemu monit, który składa się ze szkolenia par wejście-wyjście, które demonstrują zadanie. Do zachęty dołączamy testowe dane wejściowe i umożliwiamy modelowi językowemu przewidywanie poprzez warunkowanie zachęty i przewidywanie kolejnych tokenów lub słów. Jest to bardzo efektywna technika rozwiązywania kilku problemów typu shot-learning, w których uczymy się zadania z kilku próbek treningowych.
Następnie pokazujemy, w jaki sposób możesz wykorzystać AlexaTM 20B do kilku prostych i zerowych zadań poprzez uczenie się w kontekście. W przeciwieństwie do wcześniejszych modeli sekwencji do sekwencji, AlexaTM 1B została przeszkolona w zakresie modelowania języka przyczynowego oprócz odszumiania, co czyni go dobrym modelem do uczenia się w kontekście.
Jednorazowe podsumowanie tekstu
Podsumowanie tekstu polega na skróceniu danych i stworzeniu podsumowania reprezentującego najważniejsze informacje zawarte w tekście oryginalnym. Jednorazowe podsumowanie tekstu odnosi się do ustawienia, w którym uczymy się podsumowywać tekst na podstawie pojedynczej próbki szkoleniowej. Poniższy kod jest próbką podsumowania tekstu z Zbiór danych XSUM:
Używamy następującego monitu do podsumowania, gdy dostarczona jest tylko jedna próbka szkoleniowa. Wygenerowany tekst z modelu jest interpretowany jako przewidywane podsumowanie artykułu testowego.
Dane wyjściowe są następujące:
Jednorazowe generowanie języka naturalnego
Generowanie języka naturalnego polega na tworzeniu narracji tekstowych na podstawie tekstu wejściowego. Poniższy przykład przedstawia przykład szkolenia z programu Zbiór danych E2E:
Używamy następującego monitu do generowania języka naturalnego, gdy dostarczona jest tylko jedna próbka szkoleniowa (1-shot). Wygenerowany tekst z modelu jest interpretowany jako przewidywana narracja tekstowa dla danych wejściowych testu (test_inp
).
Dane wyjściowe są następujące:
Jednorazowe tłumaczenie maszynowe
Tłumaczenie maszynowe to zadanie polegające na tłumaczeniu tekstu z jednego języka na inny. Poniższy przykład pokazuje przykład szkolenia z Zbiór danych WMT19 w którym musimy przetłumaczyć z niemieckiego na angielski:
Używamy następującego monitu do tłumaczenia maszynowego, gdy dostarczona jest tylko jedna próbka szkoleniowa (1-shot). Wygenerowany tekst z modelu jest interpretowany jako tłumaczenie danych wejściowych testu (test_inp
).
Dane wyjściowe są następujące:
Ekstraktywna odpowiedź na pytanie zerowego strzału
Odpowiadanie na pytanie ekstrakcyjne to zadanie polegające na znalezieniu odpowiedzi na pytanie z akapitu kontekstowego. Poniżej znajduje się przykład kontekstu i pytania z Zbiór danych SQuAD v2:
Pamiętaj, że nie mamy żadnych próbek szkoleniowych dla naszego zadania. Zamiast tego tworzymy fikcyjne pytanie o ostatnie słowo w monicie na podstawie test_context
(atrapa strzału). Dlatego tak naprawdę odpowiadamy na pytania metodą ekstrakcji zero-shot.
Używamy następującego monitu do ekstrakcji odpowiedzi na pytanie, gdy nie dostarczono próbki szkoleniowej. Wygenerowany tekst z modelu jest interpretowany jako odpowiedź na pytanie testowe.
Dane wyjściowe są następujące:
Szybka inżynieria
Szybka inżynieria może czasem być sztuką. Nawet niewielkie zmiany w szablonie podpowiedzi mogą spowodować znaczące zmiany w wydajności modelu w przypadku określonego zadania. Poniżej znajduje się kilka porad dotyczących pisania dobrych szablonów monitów. Po pierwsze, ważne jest, aby pamiętać, że model został wyszkolony do uczenia się struktury zdań rzeczywistych (modelowanie języka przyczynowego). W związku z tym najlepiej jest upewnić się, że szablon podpowiedzi jest poprawny gramatycznie i strukturalnie w języku naturalnym. Po drugie, ten konkretny model korzysta z atrap ujęć, aby nauczyć go struktury oczekiwanej w odpowiedzi, jak pokazano powyżej. Po trzecie, zawsze zaleca się sprawdzanie wydajności zadania w różnych szablonach monitów kandydatów. Źródło podpowiedzi i Naturalne instrukcje to dwie platformy typu open source do standaryzacji szablonów monitów i udostępniają różnorodne przykładowe monity używane w istniejących zadaniach modelowania. Dodatkowo Załącznik B do Papier AlexaTM 20B zawiera szablony podpowiedzi, które służą do generowania wyników przedstawionych w artykule. Istnieje rosnąca poddziedzina poświęcona automatycznemu tworzeniu i uczeniu się najlepszych podpowiedzi dla zadania, w tym zarówno podpowiedzi w języku naturalnym, jak i podpowiedzi ciągłe. To wykracza poza zakres tego samouczka.
Wnioski
W tym poście pokazaliśmy, jak wdrożyć model AlexaTM 20B na punkcie końcowym SageMaker i uruchomić wnioskowanie. Modelu AlexaTM 20B można używać do uczenia się w kontekście w celu wykonywania różnych prostych zadań edukacyjnych. Aby dowiedzieć się więcej o AlexaTM 20B, patrz Model Alexa z parametrami 20B wyznacza nowe standardy w nauce kilku strzałów lub oryginał papier.
Autorzy pragną podziękować za wkład techniczny Macieja Rudnickiego, Jakuba Dębskiego, Ashisha Khetana, Anastasiii Dubininy, Witalija Korolewa, Karla Albertsena, Saleha Soltana i Mariusza Momotko w umożliwienie startu.
Informacje o JumpStarcie
JumpStart to centrum uczenia maszynowego (ML) Amazon SageMaker, które oferuje ponad 350 wstępnie wytrenowanych modeli, wbudowane algorytmy i gotowe szablony rozwiązań, które pomogą Ci szybko rozpocząć pracę z uczeniem maszynowym. JumpStart obsługuje najnowocześniejsze modele z popularnych centrów modeli, takich jak TensorFlow, PyTorch, Hugging Face i MXNet, które obsługują popularne zadania uczenia maszynowego, takie jak wykrywanie obiektów, klasyfikacja tekstu i generowanie tekstu. Społeczność badaczy ML włożyła wiele wysiłku w udostępnienie publicznie większości ostatnio opracowanych modeli. JumpStart ma na celu pomóc Ci znaleźć odpowiednie modele i algorytmy ML oraz natychmiast rozpocząć budowanie modeli. W szczególności JumpStart zapewnia następujące korzyści:
- Łatwy dostęp dzięki interfejsowi użytkownika i zestawowi SDK – Dostęp do modeli i algorytmów w JumpStart można uzyskać programowo za pomocą zestawu SageMaker Python SDK lub za pośrednictwem interfejsu użytkownika JumpStart w Amazon SageMaker Studio. Obecnie AlexaTM 20B jest dostępna tylko poprzez SageMaker Python SDK.
- Wbudowane algorytmy SageMaker – JumpStart zapewnia ponad 350 wbudowanych algorytmów i wstępnie wytrenowanych modeli, wraz z odpowiednimi skryptami szkoleniowymi (jeśli są obsługiwane), skryptami wnioskowania i przykładowymi notatnikami. Skrypty są zoptymalizowane pod kątem każdej struktury i zadania oraz zapewniają takie funkcje, jak obsługa procesorów graficznych, automatyczne dostrajanie modelu i szkolenie przyrostowe. Skrypty są również testowane pod kątem instancji i funkcji SageMaker, aby nie napotkać problemów ze zgodnością.
- Gotowe rozwiązania – JumpStart zapewnia zestaw 23 rozwiązań do typowych przypadków użycia uczenia maszynowego, takich jak prognozowanie popytu oraz aplikacje przemysłowe i finansowe, które można wdrożyć za pomocą zaledwie kilku kliknięć. Rozwiązania to kompleksowe aplikacje ML, które łączą różne usługi AWS w celu rozwiązania konkretnego biznesowego przypadku użycia. Korzystają z szablonów AWS CloudFormation i architektur referencyjnych do szybkiego wdrażania, co oznacza, że można je w pełni dostosować.
- Wsparcie — SageMaker zapewnia szereg pomocy, takich jak utrzymywanie aktualnych wersji po wydaniu nowych funkcji SageMaker lub wersji Deep Learning Container oraz tworzenie dokumentacji dotyczącej korzystania z treści JumpStart w środowisku SageMaker.
Aby dowiedzieć się więcej o programie JumpStart i sposobach używania przeszkolonych modeli typu open source do różnych innych zadań ML, zapoznaj się z następującym artykułem AWS re:Wymyśl wideo 2020.
O autorach
Dr Vivek Madan jest naukowcem w zespole Amazon SageMaker JumpStart. Uzyskał doktorat na Uniwersytecie Illinois w Urbana-Champaign i był badaczem podoktoranckim w Georgia Tech. Jest aktywnym badaczem w dziedzinie uczenia maszynowego i projektowania algorytmów. Publikował artykuły na konferencjach EMNLP, ICLR, COLT, FOCS i SODA.
Jacka FitzGeralda jest starszym naukowcem stosowanym w Alexa AI, gdzie obecnie koncentruje się na modelowaniu dużych języków, modelowaniu tekstu wielojęzycznego i operacjach uczenia maszynowego.
Joao Moura jest specjalistą ds. rozwiązań AI/ML w Amazon Web Services. Koncentruje się głównie na przypadkach użycia NLP i pomaga klientom zoptymalizować szkolenie i wdrażanie modelu uczenia głębokiego. Jest również aktywnym zwolennikiem rozwiązań ML typu low-code oraz sprzętu wyspecjalizowanego w ML.
Wygrana czerwca jest menedżerem produktu z SageMaker JumpStart i wbudowanymi algorytmami. Koncentruje się na tym, aby treści ML były łatwe do odnalezienia i użyteczne dla klientów SageMaker.
Pulkit Kapur jest liderem produktu w programie Alexa Teacher Model z Alexa AI, koncentrując się na uogólnionej inteligencji i zastosowaniach wielozadaniowych, multimodalnych modeli podstawowych Alexy.
- AI
- ai sztuka
- generator sztuki ai
- masz robota
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- sztuczna inteligencja
- certyfikacja sztucznej inteligencji
- sztuczna inteligencja w bankowości
- robot sztucznej inteligencji
- roboty sztucznej inteligencji
- oprogramowanie sztucznej inteligencji
- Uczenie maszynowe AWS
- blockchain
- konferencja blockchain ai
- pomysłowość
- sztuczna inteligencja konwersacyjna
- konferencja kryptograficzna
- Dall's
- głęboka nauka
- Podstawowy (100)
- google to
- uczenie maszynowe
- plato
- Platon Ai
- Analiza danych Platona
- Gra Platona
- PlatoDane
- platogaming
- skala ai
- składnia
- zefirnet