Sztuczna inteligencja

OLMo: Rozwój nauki o modelach językowych

mm

Rozwój i postępy modeli językowych w ciągu ostatnich kilku lat sprawiły, że ich obecność jest prawie wszędzie, nie tylko w badaniach nad przetwarzaniem języka naturalnego, ale także w komercyjnych ofertach i aplikacjach świata rzeczywistego. Jednak wzrost komercyjnego popytu na modele językowe w pewnym stopniu zahamował rozwój społeczności. Jest to spowodowane tym, że większość modeli stanowiących aktualny stan wiedzy i zdolnych do działania jest ukryta za interfejsami własnościowymi, co uniemożliwia społeczności developerskiej dostęp do istotnych szczegółów architektury szkoleniowej, danych i procesów rozwojowych. Nie jest już możliwe zaprzeczanie, że te szczegóły szkoleniowe i strukturalne są niezbędne do badań, w tym dostępu do potencjalnych ryzyk i uprzedzeń, tworząc wymóg dla społeczności badawczej, aby miała dostęp do prawdziwie otwartego i potężnego modelu językowego.

Aby spełnić ten wymóg, deweloperzy stworzyli OLMo, framework modelu językowego stanowiący aktualny stan wiedzy, który jest naprawdę otwarty. Ten framework pozwala badaczom używać OLMo do budowy i badania modeli językowych. W przeciwieństwie do większości modeli językowych stanowiących aktualny stan wiedzy, które udostępniają tylko kod interfejsu i wagę modelu, framework OLMo jest naprawdę otwartym oprogramowaniem, z publicznie dostępnym kodem oceny, metodami szkolenia i danymi szkoleniowymi. Głównym celem OLMo jest umożliwienie i zwiększenie społeczności badawczej oraz ciągłego rozwoju modeli językowych.

W tym artykule omówimy framework OLMo szczegółowo, badając jego architekturę, metodologię i wyniki w porównaniu z aktualnymi frameworkami stanowiącymi stan wiedzy. Zatem, zacznijmy.

OLMo: Rozwój nauki o modelach językowych

Model językowy był najgorętszym trendem w ciągu ostatnich kilku lat, nie tylko w społeczności AI i ML, ale także w całej branży technologicznej, ze względu na jego zdolność do wykonywania zadań świata rzeczywistego z ludzką precyzją. ChatGPT jest przykładem potencjału, jaki posiadają modele językowe, a główni gracze w branży technologicznej badają integrację modeli językowych z ich produktami.

Przetwarzanie języka naturalnego (NLP) to jedna z branży, która w ciągu ostatnich kilku lat wykorzystywała modele językowe. Jednak od momentu, gdy branża zaczęła wykorzystywać adnotację ludzką do wyrównania i dużej skali wstępnego szkolenia, modele językowe doświadczyły gwałtownego wzrostu ich przydatności komercyjnej, w wyniku czego większość modeli językowych i frameworków NLP stanowiących aktualny stan wiedzy ma ograniczone interfejsy własnościowe, a społeczność developerska nie ma dostępu do istotnych szczegółów.

Aby zapewnić postęp modeli językowych, OLMo, stanowiący aktualny stan wiedzy, naprawdę otwarty model językowy, oferuje deweloperom framework do budowy, badania i rozwoju modeli językowych. Udostępnia także badaczom dostęp do kodu szkoleniowego i oceny, metodyki szkolenia, danych szkoleniowych, dzienników szkolenia i pośrednich punktów kontrolnych modelu. Istniejące modele stanowiące aktualny stan wiedzy mają różne stopnie otwartości, podczas gdy model OLMo udostępnił cały framework, od szkolenia do danych i narzędzi oceny, zmniejszając w ten sposób lukę w wydajności w porównaniu z modelami stanowiącymi aktualny stan wiedzy, takimi jak model LLaMA2.

Do modelowania i szkolenia framework OLMo obejmuje kod szkoleniowy, pełne wagi modelu, ablację, dzienniki szkolenia i metryki szkolenia w postaci kodu interfejsu, a także dzienniki i wagi Weights & Biases. Do analizy i budowy zestawu danych framework OLMo obejmuje pełne dane szkoleniowe użyte dla modeli AI2 Dolma i WIMBD, wraz z kodem, który produkuje dane szkoleniowe. Do celów oceny framework OLMo obejmuje model AI2 Catwalk do oceny downstream, a model Paloma do oceny opartej na zaskoczeniu.

