Connect with us

Sztuczna inteligencja

Llama 2: Głębokie zanurzenie w otwartej, open-source’owej alternatywie dla ChatGPT

mm
META LLAMA 2 LLM

Duże modele językowe (LLM) zdolne do złożonych zadań rozumowania wykazały obiecujące wyniki w specjalistycznych dziedzinach, takich jak programowanie i twórcze pisanie. Jednak świat LLM nie jest po prostu rajem “włącz i gotowe”; istnieją wyzwania związane z użytecznością, bezpieczeństwem i wymaganiami obliczeniowymi. W tym artykule zagłębimy się w możliwości Llama 2, jednocześnie zapewniając szczegółową instrukcję dotyczącą konfigurowania tego wysokowydajnego LLM za pomocą Hugging Face i T4 GPU na Google Colab.

Opracowany przez Meta we współpracy z Microsoft, ten otwarty, dużych rozmiarów model językowy ma na celu zdefiniowanie nowych granic sztucznej inteligencji generatywnej i zrozumienia języka naturalnego. Llama 2 nie jest po prostu kolejnym statystycznym modelem wyszkolonym na terabajtach danych; jest wcieleniem filozofii. Jednej, która podkreśla otwarty charakter jako podstawę rozwoju AI, szczególnie w przestrzeni sztucznej inteligencji generatywnej.

Llama 2 i jego substytut zoptymalizowany pod kątem dialogu, Llama 2-Chat, są wyposażone w maksymalnie 70 miliardów parametrów. Przechodzą one proces dokształcania zaprojektowanego w celu dopasowania ich ściśle do preferencji ludzi, co sprawia, że są one zarówno bezpieczniejsze, jak i skuteczniejsze niż wiele innych publicznie dostępnych modeli. Ten poziom szczegółowości w dokształcaniu jest często zarezerwowany dla zamkniętych “produktowych” LLM, takich jak ChatGPT i BARD, które nie są ogólnie dostępne do publicznej kontroli lub personalizacji.

Techniczne zanurzenie w Llama 2

Do szkolenia modelu Llama 2; podobnie jak jego poprzednicy, wykorzystuje auto-regresyjną architekturę transformatora, wstępnie wyszkoloną na obszernym korpusie danych samouczących. Jednak dodaje dodatkową warstwę złożoności, wykorzystując uczenie ze wzmocnieniem z ludzką informacją zwrotną (RLHF), aby lepiej dopasować się do ludzkiego zachowania i preferencji. Jest to obliczeniowo kosztowne, ale niezbędne do poprawy bezpieczeństwa i skuteczności modelu.

Meta Llama 2 architektura szkoleniowa

Meta Llama 2 architektura szkoleniowa

Wstępne szkolenie i wydajność danych

Innowacyjność Llama 2 tkwi w jego wstępnym reżimie szkoleniowym. Model bierze wskazówki od swojego poprzednika, Llama 1, ale wprowadza kilka kluczowych usprawnień, aby podnieść swoją wydajność. Warte uwagi są 40% wzrost ogólnej liczby tokenów szkoleniowych i dwukrotny wzrost długości kontekstu. Ponadto model wykorzystuje grupowaną uwagę zapytań (GQA), aby zwiększyć skalowalność inferencji.

Nadzorowane dokształcanie (SFT) i uczenie ze wzmocnieniem z ludzką informacją zwrotną (RLHF)

Llama-2-chat został starannie udoskonalony za pomocą SFT i RLHF. W tym kontekście SFT służy jako integralna część ramy RLHF, udoskonalając odpowiedzi modelu, aby ściśle dopasować się do ludzkich preferencji i oczekiwań.

OpenAI dostarczył przekonywującą ilustrację, która wyjaśnia metody SFT i RLHF zastosowane w InstructGPT. Podobnie jak LLaMa 2, InstructGPT również wykorzystuje te zaawansowane techniki szkoleniowe, aby zoptymalizować swoją wydajność.

Krok 1 na poniższym obrazie koncentruje się na nadzorowanym dokształcaniu (SFT), podczas gdy kolejne kroki ukończą proces uczenia ze wzmocnieniem z ludzką informacją zwrotną (RLHF).

Nadzorowane dokształcanie (SFT) to specjalny proces ukierunkowany na optymalizację wstępnie wyszkolonego dużego modelu językowego (LLM) dla określonego zadania downstream. W przeciwieństwie do metod nienadzorowanych, które nie wymagają walidacji danych, SFT wykorzystuje zestaw danych, który został uprzednio zwalidowany i oznaczony.

Ogólnie rzecz biorąc, tworzenie tych zestawów danych jest kosztowne i czasochłonne. Podejście Llama 2 było ukierunkowane na jakość zamiast ilości. Zaledwie 27 540 adnotacjami zespół Meta osiągnął poziomy wydajności porównywalne z ludzkimi adnotatorami. To odpowiada niedawnym badaniom, które pokazują, że nawet ograniczone, ale czyste zestawy danych mogą prowadzić do wysokiej jakości wyników.

