Dzień dobry!
W tym tekście chciałbym poruszyć kwestię zdolności modelu/sieci neuronowej w zależności od stopnia nasycenia danymi i wielkości danych wejściowych wedle bieżącego stanu naszej wiedzy w tym zakresie. Postaram przedstawić Wam tak konkretne przykłady, jak i ogólnie założenia i stosowane techniki mające zmaksymalizować efektywność przetwarzania dostępnych danych.
Na początku warto wyjaśnić sobie kilka pojęć i podstawowych aspektów zachowania modeli. Jednym z istotnych aspektów rozwoju modeli językowych jest zjawisko wyłaniania się umiejętności (emergent abilities). Oznacza to, że pewne zdolności pojawiają się dopiero przy osiągnięciu określonej skali modelu i ilości danych. Zjawisko to jest badane poprzez analizę różnych metryk, takich jak liczba operacji zmiennoprzecinkowych (FLOPs) użytych do trenowania modelu. Badania pokazują, że dla pewnych zadań, takich jak arytmetyka wieloetapowa, wydajność modeli wzrasta gwałtownie po przekroczeniu pewnego progu skali. Pokazuje to jak większe modele mogą nagle wykazywać nowe zdolności, które nie były obecne w mniejszych modelach
Nie tylko ilość, ale i jakość danych oraz metody dostrajania mają istotny wpływ na rozwój zdolności modeli językowych. Reguła GIGO, czyli “garbage in, garbage out“, podkreśla, że jakość danych wejściowych determinuje jakość wyników generowanych przez model. Im więcej i lepszej jakości danych jest dostępnych, tym model może być bardziej precyzyjny i niezawodny. Optymalizacja parametrów modelu poprzez techniki, takie jak Full-Model Tuning, Prompt Tuning czy Low-Rank Adaptation, także może znacząco poprawić wydajność modelu na różnych zadaniach. Finetuning przy użyciu dużych i wysokiej jakości zbiorów danych przynosi naturalnie lepsze rezultaty niż użycie mniejszych zbiorów.
Warto także wspomnieć o potencjalnych trudnościach. Kiedy model otrzymuje małą ilość danych, jego zdolności są naturalnie ograniczone. Model nie jest w stanie nauczyć się skomplikowanych wzorców i zależności, co prowadzi do niskiej dokładności i dużego ryzyka nadmiernego dopasowania, czyli overfittingu. Nadmierne dopasowanie oznacza, że model bardzo dobrze radzi sobie z danymi treningowymi, ale nie potrafi dostroić się do nowych, nieprzerobionych wcześniej danych.
Tak jak najbardziej znanym symbolem kryptowalut, kojarzonym przez typowego ankietowanego na ulicy, jest Bitcoin, tak dla sztucznej inteligencji ów Bitcoinem jest produkt OpenAI, czyli ChatGPT. OpenAI przeprowadziło badania porównujące możliwości swoich produktów. GPT-2 został przeszkolony na zbiorze danych o wielkości około 40GB tekstu, podczas gdy GPT-3 był trenowany na wielokrotnie większym zbiorze danych, obejmującym około 570GB tekstu po przefiltrowaniu. Model GPT-2 był w stanie generować spójne i sensowne teksty oraz odpowiadać na pytania. Posiadał jednak liczne ograniczenia w bardziej złożonych zadaniach, takich jak wielozdaniowe pytania z otwartą odpowiedzią, wymagające głębszego zrozumienia kontekstu. Nowsza wersja, GPT-3, dzięki znacznie większemu zbiorowi danych, zdolna była do wykonywania bardziej złożonych zadań, takich jak tłumaczenie języków, generowanie długich i spójnych wypracowań, odpowiadanie na pytania otwarte czy rozwiązywanie problemów matematycznych. Warto także wspomnieć o zwiększonych predyspozycjach do „zero/one/few-shot learning”, czyli gotowości na zadania wyćwiczone na podstawie bardzo małej, a nawet zerowej ilości przykładów.
Kolejnym modelem, który powinniście kojarzyć, jest BERT, będący zgrabnym rozwinięciem Bidirectional Encoder Representations from Transformers. W badaniu model, nasycony danymi o wielkości odpowiednio 800 milionów słów (zanim dodano do niego dane z Wikipedii), a potem 3.3 miliardem słów z wyżej wymienionej strony, także zaprezentował rozwój swoich możliwości. W badaniu wykorzystano podejście Masked Language Modeling oraz Next Sentence Prediction, polegające odpowiednio na zmuszaniu modelu do przewidywania zamaskowanych tokenów oraz nauki relacji pomiędzy zdaniami, które mogą być wyrwane ze zbioru danych. Model był w stanie dobrze radzić sobie z podstawowymi zadaniami NLP, takimi jak klasyfikacja tekstu, rozpoznawanie nazw własnych i odpowiadanie na pytania. Jednak, tak jak przy poprzednim przykładzie, jego wydajność w bardziej złożonych zadaniach (analiza sentymentu, zadania związane z głębokim zrozumieniem tekstu) była dalej ograniczona. Dodanie większej ilości danych znacząco poprawiło wydajność modelu we wszystkich testowanych zadaniach. BERT wykazywał lepszą zdolność do rozumienia kontekstu, potrafił dojść do bardziej precyzyjnych odpowiedzi na zadawane pytania, także te bardziej złożone.
DeepMind to kolejny, znany zespół z dziedziny AI. Algorytm AlphaZero, wykorzystujący samouczenie się (reinforcement learning) i drzewo wyszukiwania Monte Carlo (Monte Carlo Tree Search) został przebadany pod kątem poprawy swoich umiejętności gry w różne odmiany szachów. W trakcie nauki AlphaZero rozgrywał miliony partii, ucząc się coraz to nowych, zaawansowanych strategii. Doszło nawet do tego, że odkrył nowe podejścia do gry, nieznane nawet najlepszym ludzkim graczom. Po 2 godzinach w Shogi, japońską odmianę tej pięknej gry, model przywyższył program Elmo (Elmo (silnik shogi) – Wikipedia, wolna encyklopedia ). Po dwukrotnie dłuższym czasie przewyższył Stockfish, znany silnik szachowy na zasadach Open-source (Stockfish (szachy) – Wikipedia, wolna encyklopedia ). Shogi, bardziej złożone niż tradycyjne szachy z racji na większą liczbę ruchów, wymagało intensywniejszego przetwarzania danych. Algorytm nauczył się skutecznie wykorzystać elementy specyficzne dla shogi, takie jak np. wracanie zbitych figur na planszę. Go, starochińska gra planszowa, popularna również w innych krajach Azji, będąca połączeniem nauki, sztuki i sportu, wymagała od modelu 8 godzin treningu, by pokonać AlphaGo Lee. Ta gra składa się z jeszcze większej liczby możliwych ruchów i wymaga od gracza długoterminowej strategii. Dlatego też model wykazał tutaj zdolność do rozwijania głębokich, strategicznych planów, które przewyższały wcześniejsze osiągnięcia komputerowych aplikacji.
Podsumowanie badania dla każdej z trzech gier, wygląda nastepująco:
Szachy: AlphaZero wygrał 28 partii, przegrał 0 partii, zremisował 72 partii , łącznie rozegrał 100 partii przeciwko Stockfish
Shogi: AlphaZero wygrał 90 partii, przegrał 8 partii, zremisował 2 partie, łącznie rozegrał 100 partii przeciwko Elmo
Go: AlphaZero wygrał 60 partii, przegrał 40 partii, łącznie rozegrał 100 partii przeciwko AlphaGo Lee
Wspomniane powyżej przykłady rozważań nad nasycaniem zbioru treningowymi kolejnymi danymi pokazują, że prowadzi to do znacznej poprawy wydajności modeli sztucznej inteligencji. Większa ilość danych pozwala na lepsze zrozumienie kontekstu, wzorców i struktur, co przekłada się na lepsze wyniki. Nie można zapominać także o optymalizacji, zwłaszcza w miarę rozwoju branży i zbliżania się do limitów sprzętowych – ale o tym może w innym tekście.