Kontakt z nami

Artificial Intelligence

Lama 2: Głębokie zanurzenie się w konkursie Open Source ChatGPT

mm
META LAMA 2 LLM

Duże modele językowe (LLM) zdolne do wykonywania złożonych zadań logicznych okazały się obiecujące w wyspecjalizowanych dziedzinach, takich jak programowanie i pisanie kreatywne. Jednak świat LLM to nie tylko raj dla osób, które chcą od razu zacząć korzystać z gotowych rozwiązań; istnieją wyzwania związane z użytecznością, bezpieczeństwem i wymaganiami obliczeniowymi. W tym artykule zagłębimy się w możliwości Lama 2, udostępniając jednocześnie szczegółowy opis konfiguracji tego wysokowydajnego LLM za pomocą procesorów graficznych Hugging Face i T4 w Google Colab.

Opracowany przez Meta we współpracy z Microsoftem, ten model języka otwartego ma na celu redefinicję generatywnej sztucznej inteligencji i rozumienia języka naturalnego. Llama 2 to nie tylko kolejny model statystyczny wytrenowany na terabajtach danych; to ucieleśnienie filozofii. Filozofii, która podkreśla podejście open source jako fundament rozwoju sztucznej inteligencji, szczególnie w obszarze sztucznej inteligencji generatywnej.

Llama 2 i jej zoptymalizowany pod kątem dialogów zamiennik Llama 2-Chat są wyposażone w aż 70 miliardów parametrów. Przechodzą proces dostrajania mający na celu ścisłe dopasowanie ich do ludzkich preferencji, dzięki czemu są bezpieczniejsze i skuteczniejsze niż wiele innych publicznie dostępnych modeli. Ten poziom szczegółowości w dostrajaniu jest często zarezerwowany dla zamkniętych LLM „produktów”, takich jak ChatGPT i BARD, które nie są ogólnie dostępne do publicznego wglądu lub dostosowywania.

Techniczne głębokie nurkowanie Lamy 2

Do szkolenia modelu Lama 2; podobnie jak jego poprzednicy, wykorzystuje autoregresję architektura transformatora, wstępnie wytrenowany na obszernym korpusie danych z samonadzorem. Dodaje jednak dodatkowy poziom zaawansowania, wykorzystując uczenie wzmacniające z ludzkim sprzężeniem zwrotnym (RLHF), aby lepiej dopasować się do ludzkich zachowań i preferencji. Jest to kosztowne obliczeniowo, ale niezbędne do poprawy bezpieczeństwa i skuteczności modelu.

Architektura szkoleniowa Meta Llama 2

Architektura szkoleniowa Meta Llama 2

Szkolenie wstępne i wydajność danych

Podstawową innowacją Llama 2 jest jego system wstępnego trenowania. Model ten czerpie inspirację z poprzedniego modelu, Llama 1, ale wprowadza kilka kluczowych udoskonaleń, które podnoszą jego wydajność. Na szczególną uwagę zasługuje 40% wzrost całkowitej liczby trenowanych tokenów i dwukrotne zwiększenie długości kontekstu. Co więcej, model wykorzystuje mechanizm grupowania zapytań (GQA) w celu zwiększenia skalowalności wnioskowania.

Nadzorowane dostrajanie (SFT) i uczenie się przez wzmacnianie w oparciu o informację zwrotną od człowieka (RLHF)

Model Llama-2-chat został rygorystycznie dopracowany z wykorzystaniem zarówno metody SFT, jak i metody uczenia się przez wzmacnianie z ludzkim sprzężeniem zwrotnym (RLHF). W tym kontekście metoda SFT stanowi integralny element struktury RLHF, dopracowując odpowiedzi modelu tak, aby ściśle odpowiadały ludzkim preferencjom i oczekiwaniom.

OpenAI przedstawił wnikliwą ilustrację wyjaśniającą metodologie SFT i RLHF stosowane w InstructGPT. Podobnie jak LLaMa 2, InstructGPT również wykorzystuje te zaawansowane techniki szkoleniowe do optymalizacji wydajności swojego modelu.

