Zmagasz się z AI lub rozwojem full-stack? Nasi eksperci są tutaj, aby Cię poprowadzić: dostosowane porady, integracja techniczna i nie tylko. Skontaktuj się z nami pod adresem [email protected].

Wdrożenie modelu generatywnego Mistral 7b na procesorze graficznym A10 w AWS

Summary

Ten kurs NLP w chmurze pokazuje, jak wdrożyć i używać generatywnego modelu sztucznej inteligencji Mistral 7b na procesorze graficznym NVIDIA A10 w AWS.

Model Mistral 7b pokonuje LLaMA 3 7b we wszystkich testach porównawczych i LLaMA 3 13b w wielu testach porównawczych. W rzeczywistości jest nawet na równi z modelem LLaMA 1 34b.

Wdrożenie i korzystanie z niego wymaga co najmniej 15 GB pamięci VRAM, dlatego potrzebujemy procesora graficznego A10 z co najmniej 24 GB pamięci VRAM.

Oto struktura kursu:

Transcript

Cześć, tu Julien Sainas z NLP Cloud.

Dzisiaj zobaczymy, jak wdrożyć model generatywny Mistral 7b na procesorze graficznym AWS A10.

Mistral 7b to najnowocześniejszy model generatywny wydany przez francuską firmę Mistral AI.

Model ten został wydany we wrześniu 2023 roku i pokonał Lama 2 7b we wszystkich oficjalnych testach porównawczych.

Co ciekawsze, w wielu benchmarkach pokonuje on również Lamy 2 13b i jest na równi z Lamy 1 34b.

Mistral AI wydało ten model na licencji Apache, która pozwala na korzystanie z niego w dowolny sposób.

Zespół opublikował zarówno model podstawowy, jak i dopracowaną wersję czatu.

W dzisiejszym filmie zamierzamy wdrożyć wersję czatu.

Mistral 7b wymaga co najmniej 14 gigabajtów pamięci wirtualnej i więcej w przypadku dużego rozmiaru kontekstu.

Zamierzamy więc wdrożyć go na procesorze graficznym A10 NVIDIA w AWS, ponieważ ten procesor graficzny ma 24 gigabajty pamięci wirtualnej i jest dość opłacalny.

Najprostszym sposobem na wdrożenie Mistral 7b jest użycie frameworka Hugging Face i postępowanie zgodnie z oficjalnymi wytycznymi Mistral AI.

Pierwszym krokiem będzie wybranie odpowiedniej maszyny AWS.

W AWS jest mnóstwo maszyn, więc najlepszą radą, jaką mogę ci dać, jest rozpoczęcie od tej strony z typami instancji, a następnie przejście do Accelerated Computing po lewej stronie.

Tutaj masz listę wszystkich akcelerowanych instancji sprzętowych, które zapewnia AWS, a ten, który chcemy dzisiaj, to G5.

Jak widać tutaj, G5 zawiera procesor graficzny A10, który jest tym, czego oczekujemy.

Istnieje kilka wersji instancji G5.

Niektóre mają tylko jeden procesor graficzny, inne cztery lub osiem.

Jeden procesor graficzny jest dla nas wystarczający, ponieważ jest na nim wystarczająca ilość pamięci wirtualnej, ale musimy bardzo uważać na ilość pamięci, jaką ma instancja, ponieważ kiedy uruchomimy model Mistral 7b, będziemy potrzebować tymczasowo trochę pamięci, aby załadować model.

Dlatego dziś wybierzemy dużą instancję G5 4X, ponieważ 64 giga powinno wystarczyć.

Teraz przechodzę do konsoli AWS i klikam Launch Instance.

Nazwijmy go Test A10 Mistral.

Wybierzemy system operacyjny Ubuntu, ale jest pewna sztuczka.

Nie chcemy wybierać standardowego systemu Ubuntu, ponieważ będziemy musieli ręcznie zainstalować na nim sterowniki NVIDIA, co jest bardzo bolesne.

Wybierzemy tutaj serwer Deep Learning AMI GPU PyTorch, który jest znacznie lepszy, ponieważ ten AMI zawiera Ubuntu plus sterowniki NVIDIA plus zestaw narzędzi CUDA plus PyTorch i inne rzeczy, które będą nam dzisiaj potrzebne do naszych testów.

Tutaj wybieramy dużą instancję G5 4X.

Jeśli nie masz pary kluczy, musisz ją utworzyć.

Jeśli robisz to po raz pierwszy i nie jesteś do końca pewien, jak połączyć VS Code z instancją AWS, polecam obejrzenie naszego dedykowanego wideo na temat zdalnego środowiska programistycznego z VS Code na AWS.

