11 · Prawa i prawdy · 4 min czytania · aktualizacja
Czym są prawa skalowania w modelach językowych i ile danych potrzeba na parametr?
W skrócie
Błąd dużych modeli maleje jak potęga liczby parametrów, danych i obliczeń. Chinchilla: ok. 20 tokenów na parametr. Ekstrapolacja tych praw jest ryzykowna.
Co to jest
Strata testowa modelu językowego maleje w przybliżeniu jak funkcja potęgowa liczby parametrów, liczby tokenów treningowych i mocy obliczeniowej, gdy żaden z tych zasobów nie jest wąskim gardłem. Najbardziej znane pomiary opublikowali Jared Kaplan i współpracownicy z OpenAI w 2020 roku, a poprawili je Jordan Hoffmann i zespół DeepMind w 2022 roku (model Chinchilla).
Funkcja potęgowa wygląda na wykresie log-log jak prosta linia. To czyni ją kusząco przewidywalną: zmierz kilka małych modeli, przeciągnij linię i oszacuj, jak dobry będzie model sto razy większy — zanim wydasz na niego miliony.
Najważniejszy praktyczny wynik dotyczy proporcji. Kaplan i in. zalecali przy rosnącym budżecie inwestować głównie w liczbę parametrów. Hoffmann i in. pokazali, że parametry i dane powinny rosnąć mniej więcej po równo, co daje regułę około 20 tokenów treningowych na parametr.
Mechanizm — dlaczego tak działa
Kaplan i in. zmierzyli zależności L(N) ∝ N^(−0,076) dla liczby parametrów (bez embeddingów), L(D) ∝ D^(−0,095) dla liczby tokenów i L(C) ∝ C^(−0,050) dla obliczeń, w zakresie wielu rzędów wielkości. Małe wykładniki oznaczają powolny postęp: dziesięciokrotnie większy model obniża stratę tylko o kilkanaście procent — ale robi to przewidywalnie.
Dlaczego potęga? Nie ma jednej przyjętej teorii. Popularne wyjaśnienia: dane zawierają wzorce o częstościach rozłożonych potęgowo (jak prawo Zipfa w języku), więc każdy kolejny rząd wielkości zasobów pozwala nauczyć się kolejnej porcji coraz rzadszych wzorców; albo model coraz drobniej pokrywa rozmaitość danych, a błąd aproksymacji maleje potęgowo z gęstością pokrycia. To hipotezy, nie dowody.
Chinchilla to test w praktyce: model z 70 mld parametrów trenowany na 1,4 bln tokenów (dokładnie 20 tokenów na parametr) przy podobnym budżecie obliczeń pokonał 280-miliardowy Gopher trenowany na 300 mld tokenów. Hoffmann i in. wyjaśnili rozbieżność z Kaplanem m.in. tym, że Kaplan nie dopasowywał harmonogramu współczynnika uczenia do długości treningu.
Zastrzeżenia trzeba traktować poważnie. Prawa skalowania opisują stratę (perplexity), a nie konkretne umiejętności — te mogą rosnąć nierówno. Wykładniki zależą od architektury, danych i tokenizacji. Każda krzywa potęgowa musi się kiedyś wypłaszczyć, bo istnieje nieredukowalna entropia tekstu i skończona podaż danych. Ekstrapolacja o kilka rzędów wielkości poza pomiary to założenie, nie wiedza. Reguła 20 tokenów na parametr optymalizuje koszt treningu; gdy liczy się koszt użycia modelu, opłaca się trenować mniejsze modele na znacznie większej liczbie tokenów.
Na przykładzie
To samo zjawisko w małej skali: krzywa uczenia SVM na Digits 8×8 (średnia z 20 losowań, test na 500 obrazach). Błąd testowy: 50 przykładów — 14,7%, 100 — 9,2%, 200 — 5,4%, 400 — 3,3%, 800 — 1,7%, 1200 — 1,4%. Na wykresie log-log to prawie prosta o nachyleniu −0,77. Prosta dopasowana do punktów do 800 przykładów przewidziała dla 1200 błąd 1,33% — rzeczywisty wyniósł 1,38%. Interpolacja i krótka ekstrapolacja działają.
Ale ta sama prosta przeciągnięta do miliona przykładów przewiduje błąd 0,008%, czyli kilka pomyłek na sto tysięcy obrazów. Przy obrazach 8×8, z których część jest niejednoznaczna nawet dla człowieka, to niemal na pewno nieosiągalne: krzywa wypłaszczy się na poziomie błędu nieredukowalnego. Dokładnie tego ryzyka dotyczy ekstrapolacja praw skalowania w dużych modelach.
Dane: Digits (ręcznie pisane cyfry 8×8)
W praktyce
- Dopasuj potęgę do własnych krzywych:
np.polyfit(np.log(N), np.log(err), 1); lepiej z wyrazem stałym L = E + A·N^(−α) (scipy.optimize.curve_fit), który modeluje wypłaszczenie. - Planując trening od zera, budżet obliczeń przybliża C ≈ 6·N·D operacji (N parametrów, D tokenów).
- Reguła Chinchilli (D ≈ 20·N) to punkt wyjścia dla optymalnego treningu, nie dla optymalnego wdrożenia.
- Przewiduj z krzywych tylko w zakresie bliskim pomiarom; zaznaczaj niepewność wykładnika.
learning_curvew scikit-learn to najprostszy sposób, by sprawdzić, czy więcej danych jeszcze pomaga.
Najczęstsze pytania
- Czy prawa skalowania gwarantują, że większy model będzie mądrzejszy?
- Gwarantują (empirycznie, w badanym zakresie) niższą stratę predykcji następnego tokenu. Przełożenie tej straty na konkretne umiejętności jest dużo mniej przewidywalne i bywa skokowe.
- Skąd wzięło się 20 tokenów na parametr?
- Z dopasowania Hoffmanna i in. (2022) do setek treningów o różnych rozmiarach: przy stałym budżecie obliczeń optymalne N i D rosną w podobnym tempie, około C^0,5 każde. Stała proporcji wyszła około 20.
- Czy skończą się dane do skalowania?
- To realne ograniczenie: zasoby wysokiej jakości tekstu są skończone. Odpowiedzią są dane syntetyczne, wiele epok na tych samych danych i lepsza filtracja — każde z tych rozwiązań ma własne ryzyka, np. zapaść modelu.
Źródła
- Kaplan J. i in. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Hoffmann J. i in. (2022). Training Compute-Optimal Large Language Models. NeurIPS 2022, arXiv:2203.15556.
- Hestness J. i in. (2017). Deep Learning Scaling is Predictable, Empirically. arXiv:1712.00409.
- Zhang A., Lipton Z. C., Li M., Smola A. J. Dive into Deep Learning, https://d2l.ai