Krok 1 na poniższym obrazku koncentruje się na nadzorowanym dostrajaniu (SFT), podczas gdy kolejne kroki kończą proces uczenia się przez wzmacnianie na podstawie informacji zwrotnej od człowieka (RLHF).

Dostrajanie nadzorowane (SFT) to specjalistyczny proces mający na celu optymalizację wstępnie wytrenowanego modelu dużego języka (LLM) pod kątem konkretnego zadania realizowanego w dalszej kolejności. W przeciwieństwie do metod nienadzorowanych, które nie wymagają walidacji danych, SFT wykorzystuje zbiór danych, który został wstępnie zwalidowany i oznaczony.

Tworzenie takich zbiorów danych jest zazwyczaj kosztowne i czasochłonne. W przypadku Llama 2 priorytetem była jakość, a nie ilość. Zespół Meta, dysponując zaledwie 27,540 XNUMX adnotacjami, osiągnął poziom wydajności porównywalny z annotatorami ludzkimi. Jest to zgodne z… Ostatnie badania pokazując, że nawet ograniczone, ale czyste zbiory danych mogą zapewnić wysokiej jakości wyniki.

W procesie SFT wstępnie wytrenowany model LLM jest wystawiany na działanie oznaczonego zbioru danych, gdzie uruchamiane są algorytmy uczenia nadzorowanego. Wewnętrzne wagi modelu są kalibrowane na podstawie gradientów obliczonych na podstawie funkcji straty specyficznej dla danego zadania. Funkcja straty określa ilościowo rozbieżności między przewidywanymi wynikami modelu a rzeczywistymi etykietami.

Ta optymalizacja pozwala LLM uchwycić skomplikowane wzorce i niuanse osadzone w oznaczonym zbiorze danych. W rezultacie model nie jest tylko uogólnionym narzędziem, ale ewoluuje w wyspecjalizowany zasób, zdolny do wykonywania docelowego zadania z dużą dokładnością.

Uczenie się przez wzmacnianie to kolejny krok, którego celem jest lepsze dopasowanie modelowego zachowania do ludzkich preferencji.

W fazie dostrajania wykorzystano uczenie się przez wzmacnianie na podstawie informacji zwrotnej od ludzi (RLHF), stosując techniki takie jak Próbkowanie ważności oraz Proksymalna optymalizacja polityki wprowadzić szum algorytmiczny, unikając w ten sposób lokalnych optimów. To iteracyjne dostrajanie nie tylko ulepszyło model, ale także dostosowało jego wyniki do ludzkich oczekiwań.

W projekcie Llama 2-Chat wykorzystano binarny protokół porównawczy do gromadzenia danych dotyczących preferencji ludzi, co oznacza zauważalną tendencję w kierunku podejść bardziej jakościowych. Mechanizm ten wpłynął na modele nagród, które są następnie wykorzystywane do udoskonalenia konwersacyjnego modelu sztucznej inteligencji.

Uwaga duchów: dialogi wieloturowe

Meta wprowadziła nową funkcję, Ghost Attention (GAtt), która ma na celu poprawę wydajności gry Llama 2 w dialogach wieloetapowych. Skutecznie rozwiązuje to uporczywy problem utraty kontekstu w trwających rozmowach. GAtt działa jak kotwica, łącząc początkowe instrukcje ze wszystkimi kolejnymi komunikatami użytkownika. W połączeniu z technikami uczenia się przez wzmacnianie, pomaga w tworzeniu spójnych, trafnych i dostosowanych do użytkownika odpowiedzi w dłuższych dialogach.

Z repozytorium Meta Git przy użyciu download.sh

  1. Odwiedź witrynę Meta: Nawigować do Oficjalna strona Meta Llama 2 i kliknij „Pobierz model”
  2. Wypełnij szczegóły: Przeczytaj i zaakceptuj warunki, aby kontynuować.
  3. Potwierdzenie e-mailem:Po przesłaniu formularza otrzymasz wiadomość e-mail od Meta zawierającą link umożliwiający pobranie modelu z repozytorium Git.
  4. Uruchom download.sh: Sklonuj repozytorium Git i wykonaj plik download.sh scenariusz. Ten skrypt poprosi Cię o uwierzytelnienie przy użyciu adresu URL z Meta, który wygasa za 24 godziny. Możesz także wybrać rozmiar modelu – 7B, 13B lub 70B.