Nie ma potrzeby otwierania innych portów i zalecam dodanie może 100 gigabajtów dysku.

Teoretycznie model powinien zajmować tylko 20 gigabajtów dysku twardego, ale zawsze lepiej mieć więcej, bo być może będziemy musieli zainstalować biblioteki, więc tutaj będziemy bezpieczni.

Kliknijmy przycisk Launch Instance.

Dobrze, że został stworzony.

Jeśli masz problem z limitem, ponieważ być może po raz pierwszy uruchamiasz GPU 8N, zalecam skontaktowanie się z pomocą techniczną AWS.

Teraz biorę tutaj publiczne IP, a teraz przełączam się na VS Code.

W lewym dolnym rogu musisz podłączyć bieżące okno do hosta, a najpierw musisz skonfigurować swoje hosty.

Tutaj jest adres IP, który właśnie pobrałem z AWS, a to jest mój klucz SSH.

Zapisuję plik i robię to samo ponownie, tym razem klikając Mistral 7B.

Chcę zaakceptować nowy odcisk palca.

Doskonale.

Teraz jesteśmy na naszej maszynie z GPU 8N.

Sprawdźmy najpierw, czy procesor graficzny jest dostępny z odpowiednimi sterownikami.

Z NVIDIA SMI, idealnie.

Widzę, że mam tutaj procesor graficzny 8N i że jest on pusty, więc mam prawie 24 giga pamięci VRAM dla mojego dzisiejszego modelu.

Tworzę katalog testowy, który otworzę za pomocą VS Code, a teraz tworzę plik testowy.

Może nazwijmy go infer.py.

Co więc powinniśmy umieścić w tym pliku infer.py? To proste.

Przejdźmy do naszego modelu Mistral AI na Hugging Face.

Jeśli po raz pierwszy pobierasz model na Hugging Face, możesz przejść tutaj do modeli i masz mnóstwo dostępnych modeli.

Możesz kliknąć tutaj i wpisać Mistral 7B.

Jak widać, Mistral był już na szczycie listy, ponieważ jest obecnie bardzo modny.

Zamierzam wybrać model Instruct, ponieważ jest on bardziej zabawny do zabawy dzisiaj, a tutaj po prostu postępuję zgodnie z wytycznymi zespołu Mistral AI.

Więc po prostu kopiuję-wklejam kod w VS Code.

Nie będzie działać w obecnej formie, ponieważ wcześniej będziemy musieli zainstalować bibliotekę Transformers.

Ponieważ model Mistral 7B został właśnie dodany do Transformers, nie jest jeszcze dostępny w pakiecie PyPy, ale to nie problem.

Zainstalujemy Transformers bezpośrednio z repozytorium GitHub.

Dobrze.

Teraz Transformers jest poprawnie zainstalowany.

Ostatnią rzeczą, którą będziemy musieli zrobić, jest użycie zmiennoprzecinkowej wersji modelu 16, ponieważ jeśli użyjemy domyślnej wersji modelu, która jest zmiennoprzecinkowa 32, będzie ona zbyt duża dla naszego procesora graficznego A10, a przez większość czasu różnica między FP16 i FP32 dla tego rodzaju modelu jest absolutnie niezauważalna.

Musimy więc zaimportować Torch i dodać ten parametr, Torch dtype, podczas ładowania modelu.

Dobrze.

Spróbujmy teraz uruchomić skrypt wnioskowania.

Dobrze.

Mamy więc właściwy przepis na majonez.

Może spróbujemy czegoś innego.

Zapytajmy model, jak zainstalować Transformers na serwerze Linux.

Możemy to usunąć.

Dobrze.

Więc CSS, nie jestem pewien dlaczego.

Brzmi to poprawnie, z wyjątkiem znaczników CSS tutaj.

Nie jestem pewien, po co ten szczegół, ale myślę, że to wystarczy, aby pokazać, że jest to fajny model 7B, a teraz wiesz, jak go używać, więc teraz twoja kolej.

Wiesz już, jak wdrożyć model Mistral 7B na własnym serwerze.

Jak widać, nie musi to być skomplikowane, zwłaszcza że obecnie używamy tylko jednego procesora graficznego.

Jeśli nie posiadasz procesora graficznego A10 z wystarczającą ilością pamięci wirtualnej, możesz potrzebować kilku mniejszych procesorów graficznych.

W takim przypadku konieczne będzie podzielenie modelu na kilka mniejszych układów GPU.

Będzie to nieco bardziej skomplikowane i będziemy potrzebować do tego innego dedykowanego wideo.

Miłego dnia.