OLMo: Model i architektura

Model OLMo przyjmuje architekturę transformatora tylko-dekodera opartą na Neural Information Processing Systems i dostarcza dwa modele z 1 miliardem i 7 miliardami parametrów, z modelem 65 miliardów parametrów obecnie w trakcie rozwoju.

Architektura frameworku OLMo dostarcza kilka ulepszeń w porównaniu z frameworkami, w tym z komponentem transformatora waniliowego w ich architekturze, w tym z niedawnymi modelami językowymi, takimi jak OpenLM, Falcon, LLaMA i PaLM. Poniższy rysunek porównuje model OLMo z 7 miliardami parametrów z niedawnymi LLM, które działają na prawie równych liczbach parametrów.

Framework OLMo wybiera hiperparametry, optymalizując model pod kątem przepływności szkolenia na sprzęcie, jednocześnie minimalizując ryzyko powolnego rozbieżności i skoków strat. Mówiąc krótko, główne zmiany wprowadzone przez framework OLMo, które odróżniają go od architektury transformatora waniliowego, to:

Brak uprzedzeń

W przeciwieństwie do modeli Falcon, PaLM, LLaMA i innych, framework OLMo nie zawiera żadnych uprzedzeń w swojej architekturze, aby zwiększyć stabilność szkolenia.

Nieparametryczna normalizacja warstwy

Framework OLMo wdraża nieparametryczną formułę normalizacji warstwy w swojej architekturze. Nieparametryczna normalizacja warstwy nie oferuje żadnej adaptacyjnej korzyści ani uprzedzeń. Nieparametryczna normalizacja warstwy oferuje nie tylko większe bezpieczeństwo niż parametryczne normalizacje warstwy, ale są również szybsze.

Funkcja aktywacji SwiGLU

Podobnie jak większość modeli językowych, takich jak PaLM i LLaMA, framework OLMo zawiera funkcję aktywacji SwiGLU w swojej architekturze zamiast funkcji aktywacji ReLU i zwiększa ukrytą wielkość aktywacji do najbliższej wielokrotności 128, aby poprawić przepływność.

RoPE lub obrotowe osadzanie pozycyjne

Modele OLMo podążają za modelami LLaMA i PaLM i zamieniają absolutne osadzanie pozycyjne na RoPE lub obrotowe osadzanie pozycyjne.

Wstępne szkolenie z Dolma

Chociaż społeczność developerska ma teraz zwiększony dostęp do parametrów modelu, drzwi do dostępu do zbiorów danych wstępnego szkolenia nadal pozostają zamknięte, ponieważ zbiory danych wstępnego szkolenia nie są udostępniane wraz z zamkniętymi modelami, ani wraz z otwartymi modelami. Ponadto techniczne dokumentacje dotyczące tych danych często brakuje istotnych szczegółów wymaganych do pełnego zrozumienia i odtworzenia modelu. Przeszkoda ta utrudnia prowadzenie badań w pewnych wątkach badań nad modelami językowymi, w tym zrozumienie, w jaki sposób dane szkoleniowe wpływają na możliwości i ograniczenia modelu. Framework OLMo zbudował i udostępnił swój zbiór danych wstępnego szkolenia, Dolma, aby ułatwić otwarte badania nad wstępnym szkoleniem modeli językowych. Zbiór danych Dolma jest wieloźródłowym i zróżnicowanym zbiorem 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 duże modele językowe do wstępnego szkolenia i są dostępne dla ogółu. Skład zestawu danych Dolma jest podsumowany w poniższej tabeli.

Zbiór danych Dolma jest budowany za pomocą potoku 5 komponentów: filtrowania języka, filtrowania jakości, filtrowania zawartości, mieszania wieloźródłowego, usunięcia duplikatów i tokenizacji. OLMo również udostępnił raport Dolma, który dostarcza więcej informacji na temat zasad projektowych i konstrukcyjnych, wraz z bardziej szczegółowym podsumowaniem zawartości. Model również udostępnia swoje wysokowydajne narzędzia do kuracji danych, aby umożliwić łatwą i szybką kurację korpusów danych wstępnego szkolenia. Ocena modelu odbywa się w dwuetapowej strategii, rozpoczynającej się od oceny online w celu podejmowania decyzji podczas szkolenia modelu, a następnie ostatecznej oceny offline w celu uzyskania agregowanej oceny z punktów kontrolnych modelu. Do oceny offline OLMo używa frameworku Catwalk, naszego publicznie dostępnego narzędzia oceny, które ma dostęp do szerokiej gamy zestawów danych i formatów zadań. Framework wykorzystuje Catwalk do oceny downstream, a także do wewnętrznej oceny modelu językowego na naszym nowym benchmarku zaskoczenia, Paloma. OLMo następnie porównuje go z kilkoma publicznymi modelami za pomocą swojego ustalonego potoku oceny, zarówno dla oceny downstream, jak i oceny zaskoczenia.