Od Przytulonej Twarzy

  1. Otrzymaj e-mail z akceptacją: Po uzyskaniu dostępu z Meta, przejdź do Przytulanie Twarzy.
  2. Poproś o dostęp: Wybierz żądany model i prześlij prośbę o przyznanie dostępu.
  3. Potwierdzenie: W ciągu 1–2 dni należy spodziewać się wiadomości e-mail z potwierdzeniem udzielenia dostępu.
  4. Wygeneruj tokeny dostępu: Przejdź do „Ustawień” na swoim koncie Hugging Face, aby utworzyć tokeny dostępu.

Wersja Transformers 4.31 jest w pełni kompatybilna z LLaMa 2 i otwiera wiele narzędzi oraz funkcjonalności w ekosystemie Hugging Face. Od skryptów treningowych i wnioskowania, po 4-bitową kwantyzację z wykorzystaniem bitsandbytes i Parameter Efficient Fine-tuning (PEFT), zestaw narzędzi jest obszerny. Aby rozpocząć, upewnij się, że korzystasz z najnowszej wersji Transformers i jesteś zalogowany na swoim koncie Hugging Face.

Oto uproszczony przewodnik po uruchamianiu wnioskowania modelu LLaMa 2 w Współpraca Google środowisku, wykorzystując środowisko wykonawcze GPU:

Model Google Colab – procesor graficzny T4

Model Google Colab – procesor graficzny T4

 

 

 

 

 

 

Instalacja pakietu

!pip install transformers
!huggingface-cli login

Zaimportuj niezbędne biblioteki Pythona.

from transformers import AutoTokenizer
import transformers
import torch

Zainicjuj model i tokenizator

W tym kroku określ, którego modelu 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)

Skonfiguruj potok

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")

Generuj sekwencje tekstowe

Na koniec uruchom potok i wygeneruj sekwencję tekstową na podstawie wprowadzonych danych:

