Rozmiary LLM

Maud Nalpas
Maud Nalpas

Podczas gdy litera „L” w dużych modelach językowych (LLM) sugeruje ogromną skalę, rzeczywistość jest bardziej złożona. Niektóre modele LLM zawierają biliony parametrów, a inne działają skutecznie przy znacznie mniejszej liczbie parametrów.

Przyjrzyjmy się kilku praktycznym przykładom oraz praktycznym konsekwencjom stosowania modeli o różnych rozmiarach.

Rozmiary LLM i klasy rozmiarów

Jako programista stron internetowych najczęściej bierzemy pod uwagę rozmiar zasobu, jak rozmiar pobieranego pliku. Udokumentowany rozmiar modelu odnosi się zamiast tego do liczby parametrów. Na przykład Gemma 2B oznacza Gemma z 2 miliardami parametrów.

LLM mogą mieć setki tysięcy, milionów, miliardów, a nawet bilionów parametrów.

Większe modele LLM mają więcej parametrów niż ich mniejsze odpowiedniki, co pozwala im na wychwytywanie bardziej złożonych relacji językowych i obsługę szczegółowych promptów. Często są też trenowane na większych zbiorach danych.

Jak widzisz, niektóre rozmiary modeli, np. 2 mld czy 7 miliardów, występują często. Na przykład Gemma 2B, Gemma 7B lub Mistral 7B. Klasy rozmiaru modelu to przybliżone grupowania. Na przykład Gemma 2B ma około 2 miliardy parametrów, ale niekoniecznie.

Klasy rozmiaru modelu to praktyczny sposób oceny wydajności LLM. Można je porównać do klas wagowych w boksie: modele z tej samej klasy rozmiaru są bardziej porównywalne. Dwa modele 2 MLD powinny oferować podobną skuteczność.

Mniejszy model może mieć taką samą wydajność jak większy model do konkretnych zadań.

Zrzut ekranu z polami wyboru rozmiaru modelu HuggingFace.
Klasy rozmiaru modelu w narzędziu HuggingFace. Nie należą one do standardów branżowych, a powstały automatycznie.

Rozmiary modeli najnowszych najnowocześniejszych LLM, takich jak GPT-4, Gemini Pro lub Ultra, nie zawsze są ujawniane, ale uznaje się, że obejmują setki miliardów, a nawet bilionów parametrów.

Rozmiary modeli mogą się znacznie różnić. Na tej ilustracji DistilBERT jest małą kropką w porównaniu do gigantycznego Gemini Pro.

Nie wszystkie modele wskazują liczbę parametrów w nazwie. Niektóre modele mają przedrostek numeru wersji. Na przykład Gemini 1.5 Pro odnosi się do wersji 1.5 modelu (od wersji 1).

LLM czy nie?

Kiedy model jest zbyt mały, aby mógł być LLM? Definicja LLM może być właściwa w społeczności AI i ML.

Niektóre modele biorą jako prawdziwe modele LLM zawierające miliardy parametrów, a mniejsze, takie jak DistilBERT, są uznawane za proste modele NLP. Inne obejmują mniejsze, ale wciąż zaawansowane modele w definicji LLM, np. DistilBERT.

Mniejsze modele LLM do zastosowań na urządzeniu

Większe modele LLM wymagają dużej ilości miejsca na dane i dużej mocy obliczeniowej do wnioskowania. Muszą działać na dedykowanych, wydajnych serwerach z określonym sprzętem (takim jak TPU).

Dla programistów stron internetowych interesuje nas to, czy model jest na tyle mały, aby można go było pobrać i uruchomić na urządzeniu użytkownika.

Trudno odpowiedzieć na to pytanie. Obecnie nie ma prostego sposobu, który pozwoliłby stwierdzić, że „ten model działa na większości urządzeń średniej klasy” z kilku powodów:

  • Możliwości urządzenia różnią się w zależności od pamięci, specyfikacji procesora graficznego i procesora oraz innych aspektów. Tańszy telefon z Androidem i laptop NVIDIA® RTX znacznie się różnią. Możesz mieć dane o urządzeniach użytkowników. Nie ustaliliśmy jeszcze definicji podstawowego urządzenia wykorzystywanego do korzystania z internetu.
  • Model lub platforma, w której działa, mogą być zoptymalizowane pod kątem działania na określonych urządzeniach.
  • Nie ma zautomatyzowanego sposobu sprawdzania, czy określony model LLM można pobrać i uruchomić na konkretnym urządzeniu. Możliwość pobierania na urządzeniu zależy m.in. od ilości VRAM w GPU.