OLMo prowadzi wiele wskaźników oceny dotyczących architektury modelu, inicjacji, optymalizatorów, harmonogramu uczenia i mieszaniny danych podczas szkolenia modelu. Deweloperzy nazywają to “oceną online” OLMo, ponieważ jest to pętla w pętli na każdym 1000 krokach szkolenia (∼4B tokenów szkoleniowych), aby dać wczesny i ciągły sygnał na temat jakości szkolenia modelu. Ustawienie tych ocen zależy od większości podstawowych zadań i ustawień eksperymentalnych używanych do naszej oceny offline. OLMo ma na celu nie tylko porównanie OLMo-7B z innymi modelami pod kątem najlepszej wydajności, ale także pokazanie, w jaki sposób umożliwia pełniejszą i bardziej kontrolowaną ocenę naukową. OLMo-7B jest największym modelem językowym z jawną dekontaminacją do oceny zaskoczenia.

Szkolenie OLMo

Ważne jest, aby zauważyć, że modele frameworku OLMo są szkolone przy użyciu strategii optymalizatora ZeRO, która jest dostarczana przez framework FSDP za pośrednictwem PyTorch i w ten sposób znacznie redukuje zużycie pamięci GPU przez shardowanie wag modelu na GPU. Z tym, na poziomie 7B, szkolenie może być prowadzone z mikro-batchem o wielkości 4096 tokenów na GPU na naszym sprzęcie. Framework szkoleniowy dla modeli OLMo-1B i -7B używa globalnie stałej wielkości batchu o wielkości około 4M tokenów (2048 instancji, z których każda ma długość sekwencji 2048 tokenów). Dla modelu OLMo-65B (obecnie w trakcie szkolenia) deweloperzy używają rozgrzewania batchu, które rozpoczyna się od około 2M tokenów (1024 instancji), podwajając co 100B tokenów, aż do około 16M tokenów (8192 instancji).

Aby poprawić przepływność, używamy szkolenia o zmieszanej precyzji (Micikevicius et al., 2017) za pomocą ustawień FSDP i modułu amp PyTorch. Ten ostatni zapewnia, że pewne operacje, takie jak softmax, zawsze są uruchamiane w pełnej precyzji, aby poprawić stabilność, podczas gdy wszystkie inne operacje są uruchamiane w półprecyzji z formatem bfloat16. W naszych konkretnych ustawieniach wagi modelu i stan optymalizatora lokalnego dla każdego GPU są przechowywane w pełnej precyzji. Wagi wewnątrz każdego bloku transformatora są rzutowane na format bfloat16 tylko wtedy, gdy pełnowymiarowe parametry są materializowane na każdym GPU podczas przodu i tyłu. Gradienty są redukowane w pełnej precyzji na GPU.

Optymalizator

Framework OLMo używa optymalizatora AdamW z następującymi hiperparametrami.

Dla wszystkich rozmiarów modelu tempo uczenia się rozgrzewa się liniowo w ciągu pierwszych 5000 kroków (∼21B tokenów) do wartości maksymalnej, a następnie maleje liniowo z odwrotną wartością kwadratową liczby kroków do określonej minimalnej stawki uczenia. Po okresie rozgrzewania model obcina gradienty tak, aby całkowita norma parametrów gradientu nie przekraczała 1,0. Poniższa tabela przedstawia porównanie naszych ustawień optymalizatora na poziomie 7B z tymi z innych niedawnych LMs, które również używały AdamW.

Dane szkoleniowe

