W tym poście prezentujemy dostrajanie modelu Lamy 2 przy użyciu metody dostrajania efektywnego pod względem parametrów (PEFT) i wdrażamy dostrojony model na Inferencja AWS2. Używamy Neuron AWS zestaw do tworzenia oprogramowania (SDK), aby uzyskać dostęp do urządzenia AWS Inferentia2 i czerpać korzyści z jego wysokiej wydajności. Następnie używamy dużego kontenera wnioskowania modelu obsługiwanego przez Głęboka biblioteka Java (DJLServing) jako nasze modelowe rozwiązanie do serwowania.
Omówienie rozwiązania
Wydajne dostrajanie Lamy2 przy użyciu QLoRa
Rodzina dużych modeli językowych (LLM) Llama 2 to zbiór wstępnie wyszkolonych i precyzyjnie dostrojonych generatywnych modeli tekstowych o skali od 7 miliardów do 70 miliardów parametrów. Llama 2 została wstępnie przeszkolona na 2 bilionach tokenów danych z publicznie dostępnych źródeł. Klienci AWS czasami decydują się na dostrojenie modeli Llama 2 przy użyciu własnych danych, aby uzyskać lepszą wydajność w dalszych zadaniach. Jednakże ze względu na dużą liczbę parametrów modelu Lamy 2 pełne dostrojenie może być zbyt kosztowne i czasochłonne. Metoda dostrajania efektywnego pod względem parametrów (PEFT) może rozwiązać ten problem, dostrajając jedynie niewielką liczbę dodatkowych parametrów modelu, jednocześnie zamrażając większość parametrów wstępnie wytrenowanego modelu. Aby uzyskać więcej informacji na temat PEFT, można przeczytać to pisać. W tym poście używamy QLoRa aby dostroić model Lamy 2 7B.
Wdróż dopracowany model na Inf2 za pomocą Amazon SageMaker
AWS Inferentia2 to specjalnie zaprojektowany akcelerator uczenia maszynowego (ML) zaprojektowany z myślą o obciążeniach związanych z wnioskowaniem i zapewniający wysoką wydajność przy nawet o 40% niższych kosztach w przypadku generatywnych obciążeń AI i LLM w porównaniu z innymi instancjami zoptymalizowanymi pod kątem wnioskowania w AWS. W tym poście używamy Amazon Elastic Compute Cloud (Amazon EC2) Instancja Inf2 zawierająca AWS Inferentia2, akceleratory Inferentia2 drugiej generacji, każdy zawierający dwa NeuronCores-v2. Każdy NeuronCore-v2 jest niezależną, heterogeniczną jednostką obliczeniową z czterema głównymi silnikami: silnikami Tensor, Vector, Scalar i GPSIMD. Zawiera wbudowaną, zarządzaną programowo pamięć SRAM, która maksymalizuje lokalizację danych. Ponieważ opublikowano kilka blogów na temat Inf2, czytelnik może się do tego odnieść pisać i nasz dokumentacja aby uzyskać więcej informacji na temat Inf2.
Aby wdrożyć modele na Inf2, potrzebujemy AWS Neuron SDK jako warstwy oprogramowania działającej na sprzęcie Inf2. AWS Neuron to pakiet SDK używany do uruchamiania obciążeń związanych z głębokim uczeniem się w AWS Inferentia i Szkolenie AWS oparte na instancjach. Umożliwia kompleksowy cykl rozwoju ML w celu tworzenia nowych modeli, trenowania i optymalizowania tych modeli oraz wdrażania ich do produkcji. AWS Neuron obejmuje głębokie uczenie się kompilator, Czas, narzędzia które są natywnie zintegrowane z popularnymi frameworkami, takimi jak TensorFlow i PyTorch. Na tym blogu będziemy używać transformers-neuronx
, który jest częścią pakietu AWS Neuron SDK do przepływów pracy wnioskowania dekodera transformatora. To wspiera szereg popularnych modeli, w tym Llama 2.
Aby wdrożyć modele na Amazon Sage Maker, zwykle używamy kontenera zawierającego wymagane biblioteki, takie jak Neuron SDK i transformers-neuronx
jak również komponent obsługujący model. Amazon SageMaker utrzymuje kontenery głębokiego uczenia (DLC) z popularnymi bibliotekami open source do hostowania dużych modeli. W tym poście używamy Duży kontener wnioskowania modelu dla Neuronu. W tym kontenerze znajdziesz wszystko, czego potrzebujesz, aby wdrożyć swój model Lamy 2 na Inf2. Aby zapoznać się z zasobami umożliwiającymi rozpoczęcie korzystania z LMI w Amazon SageMaker, zapoznaj się z wieloma naszymi istniejącymi postami (blog 1, blog 2, blog 3) w tym temacie. Krótko mówiąc, możesz uruchomić kontener bez pisania dodatkowego kodu. Możesz skorzystać z domyślny program obsługi aby zapewnić płynną obsługę użytkownika i przekazać jedną z obsługiwanych nazw modeli oraz dowolne konfigurowalne parametry czasu ładowania. To kompiluje i udostępnia LLM w instancji Inf2. Na przykład wdrożyć OpenAssistant/llama2-13b-orca-8k-3319
, możesz podać następującą konfigurację (jako serving.properties
plik). W serving.properties
, określamy typ modelu jako llama2-13b-orca-8k-3319
, wielkość partii jako 4, stopień równoległości tensora jako 2 i to wszystko. Aby zapoznać się z pełną listą konfigurowalnych parametrów, zobacz Wszystkie opcje konfiguracji DJL.
Alternatywnie możesz napisać własny plik obsługi modelu, jak pokazano w this przykład, ale to wymaga wdrożenia metod ładowania modelu i wnioskowania, które będą służyć jako pomost pomiędzy interfejsami API DJLServing.
Wymagania wstępne
Na poniższej liście przedstawiono wymagania wstępne dotyczące wdrożenia modelu opisanego w tym poście na blogu. Możesz zaimplementować albo z Konsola zarządzania AWS lub użyj najnowszej wersji programu Interfejs wiersza poleceń AWS (interfejs wiersza poleceń AWS).
Opis przejścia
W następnej sekcji omówimy kod w dwóch częściach:
- Dostosuj model Llama2-7b i prześlij artefakty modelu do określonej lokalizacji wiadra Amazon S3.
- Wdróż model w Inferentia2 przy użyciu kontenera obsługującego DJL hostowanego w Amazon SageMaker.
Kompletne próbki kodu wraz z instrukcjami można znaleźć w this GitHub magazyn.
Część 1: Dostosuj model Lamy2-7b za pomocą PEFT
Zamierzamy zastosować niedawno wprowadzoną w artykule metodę QLoRA: Dostrajanie adapterów niskiego rzędu uwzględniające kwantyzację w celu generowania języka przez Tima Dettmersa i in. QLoRA to nowa technika zmniejszająca zużycie pamięci przez duże modele językowe podczas dostrajania, bez utraty wydajności.
Uwaga: Dostrojenie modelu Lama2-7b pokazane poniżej zostało przetestowane na Amazonie Notatnik studyjny SageMaker z jądrem zoptymalizowanym pod kątem procesora graficznego Python 2.0 przy użyciu pliku ml.g5.2xduży typ instancji. Jako najlepszą praktykę zalecamy użycie pliku Studio Amazon SageMaker Zintegrowane środowisko programistyczne (IDE) uruchomione we własnym zakresie Wirtualna prywatna chmura Amazon (Amazon VPC). Pozwala to kontrolować, monitorować i sprawdzać ruch sieciowy w ramach i poza VPC przy użyciu standardowych funkcji sieciowych i zabezpieczeń AWS. Aby uzyskać więcej informacji, zapoznaj się z sekcją Zabezpieczanie łączności z Amazon SageMaker Studio przy użyciu prywatnego VPC.
Kwantyzacja modelu podstawowego
Najpierw ładujemy skwantowany model za pomocą 4-bitowej kwantyzacji Transformatory z Huggingface bibliotekę w następujący sposób:
Załaduj zestaw danych szkoleniowych
Następnie ładujemy zbiór danych, aby zasilić model w etapie dostrajania pokazanym poniżej:
Zamocuj warstwę adaptera
Tutaj dołączamy małą, możliwą do wyszkolenia warstwę adaptera, skonfigurowaną jako LoraConfig zdefiniowane w Przytulonej Twarzy sprawne biblioteka.
Wytrenuj model
Korzystając z konfiguracji LoRA pokazanej powyżej, dopracujemy model Llama2 wraz z hiperparametrami. Fragment kodu do szkolenia modelu pokazano poniżej:
Połącz wagę modelu
Dopracowany model wykonany powyżej utworzył nowy model zawierający przeszkolone wagi adapterów LoRA. W poniższym fragmencie kodu połączymy adapter z modelem podstawowym, abyśmy mogli użyć dopracowanego modelu do wnioskowania.
Prześlij masę modelu do Amazon S3
W ostatnim kroku części 1 zapiszemy wagi połączonych modeli w określonej lokalizacji Amazon S3. Waga modelu zostanie wykorzystana przez kontener obsługujący model w Amazon SageMaker do hostowania modelu przy użyciu instancji Inferentia2.
Część 2: Model hosta QLoRA do wnioskowania z AWS Inf2 przy użyciu kontenera SageMaker LMI
W tej sekcji omówimy etapy wdrażania dopracowanego modelu QLoRA w środowisku hostingowym Amazon SageMaker. Użyjemy A Obsługa DJL pojemnik od SageMaker DLC, który integruje się z transformatory-neuronx biblioteka do hostowania tego modelu. Konfiguracja ułatwia ładowanie modeli do akceleratorów AWS Inferentia2, równoległość modelu w wielu NeuronCores i umożliwia obsługę za pośrednictwem punktów końcowych HTTP.
Przygotuj artefakty modelu
DJL obsługuje wiele bibliotek optymalizacji głębokiego uczenia się, w tym Głęboka prędkość, Szybszy Transformator i więcej. W przypadku konfiguracji specyficznych dla modelu zapewniamy: serving.properties
z kluczowymi parametrami, takimi jak tensor_parallel_degree
i model_id
aby zdefiniować opcje ładowania modelu. The model_id
może to być identyfikator modelu Hugging Face lub ścieżka Amazon S3, w której przechowywane są wagi modeli. W naszym przykładzie podajemy lokalizację Amazon S3 naszego dopracowanego modelu. Poniższy fragment kodu przedstawia właściwości używane do obsługi modelu:
Proszę odnieść się do tego dokumentacja Aby uzyskać więcej informacji na temat konfigurowalnych opcji dostępnych pod adresem serving.properties
. Należy pamiętać, że używamy option.n_position=512
na tym blogu, aby uzyskać szybszą kompilację AWS Neuron. Jeśli chcesz wypróbować większą długość tokena wejściowego, zalecamy czytelnikowi wstępną kompilację modelu z wyprzedzeniem (zobacz Model wstępnej kompilacji AOT na EC2). W przeciwnym razie może wystąpić błąd przekroczenia limitu czasu, jeśli czas kompilacji będzie zbyt długi.
Po serving.properties
plik jest zdefiniowany, spakujemy plik w formacie tar.gz
formacie w następujący sposób:
Następnie prześlemy plik tar.gz do lokalizacji segmentu Amazon S3:
Utwórz punkt końcowy modelu Amazon SageMaker
Aby użyć instancji Inf2 do obsługi, używamy Amazon Kontener LMI SageMaker z obsługą DJL neuronX. Proszę zapoznać się z tym pisać aby uzyskać więcej informacji na temat używania kontenera DJL NeuronX do wnioskowania. Poniższy kod pokazuje, jak wdrożyć model przy użyciu pakietu Amazon SageMaker Python SDK:
Punkt końcowy modelu testowego
Po pomyślnym wdrożeniu modelu możemy zweryfikować punkt końcowy, wysyłając przykładowe żądanie do predyktora:
Przykładowe dane wyjściowe są pokazane w następujący sposób:
W kontekście analizy danych uczenie maszynowe (ML) odnosi się do techniki statystycznej zdolnej do wydobywania mocy predykcyjnej ze zbioru danych o rosnącej złożoności i dokładności poprzez iteracyjne zawężanie zakresu statystyki.
Uczenie maszynowe nie jest nową techniką statystyczną, ale raczej połączeniem istniejących technik. Co więcej, nie zaprojektowano go do stosowania z konkretnym zbiorem danych ani do uzyskania określonego wyniku. Zamiast tego został zaprojektowany tak, aby był wystarczająco elastyczny, aby dostosować się do dowolnego zbioru danych i przewidywać dowolny wynik.
Sprzątać
Jeśli zdecydujesz, że nie chcesz już uruchamiać punktu końcowego SageMaker, możesz go usunąć za pomocą AWS SDK dla Pythona (boto3), AWS CLI lub Amazon SageMaker Console. Dodatkowo możesz również wyłącz zasoby Amazon SageMaker Studio które nie są już potrzebne.
Wnioski
W tym poście pokazaliśmy, jak dostroić model Llama2-7b przy użyciu adaptera LoRA z 4-bitową kwantyzacją przy użyciu pojedynczej instancji GPU. Następnie wdrożyliśmy model w instancji Inf2 hostowanej w Amazon SageMaker przy użyciu kontenera obsługującego DJL. Na koniec zweryfikowaliśmy punkt końcowy modelu Amazon SageMaker za pomocą przewidywania generowania tekstu przy użyciu zestawu SDK SageMaker Python. Śmiało, wypróbuj, chętnie wysłuchamy Twojej opinii. Bądź na bieżąco z aktualizacjami dotyczącymi większej liczby możliwości i nowych innowacji w AWS Inferentia.
Więcej przykładów na temat AWS Neuron można znaleźć w artykule próbki neuronów aws.
O autorach
Wei Teh jest starszym architektem rozwiązań specjalistycznych AI/ML w AWS. Jego pasją jest pomaganie klientom w rozwoju ich podróży do AWS, koncentrując się na usługach Amazon Machine Learning i rozwiązaniach opartych na uczeniu maszynowym. Poza pracą lubi zajęcia na świeżym powietrzu, takie jak biwakowanie, wędkarstwo i piesze wędrówki z rodziną.
Qingweja Li jest specjalistą ds. uczenia maszynowego w Amazon Web Services. Uzyskał stopień doktora. w badaniach operacyjnych po tym, jak złamał konto grantu naukowego swojego doradcy i nie przekazał obiecanej nagrody Nobla. Obecnie pomaga klientom z branży usług finansowych i ubezpieczeniowych budować rozwiązania machine learning na AWS. W wolnym czasie lubi czytać i uczyć.
- 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/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- O nas
- powyżej
- akcelerator
- akceleratory
- dostęp
- Konto
- precyzja
- Osiągać
- w poprzek
- zajęcia
- przystosować
- Dodatkowy
- do tego
- adres
- awansować
- Po
- przed
- AI
- AI / ML
- AL
- pozwala
- wzdłuż
- Alfa
- również
- Amazonka
- Uczenie maszynowe Amazon
- Amazon Sage Maker
- Studio Amazon SageMaker
- Amazon Web Services
- an
- analiza
- i
- każdy
- Pszczoła
- Aplikuj
- podejście
- SĄ
- AS
- At
- dołączać
- samochód
- dostępny
- AWS
- Inferencja AWS
- piłka
- baza
- na podstawie
- partie
- BE
- być
- korzyści
- BEST
- Ulepsz Swój
- pomiędzy
- Miliard
- Blog
- blogi
- BRIDGE
- Zepsuł się
- budować
- ale
- by
- CAN
- możliwości
- zdolny
- Dodaj
- Chmura
- kod
- kolekcja
- połączenie
- kompletny
- kompleksowość
- składnik
- obliczać
- systemu
- skonfigurowany
- Łączność
- Konsola
- czasochłonne
- Pojemnik
- zawiera
- kontekst
- kontrola
- Koszty:
- mógłby
- stworzony
- Obecnie
- Klientów
- dane
- analiza danych
- zdecydować
- głęboko
- głęboka nauka
- Domyślnie
- określić
- zdefiniowane
- Stopień
- dostarczyć
- dostarcza
- rozwijać
- wdrażane
- wdrażanie
- opisane
- zaprojektowany
- oprogramowania
- urządzenie
- Doker
- na dół
- z powodu
- podczas
- dynamiczny
- E i T
- każdy
- bądź
- Umożliwia
- koniec końców
- Punkt końcowy
- silnik
- silniki
- dość
- Środowisko
- błąd
- itp
- wszystko
- przykład
- przykłady
- wykonany
- Przede wszystkim system został opracowany
- drogi
- doświadczenie
- dodatkowy
- Twarz
- ułatwia
- Failed
- fałszywy
- członków Twojej rodziny
- szybciej
- Wyposażony w
- informacja zwrotna
- filet
- finał
- W końcu
- budżetowy
- usługi finansowe
- i terminów, a
- Wędkarstwo
- elastyczne
- skupienie
- obserwuj
- następnie
- następujący
- następujący sposób
- Ślad stopy
- W razie zamówieenia projektu
- format
- znaleziono
- cztery
- Ramy
- Zamrażanie
- od
- pełny
- Ponadto
- generacja
- generatywny
- generatywna sztuczna inteligencja
- otrzymać
- Dać
- Go
- będzie
- GPU
- przyznać
- sprzęt komputerowy
- he
- słyszeć
- pomoc
- pomaga
- tutaj
- Wysoki
- wysoka wydajność
- jego
- gospodarz
- hostowane
- Hosting
- dom
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- ID
- if
- obraz
- wdrożenia
- wykonawczych
- in
- zawierać
- obejmuje
- Włącznie z
- wzrastający
- niezależny
- przemysł
- Informacja
- innowacje
- wkład
- Wejścia
- przykład
- instrukcje
- ubezpieczenie
- zintegrowany
- Integruje się
- najnowszych
- wprowadzono
- IT
- iteracja
- JEGO
- Java
- podróż
- jpg
- json
- Trzymać
- Klawisz
- Zestaw (SDK)
- język
- duży
- większe
- firmy
- uruchomiona
- warstwa
- nioski
- nauka
- Długość
- poziom
- biblioteki
- Biblioteka
- wifecycwe
- lubić
- lubi
- Linia
- Lista
- Lama
- LLM
- załadować
- załadunek
- lokalizacja
- dłużej
- miłość
- niższy
- maszyna
- uczenie maszynowe
- Główny
- utrzymuje
- robić
- i konserwacjami
- wiele
- maksymalizacji
- Pamięć
- Łączyć
- metoda
- metody
- może
- ML
- model
- modele
- Moduły
- monitor
- jeszcze
- większość
- dużo
- wielokrotność
- Nazwy
- nas
- Potrzebować
- sieć
- ruch sieciowy
- sieci
- Nowości
- Nie
- nagroda Nobla
- żaden
- noty
- numer
- of
- on
- ONE
- tylko
- na
- koncepcja
- open source
- operacje
- optymalizacja
- Optymalizacja
- zoptymalizowane
- Option
- Opcje
- or
- Inne
- Inaczej
- ludzkiej,
- Wynik
- wytyczne
- wydajność
- zewnętrzne
- koniec
- własny
- pakiet
- Papier
- Parallel
- parametr
- parametry
- część
- strony
- przechodzić
- namiętny
- ścieżka
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- wykonywane
- krok po kroku
- plato
- Analiza danych Platona
- PlatoDane
- Proszę
- Popularny
- Post
- Wiadomości
- power
- powered
- praktyka
- Detaliczność
- przepowiednia
- Przewidywania
- Urządzenie prognozujące
- warunki wstępne
- prywatny
- nagroda
- Problem
- wygląda tak
- produkować
- Produkcja
- obiecał
- niska zabudowa
- zapewniać
- publicznie
- opublikowany
- Python
- płomień
- zasięg
- nośny
- raczej
- Czytaj
- Czytelnik
- Czytający
- Odebrane
- niedawno
- polecić
- zmniejszyć
- odnosić się
- odnosi
- składnica
- zażądać
- wywołań
- wymagany
- Wymaga
- Badania naukowe
- Zasoby
- odpowiedź
- Odpowiedzi
- prawo
- run
- bieganie
- poświęcanie
- sagemaker
- Zapisz
- Skala
- skalowaniem
- zakres
- Sdk
- bezszwowy
- druga
- Drugie pokolenie
- Sekcja
- bezpieczeństwo
- widzieć
- wysyłanie
- senior
- Sekwencja
- służyć
- usługa
- Usługi
- służąc
- zestaw
- ustawienie
- ustawienie
- kilka
- Short
- prezentacja
- pokazał
- pokazane
- Targi
- ponieważ
- pojedynczy
- Rozmiar
- mały
- skrawek
- So
- Tworzenie
- rozwoju oprogramowania
- zestaw programistyczny
- rozwiązanie
- Rozwiązania
- czasami
- Źródło
- Źródła
- specjalista
- specyficzny
- określony
- standard
- rozpoczęty
- statystyczny
- pobyt
- Ewolucja krok po kroku
- Cel
- przechowywany
- studio
- Z powodzeniem
- taki
- wsparcie
- Utrzymany
- podpory
- zadania
- Nauczanie
- technika
- Techniki
- tensorflow
- przetestowany
- XNUMX
- że
- Połączenia
- ich
- Im
- następnie
- Te
- to
- Przez
- Tim
- czas
- do
- żeton
- Żetony
- także
- Top
- aktualny
- pochodnia
- ruch drogowy
- Pociąg
- przeszkolony
- Trening
- transformator
- Trylion
- prawdziwy
- próbować
- tuned
- strojenie
- drugiej
- rodzaj
- Nowości
- przesłanych
- URL
- posługiwać się
- używany
- Użytkownik
- Doświadczenie użytkownika
- za pomocą
- zazwyczaj
- UPRAWOMOCNIĆ
- zatwierdzony
- wersja
- przez
- Wirtualny
- spacer
- solucja
- chcieć
- była
- we
- sieć
- usługi internetowe
- waga
- DOBRZE
- Co
- Co to jest
- który
- Podczas
- będzie
- w
- w ciągu
- bez
- Praca
- pracownik
- przepływów pracy
- napisać
- pisanie
- You
- Twój
- zefirnet