Ciekawi mnie, jak dobrze SFT działa w porównaniu do uczenia w kontekście. ICL wydaje się być czarną magią - model naprawdę przyswaja mnóstwo ukrytej informacji z efektywnością próbek na poziomie ludzkim. Jeśli dostrajanie może się do tego zbliżyć, może uda się stworzyć coś, co przypomina uczenie ciągłe? Oto naiwna idea: wewnętrzna pętla, wykonaj SFT na podsumowaniach sesji. Zewnętrzna pętla, długoterminowe RL, gdzie musi wykorzystać umiejętności i wiedzę, które muszą przechodzić między sesjami. Zewnętrzna pętla zasadniczo traktuje SFT jako wywołanie narzędzia, zachęcając model do przekazywania jak największej ilości ważnych informacji. Ciekawi mnie, czy coś, co łączy istniejące techniki w ten sposób, wystarczy do uczenia ciągłego, czy potrzebujemy całkowicie nowego paradygmatu. Zrobiłem zabawną estymację Fermi z ChatGPT, aby uzyskać pewne intuicje na ten temat. Pytanie, które można zadać, to: ile informacji kompresuje SFT (za pomocą LoRA) w porównaniu do uczenia w kontekście? I porównaj to dla zabawy z wstępnym treningiem. Jeśli istnieje ogromna różnica (tj. jest wiele razy więcej bajtów używanych dla pamięci KV w porównaniu do wag LoRA), to *może* sugerować, że byłoby bardzo trudno, aby LoRA była tak bogata i efektywna próbkowo jak ICL. Jeszcze raz, to jest super nieprecyzyjna, popołudniowa dziura królicza, a nie poważne badanie. Tylko dlatego, że używa znacznie mniej pamięci, niekoniecznie oznacza, że jest znacznie głupsza itd. Ten wykres dotyczy Llama 3 70 b (który był wstępnie trenowany na 15 bilionach tokenów). Gdy dochodzimy do pojedynczych tysięcy tokenów, LoRA (której rozmiar nie zmienia się w zależności od liczby tokenów, na których dostrajasz) zaczyna kompresować znacznie gęściej niż ICL. Gdy masz 100k tokenów, tokeny przechodzące przez LoRA o randze 32 są kompresowane 37 razy bardziej niż gdyby były przetwarzane w kontekście (za pomocą pamięci KV). Na marginesie: bajty na token treningowy dla wstępnego treningu są niesamowicie niskie! (0.009 w tym przypadku). Zrobiłem kolejny wykres, tym razem utrzymując liczbę tokenów na stałym poziomie 100k i zmieniając rangę LoRA. Na pierwszy rzut oka wydaje się, że ranga powinna być na tyle mała, aby stanowiła tylko małą część całkowitych wag modelu (w przeciwnym razie, po co się bawić w LoRA?), ale także na tyle duża, aby zawierała znaczną ilość informacji przechowywanych w pamięciach KV. Możesz więc zobaczyć, gdzie może być ten słodki punkt. W każdym razie, te wykresy nie są konkluzywne. I proszę o wybaczenie wszelkich żenujących błędów lub nieporozumień. Chciałbym uzyskać rzeczywiste, ogólne opinie na temat tego, jak dobrze połączenie SFT i RL będzie działać w kontekście uczenia ciągłego, które widzimy w uczeniu w kontekście między sesjami.
40,63K