Artificial Intelligence
OLMo: Udoskonalanie nauki o modelach językowych

Rozwój i postęp modeli językowych w ciągu ostatnich kilku lat zaznaczył ich obecność niemal wszędzie, nie tylko w badaniach NLP, ale także w ofertach komercyjnych i zastosowaniach w świecie rzeczywistym. Jednakże gwałtowny wzrost komercyjnego zapotrzebowania na modele językowe w pewnym stopniu zahamował rozwój społeczności. Dzieje się tak dlatego, że większość najnowocześniejszych i wydajnych modeli jest zamknięta za zastrzeżonymi interfejsami, co uniemożliwia społeczności programistów dostęp do istotnych szczegółów ich architektury szkoleniowej, danych i procesów programistycznych. Obecnie nie można zaprzeczyć, że te szkolenia i szczegóły strukturalne mają kluczowe znaczenie dla badań naukowych, w tym dostępu do związanych z nimi potencjalnych zagrożeń i uprzedzeń, co stwarza wymóg, aby społeczność naukowa miała dostęp do naprawdę otwartego i potężnego modelu językowego.
Aby sprostać tym wymaganiom, programiści stworzyli OLMo, najnowocześniejszą, prawdziwie otwartą platformę modeli językowych. Ramy te umożliwiają badaczom wykorzystanie OLMo do budowania i badania modeli językowych. W przeciwieństwie do większości najnowocześniejszych modeli językowych, które udostępniły jedynie kod interfejsu i wagi modeli, framework OLMo jest naprawdę otwartym kodem źródłowym, z publicznie dostępnym kodem ewaluacyjnym, metodami szkoleniowymi i danymi szkoleniowymi. Podstawowym celem OLMo jest wzmocnienie pozycji i wzmocnienie otwartej społeczności badawczej oraz ciągły rozwój modeli językowych.
W tym artykule szczegółowo omówimy framework OLMo, badając jego architekturę, metodologię i wydajność w porównaniu z obecnymi, najnowocześniejszymi frameworkami. Więc zacznijmy.
OLMo: Udoskonalanie nauki o modelach językowych
Model językowy jest prawdopodobnie najgorętszym trendem od kilku lat, nie tylko w społeczności AI i uczenia maszynowego, ale także w całej branży technologicznej, ze względu na jego niezwykłe możliwości wykonywania rzeczywistych zadań z wydajnością zbliżoną do ludzkiej. ChatGPT jest doskonałym przykładem potencjalnych modeli językowych, a główni gracze w branży technologicznej badają integrację modeli językowych ze swoimi produktami.
NLP, czyli przetwarzanie języka naturalnego, to jedna z branż, która w ciągu ostatnich kilku lat szeroko stosowała modele językowe. Jednakże odkąd w branży zaczęto stosować adnotacje ludzkie do dostosowywania i wstępnego szkolenia na dużą skalę, modele językowe szybko wzrosły pod względem opłacalności komercyjnej, w wyniku czego większość najnowocześniejszych struktur językowych i NLP ma ograniczone możliwości zastrzeżone interfejsy, a społeczność programistów nie ma dostępu do istotnych szczegółów.
Aby zapewnić postęp modeli językowych, OLMo, najnowocześniejszy, prawdziwie otwarty model językowy, oferuje programistom platformę do tworzenia, badania i wspierania rozwoju modeli językowych. Zapewnia także badaczom dostęp do swojego kodu szkoleniowego i ewaluacyjnego, metodologii szkoleniowej, danych szkoleniowych, dzienników szkoleniowych i punktów kontrolnych modelu pośredniego. Istniejące, najnowocześniejsze modele charakteryzują się różnym stopniem otwartości, podczas gdy model OLMo udostępnił całą platformę, od uczenia, przez dane, po narzędzia oceny, zmniejszając w ten sposób różnicę w wydajności w porównaniu z najnowocześniejszymi modelami, takimi jak modelu LLaMA2.
Do modelowania i uczenia środowisko OLMo obejmuje kod szkoleniowy, pełne wagi modelu, ablacje, dzienniki szkoleniowe i metryki szkoleniowe w postaci kodu interfejsu, a także dzienniki wag i odchyleń. Na potrzeby analizy i budowania zbiorów danych platforma OLMo zawiera pełne dane szkoleniowe wykorzystywane w modelach Dolma i WIMBD AI2, wraz z kodem, który generuje dane szkoleniowe. Na potrzeby oceny platforma OLMo obejmuje model Catwalk AI2 do oceny późniejszej oraz model Paloma do oceny opartej na zakłopotaniu.
OLMo: Model i architektura
Model OLMo wykorzystuje architekturę transformatora zawierającą wyłącznie dekoder, opartą na systemach przetwarzania informacji neuronowych i zapewnia dwa modele z odpowiednio 1 miliardem i 7 miliardami parametrów, przy czym obecnie opracowywany jest model z 65 miliardami parametrów.
Architektura frameworku OLMo zapewnia kilka ulepszeń w stosunku do frameworków, w tym komponent transformatora waniliowego w ich architekturze, w tym najnowszy stan wiedzy duże modele językowe jak OpenLM, Falcon, LLaMA i PaLM. Poniższy rysunek porównuje model OLMo z 7 miliardami parametrów z najnowszymi LLM działającymi na prawie takiej samej liczbie parametrów.
Framework OLMo wybiera hiperparametry, optymalizując model pod kątem przepustowości szkolenia na sprzęcie, minimalizując jednocześnie ryzyko powolnej rozbieżności i skoków strat. Mając to na uwadze, podstawowe zmiany wprowadzone przez framework OLMo, które odróżniają się od architektury transformatora waniliowego, są następujące:
Brak uprzedzeń
W przeciwieństwie do Falcona, PaLM, LLaMA i innych modeli językowych, framework OLMo nie zawiera żadnych odchyleń w swojej architekturze w celu zwiększenia stabilności szkolenia.
Nieparametryczna norma warstw
Framework OLMo implementuje w swojej architekturze nieparametryczne sformułowanie normy warstwy. Norma warstwy nieparametrycznej nie oferuje transformacji afinicznej w ramach normy, tj. nie zapewnia żadnego wzmocnienia ani odchylenia adaptacyjnego. Nieparametryczna norma warstw nie tylko zapewnia większe bezpieczeństwo niż parametryczna norma warstw, ale jest także szybsza.
Funkcja aktywacji SwiGLU
Podobnie jak większość modeli językowych, takich jak PaLM i LLaMA, framework OLMo zawiera w swojej architekturze funkcję aktywacji SwiGLU zamiast funkcji aktywacji ReLU i zwiększa ukryty rozmiar aktywacji do najbliższej wielokrotności 128, aby poprawić przepustowość.
Osadzenie linowe lub obrotowe
Modele OLMo są zgodne z modelami LLaMA i PaLM i zamieniają osadzania pozycyjne absolutne na osadzania pozycyjne RoPE lub obrotowe.
Trening wstępny z Dolmą
Chociaż społeczność programistów uzyskała teraz większy dostęp do parametrów modeli, drzwi dostępu do zbiorów danych przedtreningowych nadal pozostają zamknięte, ponieważ dane przedtreningowe nie są udostępniane ani razem z modelami zamkniętymi, ani z modelami otwartymi. Co więcej, w dokumentacji technicznej obejmującej takie dane często brakuje istotnych szczegółów wymaganych do pełnego zrozumienia i odtworzenia modelu. Blokada utrudnia kontynuowanie badań w niektórych wątkach model języka badania, w tym zrozumienie, w jaki sposób dane szkoleniowe wpływają na możliwości i ograniczenia modelu. W ramach OLMo zbudowano i udostępniono zbiór danych przedtreningowych Dolma, aby ułatwić otwarte badania nad przedtreningowym modelem języka. Zbiór danych Dolma to wieloźródłowy i zróżnicowany zbiór ponad 3 bilionów tokenów w 5 miliardach dokumentów zebranych z 7 różnych źródeł, które są powszechnie używane przez potężne LLM na dużą skalę do szkoleń wstępnych i są dostępne dla ogółu odbiorców. Skład zbioru danych Dolma podsumowano w poniższej tabeli.
Zbiór danych Dolma jest zbudowany przy użyciu potoku 5 komponentów: filtrowania języka, filtrowania jakości, filtrowania treści, miksowania wielu źródeł, deduplikacji i tokenizacji. OLMo opublikowało także raport Dolma, który zapewnia więcej informacji na temat zasad projektowania i szczegółów konstrukcyjnych wraz z bardziej szczegółowym podsumowaniem treści. Model udostępnia także otwarte źródła wysokowydajnych narzędzi do selekcji danych, które umożliwiają łatwe i szybkie przeglądanie korpusów danych przedtreningowych. Ocena modelu przebiega według dwuetapowej strategii, rozpoczynającej się od oceny online na potrzeby podejmowania decyzji podczas szkolenia modelu i końcowej oceny offline w celu uzyskania zagregowanej oceny z punktów kontrolnych modelu. Do oceny offline OLMo korzysta z platformy Catwalk, naszego publicznie dostępnego narzędzia do oceny, które ma dostęp do szerokiej gamy zbiorów danych i formatów zadań. Struktura wykorzystuje Catwalk do dalszej oceny, a także oceny modelowania języka wewnętrznego w naszym nowym benchmarku trudności, Paloma. Następnie OLMo porównuje go z kilkoma modelami publicznymi, korzystając ze stałego schematu oceny, zarówno w przypadku oceny niższej rangi, jak i oceny zakłopotania.
OLMo uruchamia kilka metryk oceny dotyczących architektury modelu, inicjalizacji, optymalizatorów, harmonogramu szybkości uczenia się i mieszanin danych podczas uczenia modelu. Programiści nazywają to „oceną online” OLMo, ponieważ jest to iteracja w pętli co 1000 kroków szkoleniowych (lub około 4B tokenów szkoleniowych), aby dać wczesny i ciągły sygnał o jakości szkolonego modelu. Konfiguracja tych ocen zależy od większości podstawowych zadań i ustawień eksperymentów używanych do naszej oceny offline. Celem OLMo jest nie tylko porównanie OLMo-7B z innymi modelami w celu uzyskania najlepszej wydajności, ale także pokazanie, w jaki sposób umożliwia on pełniejszą i bardziej kontrolowaną ocenę naukową. OLMo-7B to największy model językowy z wyraźną dekontaminacją w celu oceny zakłopotania.
Szkolenie OLMO
Należy zauważyć, że modele frameworka OLMo są trenowane z wykorzystaniem strategii optymalizatora ZeRO, która jest dostarczana przez framework FSDP za pośrednictwem PyTorch i w ten sposób znacząco zmniejsza zużycie pamięci GPU poprzez partycjonowanie wag modeli na GPU. Dzięki temu, w skali 7 miliardów, trening może odbywać się z mikropakietem o rozmiarze 4096 tokenów na GPU na naszym sprzęcie. Framework treningowy dla modeli OLMo-1B i -7B wykorzystuje globalnie stały rozmiar partii wynoszący około 4 milionów tokenów (2048 instancji każda z długością sekwencji 2048 tokenów). W przypadku modelu OLMo-65B (aktualnie trenowanego) programiści stosują rozgrzewkę rozmiaru partii, która zaczyna się od około 2 milionów tokenów (1024 instancji), podwajając się co 100 miliardów tokenów, aż do około 16 milionów tokenów (8192 instancji).
Aby poprawić przepustowość, stosujemy szkolenia o mieszanej precyzji (Micikevicius i in., 2017) za pomocą wbudowanych ustawień FSDP i modułu wzmacniacza PyTorch. To ostatnie zapewnia, że niektóre operacje, takie jak softmax, zawsze działają z pełną precyzją, aby poprawić stabilność, podczas gdy wszystkie inne operacje działają z połową precyzji w formacie bfloat16. W naszych specyficznych ustawieniach wagi modeli podzielonych na fragmenty i stan optymalizatora lokalne dla każdego procesora graficznego są utrzymywane z pełną precyzją. Wagi w każdym bloku transformatora są rzutowane do formatu bfloat16 tylko wtedy, gdy na każdym procesorze graficznym pojawiają się pełnowymiarowe parametry podczas przejść do przodu i do tyłu. Gradienty są redukowane pomiędzy procesorami graficznymi z pełną precyzją.
Optimizer
Framework OLMo wykorzystuje optymalizator AdamW z następującymi hiperparametrami.
W przypadku wszystkich rozmiarów modeli szybkość uczenia się nagrzewa się liniowo w ciągu pierwszych 5000 kroków (~21B tokenów) do wartości maksymalnej, a następnie maleje liniowo z odwrotnością pierwiastka kwadratowego numeru kroku do określonej minimalnej szybkości uczenia się. Po okresie rozgrzewania model przycina gradienty w taki sposób, aby całkowita l-norma gradientów parametrów nie przekraczała 1.0. Poniższa tabela przedstawia porównanie naszych ustawień optymalizatora w skali 7B z ustawieniami z innych najnowszych LM, które również korzystały z AdamW.
Dane treningowe
Szkolenie obejmuje tokenizację instancji szkoleniowych za pomocą słowa i tokenizatora BPE dla modelu fragmentów zdań po dodaniu specjalnego tokena EOS na końcu każdego dokumentu, a następnie grupujemy kolejne fragmenty 2048 tokenów, tworząc instancje szkoleniowe. Instancje szkoleniowe są tasowane w dokładnie taki sam sposób dla każdego przebiegu treningowego. Kolejność danych i dokładny skład każdej partii szkoleniowej można zrekonstruować na podstawie publikowanych przez nas artefaktów. Wszystkie wydane modele OLMo zostały przeszkolone do co najmniej 2T tokenów (pojedyncza epoka na podstawie danych szkoleniowych), a niektóre zostały przeszkolone poza tym, rozpoczynając drugą epokę na danych z inną kolejnością tasowania. Biorąc pod uwagę niewielką ilość powtarzanych danych, efekt powinien być znikomy.
Efekt
Punkt kontrolny używany do oceny OLMo-7B jest szkolony do 2.46 T tokenów na zestawie danych Dolma przy użyciu wspomnianego wcześniej liniowego harmonogramu zaniku szybkości uczenia się. Dalsze dostrajanie tego punktu kontrolnego w zbiorze danych Dolma dla 1000 kroków z liniowo zanikającą szybkością uczenia się do 0 dodatkowo zwiększa wydajność modelu w opisanych wcześniej zestawach oceny złożoności i zadań końcowych. Do ostatecznej oceny programiści porównali OLMo z innymi publicznie dostępnymi modelami – LLaMA-7B, LLaMA2-7B, Pythia-6.9B, Falcon-7B i RPJ-INCITE-7B.
Ocena dolna
Podstawowy zestaw ocen na późniejszym etapie podsumowano w poniższej tabeli.
We wszystkich przypadkach przeprowadzamy ocenę zerową metodą klasyfikacji rankingowej. W tym podejściu kandydat uzupełnienia tekstu (np. różne opcje wielokrotnego wyboru) są uszeregowane według prawdopodobieństwa (zwykle normalizowanego przez jakiś współczynnik normalizacji) i raportowana jest dokładność przewidywań.
Chociaż Catwalk wykorzystuje kilka typowych metod normalizacji wiarygodności, takich jak normalizacja per token i normalizacja per znak, stosowane strategie normalizacji są dobierane oddzielnie dla każdego zbioru danych i obejmują bezwarunkowe prawdopodobieństwo odpowiedzi. Mówiąc konkretniej, oznacza to brak normalizacji dla zadań arc i openbookqa, normalizację per token dla zadań hellaswag, piqa i winogrande oraz brak normalizacji dla zadań boolq, copa i sciq (tj. zadań w formulacji zbliżonej do zadania przewidywania pojedynczego tokena).
Poniższy rysunek przedstawia postęp wyniku dokładności dla dziewięciu podstawowych zadań końcowych. Można wywnioskować, że istnieje ogólnie rosnąca tendencja w zakresie dokładności dla wszystkich zadań, z wyjątkiem OBQA, ponieważ OLMo-7B jest dalej szkolony na większej liczbie tokenów. Gwałtowny wzrost dokładności wielu zadań między ostatnim a przedostatnim krokiem pokazuje nam korzyść z liniowego zmniejszania LR do 0 w ciągu ostatnich 1000 kroków szkoleniowych. Na przykład w przypadku ewaluacji wewnętrznych Paloma opiera się na serii analiz, począwszy od kontroli wyników w każdej dziedzinie z osobna, aż po bardziej podsumowane wyniki dotyczące kombinacji dziedzin. Wyniki raportujemy na dwóch poziomach szczegółowości: łączną wydajność dla 11 z 18 źródeł w Paloma, a także bardziej szczegółowe wyniki dla każdego z tych źródeł indywidualnie.
Uwagi końcowe
W tym artykule rozmawialiśmy o OLMo, najnowocześniejszym, prawdziwie otwartym modelu językowym, oferującym programistom ramy do budowania, badania i wspierania rozwoju modeli językowych, a także zapewniając badaczom dostęp do kodu szkoleniowego i ewaluacyjnego, metodologii szkoleniowej, dane szkoleniowe, dzienniki szkoleniowe i punkty kontrolne modelu pośredniego. Istniejące, najnowocześniejsze modele charakteryzują się różnym stopniem otwartości, podczas gdy model OLMo udostępnił całą platformę, od szkolenia, przez dane, po narzędzia ewaluacyjne, zmniejszając w ten sposób różnicę w wydajności w porównaniu z najnowocześniejszymi modelami, takimi jak model LLaMA2.