W procesie SFT wstępnie wyszkolony LLM jest narażony na oznaczony zestaw danych, gdzie algorytmy uczenia nadzorowanego wchodzą w grę. Wewnętrzne wagi modelu są skalibrowane na podstawie gradientów obliczonych z funkcji straty określonej dla zadania.

Ta optymalizacja pozwala LLM na zrozumienie złożonych wzorców i niuansów wbudowanych w oznaczony zestaw danych. W konsekwencji model nie jest po prostu zunifikowanym narzędziem, ale ewoluuje w specjalistyczne narzędzie, biegłe w wykonywaniu celu z wysokim stopniem dokładności.

Uczenie ze wzmocnieniem jest następnym krokiem, ukierunkowanym na dopasowanie zachowania modelu do ludzkich preferencji w sposób bardziej ściśle.

Faza strojenia wykorzystywała uczenie ze wzmocnieniem z ludzką informacją zwrotną (RLHF), zastosowując techniki takie jak importance sampling i Proximal Policy Optimization, aby wprowadzić algorytmiczny szum, tym samym unikając lokalnych optymów. To iteracyjne dokształcanie nie tylko poprawiło model, ale także dopasowało jego wyjście do ludzkich oczekiwań.

Llama 2-Chat wykorzystywał protokół porównania binarnego do zebrania danych preferencji ludzi, co stanowi znaczący trend w kierunku bardziej jakościowych podejść. Ten mechanizm poinformował modele nagród, które są następnie wykorzystywane do dokształcania modelu AI conversational.

Ghost Attention: wieloobrotowe dialogi

Meta wprowadził nową funkcję, Ghost Attention (GAtt), która jest zaprojektowana w celu poprawy wydajności Llama 2 w wieloobrotowych dialogach. To skutecznie rozwiązuje utrzymujący się problem utraty kontekstu w trwających rozmowach. GAtt działa jak kotwica, łącząc początkowe instrukcje z wszystkimi następującymi wiadomościami użytkownika. Połączony z technikami uczenia ze wzmocnieniem, pomaga w generowaniu spójnych, istotnych i zgodnych z użytkownikiem odpowiedzi na dłuższe dialogi.

Pobieranie z repozytorium Meta Git za pomocą download.sh

  1. Odwiedź stronę Meta: Przejdź do oficjalnej strony Llama 2 i kliknij ‘Pobierz model’
  2. Wypełnij szczegóły: Przeczytaj i zaakceptuj warunki, aby kontynuować.
  3. Potwierdzenie e-mail: Po przesłaniu formularza otrzymasz e-mail od Meta z linkiem do pobrania modelu z ich repozytorium git.
  4. Uruchom download.sh: Sklonuj repozytorium git i uruchom skrypt download.sh. Ten skrypt poprosi Cię o uwierzytelnienie za pomocą adresu URL od Meta, który wygasa w ciągu 24 godzin. Wybierzesz również rozmiar modelu — 7B, 13B lub 70B.

Z Hugging Face

  1. Otrzymaj e-mail z potwierdzeniem: Po uzyskaniu dostępu od Meta przejdź do Hugging Face.
  2. Poproś o dostęp: Wybierz swój pożądany model i prześlij prośbę o przyznanie dostępu.
  3. Potwierdzenie: Oczekuj e-maila z potwierdzeniem w ciągu 1-2 dni.
  4. Wygeneruj tokeny dostępu: Przejdź do ‘Ustawień’ w swoim koncie Hugging Face, aby utworzyć tokeny dostępu.

Wydanie 4.31 Transformers jest w pełni kompatybilne z LLaMa 2 i otwiera wiele narzędzi i funkcjonalności w ekosystemie Hugging Face. Od skryptów szkoleniowych i inferencyjnych po 4-bitową kwantyzację z bitsandbytes i wydajne dokształcanie parametrów (PEFT), zestaw narzędzi jest obszerny. Aby rozpocząć, upewnij się, że jesteś na najnowszym wydaniu Transformers i zalogowany w swoim koncie Hugging Face.

Oto przewodnik po uruchamianiu modelu LLaMa 2 w środowisku Google Colab, wykorzystując GPU:

Google Colab Model - T4 GPU

Google Colab Model – T4 GPU

 

 

 

 

 

 

Instalacja pakietu


!pip install transformers
!huggingface-cli login

Import niezbędnych bibliotek Python.

from transformers import AutoTokenizer
import transformers
import torch

Zainicjowanie modelu i tokenu

W tym kroku określ, który model Llama 2 będziesz używał. W tym przewodniku używamy meta-llama/Llama-2-7b-chat-hf.

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

Konfiguracja potoku

Wykorzystaj potok Hugging Face do generowania tekstu z określonymi ustawieniami:

pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto")

Generowanie sekwencji tekstu

Na koniec uruchom potok i wygeneruj sekwencję tekstu na podstawie Twojego wejścia:

sequences = pipeline(
‘Kto są kluczowymi współtwórcami w dziedzinie sztucznej inteligencji?\n’,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)

Spędziłem ostatnie pięć lat, zanurzając się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę bardziej zbadać.