Szkolenie obejmuje tokenizację instancji szkoleniowych przez słowo i tokenizator BPE dla modelu piece, po dodaniu specjalnego tokenu EOS na końcu każdego dokumentu, a następnie grupowanie kolejnych fragmentów 2048 tokenów w celu utworzenia instancji szkoleniowych. Instancje szkoleniowe są losowane w ten sam sposób dla każdego przebiegu szkolenia. Kolejność danych i dokładny skład każdej partii szkoleniowej mogą być odtworzone z artefaktów, które udostępniamy. Wszystkie udostępnione modele OLMo zostały przeszkolone co najmniej 2T tokenów (jeden epizod nad danymi szkoleniowymi), a niektóre z nich zostały przeszkolone dalej, rozpoczynając drugi epizod nad danymi z inną kolejnością losowania. Biorąc pod uwagę niewielką ilość danych, które to powtarza, powinno to mieć znikomy wpływ.

Wyniki

Punkt kontrolny użyty do oceny OLMo-7B jest przeszkolony do 2,46T tokenów na zestawie danych Dolma z liniowym spadkiem stawki uczenia, o którym mowa wcześniej. Dalsze dostosowanie tego punktu kontrolnego na zestawie danych Dolma przez 1000 kroków z liniowo malejącą stawką uczenia do 0 dalej zwiększa wydajność modelu w ocenie zaskoczenia i zestawach oceny końcowej, opisanych wcześniej. Do ostatecznej oceny deweloperzy porównali OLMo z innymi publicznie dostępnymi modelami – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B i RPJ-INCITE-7B.

Ocena downstream

Podstawowy zestaw oceny downstream jest podsumowany w poniższej tabeli.

Przeprowadzamy ocenę zero-shot za pomocą podejścia klasyfikacji rangi we wszystkich przypadkach. W tym podejściu kandydujące uzupełnienia tekstu (np. różne opcje wielokrotnego wyboru) są klasyfikowane według prawdopodobieństwa (zwykle znormalizowanego przez jakiś czynnik normalizacji), a raportowana jest dokładność predykcji.

Podczas gdy Catwalk używa kilku typowych metod normalizacji prawdopodobieństwa, takich jak normalizacja na token i normalizacja na znak, strategie normalizacji stosowane są wybrane oddzielnie dla każdego zestawu danych i obejmują niezależne prawdopodobieństwo odpowiedzi. Konkretnie, obejmuje to brak normalizacji dla zadań arc i openbookqa, normalizację na token dla zadań hellaswag, piqa i winogrande, oraz brak normalizacji dla zadań boolq, copa i sciq (tj. zadań sformułowanych w sposób zbliżony do zadania predykcji jednego tokenu).

Poniższy rysunek pokazuje postęp wyniku dokładności dla dziewięciu podstawowych zadań końcowych. Można wywnioskować, że istnieje ogólnie rosnący trend liczby dokładności we wszystkich zadaniach, z wyjątkiem OBQA, gdy OLMo-7B jest dalej szkolony na większej liczbie tokenów. Ostry skok dokładności w wielu zadaniach między ostatnim a przedostatnim krokiem pokazuje nam korzyść liniowego redukowania LR do 0 w ciągu ostatnich 1000 kroków szkolenia. Na przykład, w przypadku oceny wewnętrznej, Paloma argumentuje za pomocą serii analiz, od inspekcji wyników w każdej domenie oddzielnie do bardziej podsumowanych wyników na poziomie kombinacji domen. Raportujemy wyniki na dwóch poziomach szczegółowości: agregowaną wydajność na 11 z 18 źródeł w Paloma, a także bardziej szczegółowe wyniki na każde z tych źródeł indywidualnie.

Końcowe myśli

W tym artykule omówiliśmy OLMo, stanowiący aktualny stan wiedzy, naprawdę otwarty model językowy, który oferuje deweloperom framework do budowy, badania i rozwoju modeli językowych, a także zapewnia badaczom dostęp do kodu szkoleniowego i oceny, metodyki szkolenia, danych szkoleniowych, dzienników szkolenia i pośrednich punktów kontrolnych modelu. Istniejące modele stanowiące aktualny stan wiedzy mają różne stopnie otwartości, podczas gdy model OLMo udostępnił cały framework od szkolenia do danych i narzędzi oceny, zmniejszając w ten sposób lukę w wydajności w porównaniu z modelami stanowiącymi aktualny stan wiedzy, takimi jak model LLaMA2.

"Inżynier z zawodu, pisarz z serca". Kunal jest technicznym pisarzem z głęboką miłością i zrozumieniem AI i ML, poświęconym uproszczeniu złożonych pojęć w tych dziedzinach poprzez swoje angażujące i informacyjne dokumentacje.