Mamy jednak pewne doświadczenie empiryczne: obecnie niektóre modele, które mają od kilku milionów do kilku miliardów parametrów, mogą działać w przeglądarce na urządzeniach klasy konsumenckiej.

Na przykład:

  • Gemma 2B z interfejsem MediaPipe LLM Inference API (odpowiednia nawet na urządzeniach, które obsługują tylko procesor). Wypróbuj
  • DistilBERT za pomocą Transformers.js.

To dopiero tworzy się pole. Możesz spodziewać się zmian w tej sytuacji:

  • Dzięki innowacyjnym rozwiązaniom WebAssembly i WebGPU technologia WebGPU będzie obsługiwać większą liczbę bibliotek, nowych bibliotek i optymalizacji. Z tego powodu urządzenia użytkowników oczekują coraz wydajniejszego uruchamiania modeli LLM o różnych rozmiarach.
  • Można oczekiwać, że mniejsze, bardzo wydajne modele LLM będą coraz bardziej powszechne dzięki nowym technikom zmniejszania.

Uwagi dotyczące mniejszych modeli LLM

Podczas pracy z mniejszymi LLM zawsze bierz pod uwagę wydajność i rozmiar pobierania.

Wydajność

Możliwości każdego modelu w dużej mierze zależą od konkretnego przypadku użycia. Mniejszy LLM dostosowany do Twojego przypadku użycia może mieć większą skuteczność niż większy ogólny LLM.

Jednak w ramach tej samej rodziny modeli mniejsze LLM mają mniejsze możliwości niż ich większe odpowiedniki. W tym samym przypadku zastosowanie mniejszego LLM wymaga zwykle wykonania większej liczby zadań technicznych.

Zrzut ekranu przedstawiający panel Network (Sieć) w Chrome DevTools.
Wynik Gemma 2B jest niższy niż wynik Gemmy 7B.
Źródło: HuggingFace Open LLM Leaderboard, kwiecień 2024 r.

Rozmiar do pobrania

Więcej parametrów oznacza większy rozmiar pobierania, co również wpływa na to, czy model, nawet jeśli jest uznawany za mały, może być rozsądnie pobierany do zastosowań na urządzeniu.

Istnieją metody obliczania rozmiaru pobierania modelu na podstawie liczby parametrów, jednak może to być skomplikowane.

Na początku 2024 roku rzadko dokumentuje się w dokumentach dotyczących rozmiarów pobieranych modeli. W przypadku użycia na urządzeniu i w przeglądarce zalecamy sprawdzenie rozmiaru pobieranego pliku w panelu Sieć Narzędzi deweloperskich w Chrome lub w innych narzędziach deweloperskich w przeglądarce.

Zrzut ekranu przedstawiający panel Network (Sieć) w Chrome DevTools.
W panelu Network (Sieć) w Chrome DevTools wybierz Gemma 2B i DistilBERT do wnioskowania w aplikacji internetowej w przeglądarce i na urządzeniu. Rozmiary pobieranego pliku wynoszą odpowiednio 1,3 GB i 67 MB.

Gemma jest używany z MediaPipe LLM Inference API. Funkcja DistilBERT jest używana z kodem Transformers.js.

Techniki kurczenia modelu

Istnieje wiele technik, które pozwalają znacznie zmniejszyć wymagania modelu dotyczące pamięci:

  • LoRA (adaptacja niskiej pozycji): technika dostrajania, w której wytrenowane wcześniej wagi są zablokowane. Więcej informacji o LoRA
  • Przycinanie: usunięcie z modelu mniej ważnych wag, by zmniejszyć jego rozmiar.
  • Kwantyzacja: zmniejsza precyzję wagi z liczb zmiennoprzecinkowych (np. 32-bitowych) do reprezentacji o mniejszej liczbie bitów (np. 8-bitowych).
  • Oczyszczanie wiedzy: trenowanie mniejszego modelu tak, aby naśladowało zachowanie większego, wytrenowanego modelu.
  • Udostępnianie parametrów: stosowanie tej samej wagi dla wielu części modelu w celu zmniejszenia łącznej liczby unikalnych parametrów.