sequences = pipeline(
    'Who are the key contributors to the field of artificial intelligence?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=200)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

Interfejs użytkownika A16Z dla LLaMa 2

Andreessen Horowitz (A16Z) uruchomił niedawno najnowocześniejszy interfejs chatbota oparty na Streamlit, dostosowany do Llama 2. Ten interfejs użytkownika, hostowany w GitHub, przechowuje historię rozmów sesyjnych, a także zapewnia elastyczność wyboru spośród wielu punktów końcowych API Llama 2 hostowanych na Replika. Ten projekt zorientowany na użytkownika ma na celu uproszczenie interakcji z Llamą 2, dzięki czemu jest idealnym narzędziem zarówno dla programistów, jak i użytkowników końcowych. Dla zainteresowanych doświadczeniem dostępna jest wersja demonstracyjna na żywo pod adresem Lama2.ai.

Llama 2: Czym różni się od GPT Models i jej poprzedniczki Llama 1?

Różnorodność w skali

W przeciwieństwie do wielu modeli językowych, które oferują ograniczoną skalowalność, Llama 2 oferuje szereg różnych opcji dla modeli o różnych parametrach. Model skaluje się od 7 miliardów do 70 miliardów parametrów, zapewniając w ten sposób szereg konfiguracji dostosowanych do różnorodnych potrzeb obliczeniowych.

Zwiększona długość kontekstu

Model ma zwiększoną długość kontekstu tokenów 4K w porównaniu z Lamą 1. Pozwala to zachować więcej informacji, zwiększając w ten sposób jego zdolność do rozumienia i generowania bardziej złożonych i rozbudowanych treści.

Zgrupowane uwagi dotyczące zapytań (GQA)

Architektura wykorzystuje koncepcję GQA, zaprojektowany w celu przyspieszenia procesu obliczeń uwagi poprzez buforowanie poprzednich par tokenów. To skutecznie poprawia skalowalność wnioskowania modelu, zwiększając dostępność.

Benchmarki wydajności

Analiza porównawcza wydajności modeli Lama 2-Chat z ChatGPT i innymi konkurentami

Analiza wydajności modeli Llama 2-Chat z ChatGPT i innymi konkurentami

LLama 2 ustanowiła nowy standard w zakresie wskaźników wydajności. Nie tylko przewyższa swojego poprzednika, LLamę 1, ale także stanowi znaczącą konkurencję dla innych modeli, takich jak Falcon i GPT-3.5.

Największy model Llama 2-Chat, 70B, również przewyższa ChatGPT w 36% przypadków i dorównuje mu wydajnością w kolejnych 31.5%. Źródło: Papier

Otwarte oprogramowanie: siła społeczności

Meta i Microsoft zamierzają, aby Llama 2 była czymś więcej niż tylko produktem; wyobrażają ją sobie jako narzędzie tworzone przez społeczność. Dostęp do Llama 2 jest bezpłatny zarówno do celów badawczych, jak i niekomercyjnych. Celem jest demokratyzacja możliwości sztucznej inteligencji, udostępniając ją startupom, badaczom i firmom. Paradygmat open source pozwala na „crowdsourcing rozwiązywania problemów” w tym modelu. Deweloperzy i specjaliści ds. etyki sztucznej inteligencji mogą przeprowadzać testy obciążeniowe, identyfikować luki w zabezpieczeniach i oferować rozwiązania w przyspieszonym tempie.

Chociaż warunki licencji na LLaMa 2 są ogólnie liberalne, wyjątki istnieją. Duże przedsiębiorstwa, które mogą pochwalić się ponad 700 milionami użytkowników miesięcznie, takie jak Google, wymagają wyraźnej autoryzacji Meta na jego wykorzystanie. Dodatkowo licencja zabrania używania LLaMa 2 do ulepszania innych modeli językowych.

Aktualne wyzwania z Lamą 2

  1. Generalizacja danych: Zarówno Lama 2, jak i GPT-4 czasami słabną przy jednakowo wysokiej wydajności w przypadku rozbieżnych zadań. W tych scenariuszach jakość i różnorodność danych są tak samo kluczowe jak ich ilość.
  2. Przejrzystość modelu: Biorąc pod uwagę wcześniejsze niepowodzenia związane z wytwarzaniem przez sztuczną inteligencję wprowadzających w błąd wyników, niezwykle istotne jest zbadanie przesłanek decyzyjnych stojących za tymi złożonymi modelami.

Code Llama – najnowsza odsłona Meta

Niedawno ogłosiła Meta Kod Lama który jest dużym modelem językowym specjalizującym się w programowaniu z parametrami o rozmiarach od 7B do 34B. Podobny do Interpreter kodu ChatGPT; Code Llama może usprawnić przepływ pracy programistów i uczynić programowanie bardziej dostępnym. Obsługuje różne języki programowania i jest dostępny w wyspecjalizowanych odmianach, takich jak Code Llama – Python do zadań specyficznych dla języka Python. Model oferuje również różne poziomy wydajności, aby spełnić różnorodne wymagania dotyczące opóźnień. Code Llama, posiadająca otwartą licencję, zachęca społeczność do wkładu w ciągłe doskonalenie.

Przedstawiamy Code Lama, narzędzie AI do kodowania

Podsumowanie

W tym artykule opisano konfigurację modelu Llama 2 do generowania tekstu w Google Colab z obsługą Hugging Face. Wydajność Llama 2 jest napędzana szeregiem zaawansowanych technik, od autoregresyjnych architektur transformatorowych po uczenie wzmacniające z ludzkim sprzężeniem zwrotnym (RLHF). Dzięki obsłudze nawet 70 miliardów parametrów i funkcjom takim jak Ghost Attention, model ten przewyższa obecne standardy branżowe w niektórych obszarach, a dzięki swojej otwartej naturze toruje drogę do nowej ery w dziedzinie rozumienia języka naturalnego i generatywnej sztucznej inteligencji.

Ostatnie pięć lat spędziłem zanurzając się w fascynującym świecie uczenia maszynowego i głębokiego uczenia się. Moja pasja i wiedza sprawiły, że uczestniczyłem w ponad 50 różnorodnych projektach z zakresu inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja ciągła ciekawość przyciągnęła mnie również w stronę przetwarzania języka naturalnego – dziedziny, którą chcę dalej zgłębiać.