Reading the Math in AI Papers · Część 4 z 4

Jak czytać ELBO, stratę dyfuzji, pass@k i prawa skalowania

Tłumaczenie automatyczne

Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.

Ta część wyjaśnia, czego uczą się dwa modele generatywne i co mówią cztery popularne miary. Jest przeznaczona dla inżynierów, którzy chcą zrozumieć ELBO i stratę dyfuzji lub porównywać prace podające pass@k, perplexity, złożoność obliczeniową i prawa skalowania. Diagramy pokazują obliczenia; równania precyzują, co jest optymalizowane lub zliczane.

Sekcje o modelach generatywnych opierają się na sobie nawzajem. Sekcje o metrykach można czytać niezależnie. Część 1 zawiera zestawienie notacji, jeśli go potrzebujesz. Wszystkie logarytmy tutaj są naturalne.

Modele generatywne: ELBO i dyfuzja

Model językowy może przypisywać prawdopodobieństwo podanej odpowiedzi token po tokenie. Inne modele generatywne wprowadzają zmienne ukryte: wartości pośrednie, które pomagają generować dane, ale nie występują w zbiorze treningowym. Obliczenie prawdopodobieństwa obrazu może wtedy wymagać uśrednienia po zbyt wielu możliwych wartościach ukrytych. Następne dwie metody uczą się bez dokładnego obliczania tej średniej.

ELBO: dolne ograniczenie, które można obliczyć

Wariacyjny autoenkoder (VAE) generuje obraz z wektora ukrytego zz: listy liczb. Prosty przykład dwuwymiarowy to z=(−0.4,1.2)z=(-0.4,1.2). Liczby te są wejściem do sieci neuronowej, a nie instrukcjami w języku programowania. Wektor jest ukryty, ponieważ zbiór treningowy zawiera obrazy, ale nie podaje odpowiadających im wartości zz.

Aby wygenerować obraz w opisanym tu standardowym VAE, losujemy każdy element zz niezależnie z rozkładu normalnego o średniej 0 i odchyleniu standardowym 1. Losowanie wartości zgodnie z rozkładem nazywa się próbkowaniem. Ten stały rozkład wektorów to rozkład a priori, zapisywany jako p(z)p(z).

Dekoder jest wytrenowaną siecią neuronową. Jego wyuczone wagi przekształcają zz w parametry rozkładu wartości pikseli. Na przykład dekoder obrazów o wymiarach 28 na 28 pikseli, których wartości to 0 lub 1, może zwrócić 784 prawdopodobieństwa, po jednym na piksel. Każde oznacza prawdopodobieństwo, że dany piksel ma wartość 1. Wylosowanie tych wartości pikseli daje obraz. Elementy wektora określają prawdopodobieństwa pikseli za pośrednictwem wyuczonej sieci; same nie są pikselami. Kingma i Welling, §3 i dodatek C, opisują ten standardowy układ.

Podczas treningu obraz xx pochodzi ze zbioru danych. Enkoder, kolejna sieć neuronowa, otrzymuje ten obraz na wejściu. W użytym tu układzie gaussowskim przewiduje średnią i odchylenie standardowe dla każdego elementu zz. Razem określają one qϕ(z∣x)q_\phi(z\mid x), rozkład wektorów ukrytych dla tego obrazu. Losujemy zz z tego rozkładu zamiast z rozkładu a priori. Dekoder przypisuje następnie oryginalnemu obrazowi prawdopodobieństwo pθ(x∣z)p_\theta(x\mid z) przy użyciu wylosowanego wektora.

Trening nagradza dekoder za przypisanie obserwowanemu obrazowi wysokiego logarytmu prawdopodobieństwa. Odejmuje też dywergencję KL: nieujemną miarę różnicy między rozkładem wektorów enkodera a stałym rozkładem a priori. Diagram pokazuje oba składniki i inne źródło wektorów podczas generowania.

Trening VAE zaczyna się od obserwowanego obrazu, używa enkodera do wylosowania liczbowego wektora ukrytego i wymaga od dekodera oceny tego samego obrazu. Drugie porównanie utrzymuje rozkład wektorów enkodera blisko stałego rozkładu a priori. Generowanie losuje wektor bezpośrednio z rozkładu a priori i używa wytrenowanego dekodera do uzyskania rozkładu pikseli, z którego losuje nowy obraz.Trening VAE zaczyna się od obserwowanego obrazu, używa enkodera do wylosowania liczbowego wektora ukrytego i wymaga od dekodera oceny tego samego obrazu. Drugie porównanie utrzymuje rozkład wektorów enkodera blisko stałego rozkładu a priori. Generowanie losuje wektor bezpośrednio z rozkładu a priori i używa wytrenowanego dekodera do uzyskania rozkładu pikseli, z którego losuje nowy obraz.

Wynik treningowy ma dwa składniki:

L(x)=Eqϕ(z∣x)[log⁡pθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).\begin{aligned} \mathcal L(x)&=\mathbb E_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)]\\ &\quad-D_{\mathrm{KL}}(q_\phi(z\mid x)\Vert p(z)). \end{aligned}

Pierwszy składnik uśrednia logarytm prawdopodobieństwa obrazu po wektorach wylosowanych z enkodera. Drugi to kara KL. Symbole ϕ\phi i θ\theta oznaczają wyuczone parametry enkodera i dekodera. Obie sieci uczą się zwiększać ten wynik; kod minimalizujący stratę używa jego wartości ze zmienionym znakiem.

To dolne ograniczenie logarytmu wiarygodności brzegowej, czyli ELBO. Wiarygodność brzegowa pθ(x)p_\theta(x) to prawdopodobieństwo obserwowanego obrazu według modelu, uśrednione po wszystkich możliwych wektorach ukrytych. Kingma i Welling, §2.2, równania (1)–(3), wiążą ją z wynikiem treningowym:

log⁡pθ(x)=L(x)+DKL(qϕ(z∣x)∥pθ(z∣x))≥L(x).\begin{aligned} &\log p_\theta(x)=\mathcal L(x)\\ &\quad+D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\Vert p_\theta(z\mid x)\bigr)\\ &\geq\mathcal L(x). \end{aligned}

Tutaj pθ(z∣x)p_\theta(z\mid x) to prawdziwy rozkład a posteriori: rozkład wektorów ukrytych modelu przy danym obrazie. Nieujemny składnik KL jest różnicą między logarytmem wiarygodności brzegowej a ELBO; wynosi zero, gdy enkoder odtwarza ten rozkład a posteriori. Ta tożsamość wyjaśnia ograniczenie. Obliczalna kara treningowa z diagramu porównuje natomiast enkoder ze znanym rozkładem a priori p(z)p(z), więc krok treningu nie wymaga nieznanego rozkładu a posteriori.

Wyższe ELBO samo w sobie nie dowodzi, że dekoder się poprawił. Lepszy enkoder może przybliżyć ograniczenie do rzeczywistej wartości bez zmiany dekodera. Ponadto ograniczenie dotyczy dokładnej wartości oczekiwanej: estymata z kilku wylosowanych wektorów może w pojedynczym losowaniu przekroczyć logarytm wiarygodności brzegowej. Szczegółowe omówienie ELBO wyprowadza ograniczenie i sprawdza je na przykładzie obliczeniowym.

DDPM: przewiduj dodany szum

DDPM używa zaszumionych wersji obrazu jako zmiennych ukrytych. Podczas treningu bierze czysty obraz ze zbioru danych i losuje szum: jedną liczbę ze standardowego rozkładu normalnego dla każdej współrzędnej obrazu. Losowo wybiera krok tt z ustalonego harmonogramu szumu, który określa proporcje mieszania obrazu i szumu. Sieć widzi ten zniekształcony obraz i tt; jej zadaniem jest przewidzenie właśnie dodanej próbki szumu.

Generowanie wielokrotnie używa wytrenowanej sieci. Zaczyna od losowego szumu, przewiduje szum na bieżącym poziomie i używa tej predykcji do wykonania małego kroku odszumiania. Wagi pozostają podczas tego procesu stałe. Trening ma więc znany cel, z którego wynika błąd służący do aktualizacji sieci; generowanie używa wyuczonej sieci do utworzenia obrazu w wielu krokach.

Podczas treningu czysty obraz i znany szum są łączone na losowo wybranym poziomie. Sieć przewiduje dodany szum i porównuje predykcję ze znaną próbką. Podczas generowania proces zaczyna się od szumu i wielokrotnie używa sieci, by uzyskać mniej zaszumione obrazy.Podczas treningu czysty obraz i znany szum są łączone na losowo wybranym poziomie. Sieć przewiduje dodany szum i porównuje predykcję ze znaną próbką. Podczas generowania proces zaczyna się od szumu i wielokrotnie używa sieci, by uzyskać mniej zaszumione obrazy.

Zapisanie zaszumionego wejścia jako xtx_t ułatwia odczytanie straty:

xt=αˉtx0+1−αˉtϵLsimple=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2].\begin{aligned} x_t&=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon\\ L_{\mathrm{simple}}&=\mathbb E_{t,x_0,\epsilon}\left[\lVert\epsilon-\epsilon_\theta(x_t,t)\rVert^2\right]. \end{aligned}

x0x_0 to czysty obraz treningowy, tt to losowo wybrany krok, a ϵ\epsilon to nowa próbka szumu ze standardowego rozkładu normalnego. Sieć ϵθ\epsilon_\theta z wyuczonymi parametrami θ\theta przewiduje tę próbkę. Kwadrat normy sumuje kwadraty błędów predykcji po współrzędnych obrazu; wartość oczekiwana uśrednia po obrazach, krokach i próbkach szumu.

Ustalony harmonogram definiuje αs=1−βs\alpha_s=1-\beta_s i αˉt=∏s=1tαs\bar\alpha_t=\prod_{s=1}^{t}\alpha_s, gdzie βs\beta_s to wariancja szumu dodawanego w kroku ss. Kreska oznacza ten iloczyn, a nie średnią. Ustala dwa współczynniki mieszanki z diagramu: αˉt\sqrt{\bar\alpha_t} dla obrazu i 1−αˉt\sqrt{1-\bar\alpha_t} dla szumu. Wartość bliska 1 oznacza przewagę obrazu; bliska 0 — przewagę szumu.

Trening może utworzyć xtx_t bezpośrednio; nie musi wykonywać wszystkich wcześniejszych kroków dodawania szumu. Oryginalny DDPM używa 1000 poziomów i losuje kroki treningowe jednostajnie. Zobacz równanie (4), równanie (14) i algorytm 1 lub szczegółowe omówienie DDPM.

Praca wyprowadza ograniczenie wariacyjne powiązane z ELBO, a następnie zmienia wagi jego składników, by uzyskać tę praktyczną stratę. Uproszczona strata nie jest sama w sobie oryginalnym ograniczeniem wiarygodności. Podczas generowania algorytm 2 przeskalowuje bieżący obraz, odejmuje wielokrotność przewidzianego szumu i, poza ostatnim krokiem, dodaje nowy szum. Nie odejmuje po prostu predykcji jeden raz, by odzyskać czysty obraz.

Metryki i twierdzenia o kosztach

Funkcja celu treningu, wynik ewaluacji i oszacowanie kosztu odpowiadają na różne pytania. Następne sekcje pokazują, co zlicza każda raportowana liczba i co musi pozostać stałe, by porównanie było użyteczne.

Pass@k: szansa, że co najmniej jedna z k próbek przejdzie testy

pass@k sprawdza, czy co najmniej jeden z kk wygenerowanych programów przechodzi testy. Dopuszcza kilka prób; nie oznacza, że pierwsza odpowiedź modelu jest poprawna.

Praca o Codex losuje niezależnie nn programów dla każdego zadania i zlicza cc przechodzących testy. Następnie rozważa każdy możliwy zbiór kk próbek. Odejmujemy od jedności odsetek zbiorów zawierających wyłącznie niepowodzenia:

pass@⁡k^=1−(n−ck)(nk).\widehat{\operatorname{pass@}k}=1-\frac{\binom{n-c}{k}}{\binom nk}.

Notacja (nk)\binom nk zlicza sposoby wyboru kk elementów spośród nn bez zwracania. To estymata dla jednego zadania; raportowany wynik uśrednia ją po zadaniach. Dla pięciu próbek, dwóch przechodzących testy i trzech nieprzechodzących, istnieje dziesięć par. Tylko trzy zawierają dwa niepowodzenia, więc szacowane pass@2 wynosi 1−3/10=0.71-3/10=0.7.

Siatka pokazuje te dziesięć par w tym hipotetycznym przykładzie. Wszystkie pięć programów rozwiązuje to samo zadanie i jest uruchamiane na tych samych testach. Para odnosi sukces, gdy choć jeden z jej dwóch programów przechodzi testy.

Pięć wylosowanych programów oznaczono literami od A do E. A i B przechodzą testy; C, D i E nie przechodzą. Górny trójkąt siatki zawiera dziesięć możliwych par. Siedem zawiera A lub B i odnosi sukces. Tylko CD, CE i DE nie zawierają programu przechodzącego testy.Pięć wylosowanych programów oznaczono literami od A do E. A i B przechodzą testy; C, D i E nie przechodzą. Górny trójkąt siatki zawiera dziesięć możliwych par. Siedem zawiera A lub B i odnosi sukces. Tylko CD, CE i DE nie zawierają programu przechodzącego testy.

Używaj tego estymatora z całkowitymi liczebnościami 0≤c≤n0\leq c\leq n i 1≤k≤n1\leq k\leq n. Jeśli mniej niż kk próbek nie przechodzi testów, każdy zbiór zawiera próbkę przechodzącą i estymata wynosi 1. Kuszący skrót 1−(1−c/n)k1-(1-c/n)^k jest obciążony; w tym przykładzie daje 0,64. Praca o Codex, §2.1 i rysunek 3, podaje estymator i numerycznie stabilną implementację; szczegółowe omówienie wyjaśnia, dlaczego działa.

Porównuj to samo kk, zadania, testy, prompty i ustawienia generowania. Przejście testów nie dowodzi poprawności dla każdego wejścia. Wdrożony system potrzebuje też sposobu wyboru kandydata przechodzącego testy, na przykład ich uruchomienia; samo wygenerowanie kilku odpowiedzi nie wskazuje dobrej.

Perplexity: efektywna liczba możliwości na token

Perplexity ocenia prawdopodobieństwa przypisywane przez model językowy rzeczywistym kolejnym tokenom podanego tekstu. Na każdej pozycji podaj modelowi wcześniejszy tekst, uzyskaj jego prawdopodobieństwa możliwych kolejnych tokenów i odczytaj prawdopodobieństwo tokenu, który rzeczywiście następuje. Nie potrzeba wygenerowanej odpowiedzi. Wynik przekształca średni ujemny logarytm prawdopodobieństwa w bardziej zrozumiałą skalę:

PPL⁡=exp⁡(−1T∑t=1Tlog⁡pθ(yt∣y<t)).\operatorname{PPL}=\exp\left(-\frac1T\sum_{t=1}^{T}\log p_\theta(y_t\mid y_{<t})\right).

TT to liczba tokenów, yty_t to obserwowany token, a y<ty_{<t} to jego wcześniejszy kontekst. Jeśli model przypisuje każdemu obserwowanemu tokenowi prawdopodobieństwo 1/41/4, perplexity wynosi 4. Jeśli prawdopodobieństwa się różnią, wynik używa ich średniej geometrycznej. Prawdopodobieństwa 0,5, 0,2 i 0,1 dają perplexity około 4,64: taki sam wynik jak przypisanie każdemu tokenowi prawdopodobieństwa 1/4.641/4.64.

Wykresy używają przykładowych prawdopodobieństw dla trzech kolejnych pozycji. Każdy słupek pochodzi z innej predykcji kolejnego tokenu, więc słupki nie muszą sumować się do 1. Prawy wykres zastępuje je jedną stałą wartością; iloczyny są równe, więc perplexity też są równe.

Każdy słupek to prawdopodobieństwo rzeczywistego kolejnego tokenu na osobnej pozycji tekstu. Dwa wykresy porównują przykładowe prawdopodobieństwa 0,5, 0,2 i 0,1 z trzema jednakowymi prawdopodobieństwami około 0,215. Oba iloczyny wynoszą 0,01, a obie perplexity około 4,64. Wspólna linia przerywana oznacza średnią geometryczną prawdopodobieństw.Każdy słupek to prawdopodobieństwo rzeczywistego kolejnego tokenu na osobnej pozycji tekstu. Dwa wykresy porównują przykładowe prawdopodobieństwa 0,5, 0,2 i 0,1 z trzema jednakowymi prawdopodobieństwami około 0,215. Oba iloczyny wynoszą 0,01, a obie perplexity około 4,64. Wspólna linia przerywana oznacza średnią geometryczną prawdopodobieństw.

Niższy wynik jest lepszy dla tego samego tekstu ewaluacyjnego, tokenizatora i sposobu użycia kontekstu. Oznacza, że model przypisał obserwowanemu tekstowi wyższe prawdopodobieństwo, a nie że jego generowane odpowiedzi są bardziej użyteczne lub poprawne. Tokenizatory dzielą tekst różnie, a obsługa okna kontekstowego zmienia prawdopodobieństwa. Przewodnik Hugging Face o perplexity wyjaśnia te warunki porównania.

Big-O: jak koszt rośnie z długością sekwencji

Self-attention przekształca bieżący wektor każdego tokenu w zapytanie, klucz i wartość przy użyciu wyuczonych macierzy. Porównanie zapytania z kluczem ocenia, jak silnie jedna pozycja powinna korzystać z drugiej. Te oceny stają się wagami do łączenia wartości, jak w definicji atencji Transformera, §3.2.

Dla jednej głowy atencji i LL tokenów porównanie każdego zapytania z każdym kluczem tworzy tabelę ocen L×LL\times L. Podwojenie długości sekwencji LL powiększa tę tabelę czterokrotnie. Jeśli każde porównanie jest iloczynem skalarnym długości dd, liczba operacji obliczania ocen rośnie jak O(L2d)O(L^2d). Big-O opisuje asymptotyczne ograniczenie górne; pomija stałe i samo nie przewiduje czasu wykonania.

Siatki pokazują pełną atencję: każda pozycja może korzystać z każdej pozycji. Dłuższa sekwencja dodaje zarówno wiersze zapytań, jak i kolumny kluczy. Każda komórka to jedna ocena; implementacje takie jak FlashAttention mogą obliczać oceny bez przechowywania całej siatki naraz. Atencja przyczynowa wyklucza przyszłe pozycje, ale liczba dozwolonych par nadal rośnie kwadratowo.

Siatka cztery na cztery ma 16 ocen zapytanie–klucz. Siatka osiem na osiem, narysowana z tym samym rozmiarem komórek, ma 64. Podwojenie długości sekwencji podwaja oba wymiary i czterokrotnie zwiększa liczbę ocen pełnej atencji.Siatka cztery na cztery ma 16 ocen zapytanie–klucz. Siatka osiem na osiem, narysowana z tym samym rozmiarem komórek, ma 64. Podwojenie długości sekwencji podwaja oba wymiary i czterokrotnie zwiększa liczbę ocen pełnej atencji.

Różne zmiany atencji zmniejszają różne koszty:

MetodaCo się zmieniaCo nadal rośnie z sekwencją
FlashAttentionOblicza atencję blokami, unikając pełnej tabeli ocen w głównej pamięci GPULiczba operacji obliczania ocen pozostaje kwadratowa
DSATańszy mechanizm oceny wybiera do kk tokenów do pełnej atencjiMechanizm oceny nadal porównuje wszystkie dozwolone pary
MLAPrzechowuje mniej danych atencji na każdy buforowany tokenRozmiar pamięci podręcznej nadal rośnie liniowo z liczbą tokenów

Tych oszczędności nie można traktować jak wymiennych przyspieszeń. Sprawdź, czy praca mierzyła operacje obliczeniowe, przydzieloną pamięć, transfery pamięci czy rozmiar pamięci podręcznej. Sprawdź też, czy mierzyła przetwarzanie promptu czy generowanie tokenów; DeepSeek-V3.2, rysunek 3, podaje te fazy osobno.

Prawa skalowania: dopasowane krzywe o określonym zakresie stosowalności

Prawo skalowania pomaga podzielić budżet treningowy między większy model a więcej danych. Jest krzywą dopasowaną do eksperymentów. Na przykład DeepSeek LLM, §3.2, równanie (4), podaje:

Mopt=0.1715 C0.5243,Dopt=5.8316 C0.4757.\begin{aligned} M_{\mathrm{opt}}&=0.1715\,C^{0.5243},\\ D_{\mathrm{opt}}&=5.8316\,C^{0.4757}. \end{aligned}

CC to koszt obliczeniowy treningu w operacjach zmiennoprzecinkowych. MM to koszt obliczeniowy na token z pominięciem embeddingów, używany tu jako miara rozmiaru modelu; nie jest liczbą parametrów. DD to liczba tokenów treningowych. Indeks dolny „opt” oznacza podział dopasowany tak, by minimalizować stratę walidacyjną przy danym budżecie. Współczynniki 0,1715 i 5,8316 należą do tego dopasowania i tych jednostek.

Poniższe krzywe dzielą dopasowane przydziały przez ich wartości dla budżetu 101710^{17} FLOP, więc każdy dopasowany współczynnik się skraca. Stukrotny wzrost budżetu daje 1000.5243≈11.18100^{0.5243}\approx11.18 razy większy koszt obliczeniowy na token i 1000.4757≈8.94100^{0.4757}\approx8.94 razy więcej tokenów. To dwa końce krzywych na rysunku. Ich mnożniki się mnożą, ponieważ praca definiuje całkowity koszt jako C=MDC=MD.

Krzywe obliczone z dopasowania DeepSeek LLM pokazują stukrotny wzrost kosztu obliczeniowego podzielony na około 11,18 razy większy koszt na token i 8,94 razy więcej tokenów treningowych. Pozioma oś ilorazu kosztu obliczeniowego jest logarytmiczna; pionowa oś mnożnika wzrostu jest liniowa. Pokazane budżety pozostają w raportowanym zakresie dopasowania.Krzywe obliczone z dopasowania DeepSeek LLM pokazują stukrotny wzrost kosztu obliczeniowego podzielony na około 11,18 razy większy koszt na token i 8,94 razy więcej tokenów treningowych. Pozioma oś ilorazu kosztu obliczeniowego jest logarytmiczna; pionowa oś mnożnika wzrostu jest liniowa. Pokazane budżety pozostają w raportowanym zakresie dopasowania.

Ten wniosek dotyczy tych eksperymentów. Dopasowanie obejmuje od 101710^{17} do 3×10203\times10^{20} FLOP. Poza tym zakresem jest ekstrapolacją; nawet w jego obrębie inne dane lub ustawienia treningu mogą zmienić najlepszy podział. Sekcja 3.3 podaje różne wykładniki dla różnych zbiorów danych. Szczegółowe omówienie praw skalowania wyjaśnia jednostki i sprawdza, jak łączą się dopasowane wzory.

Jak czytać równanie, którego seria nie omawia

Dla innego równania użyj sześciu pytań z części 1: określ obiekty, operacje, wymiary, losowanie, wyuczane wielkości i formułowane twierdzenie.

Repozytorium paper-math-skills zawiera instrukcje dla agentów dotyczące pisania i sprawdzania szczegółowego omówienia. Podlinkowane analizy to przykłady takiego wyniku, z definicjami symboli i sprawdzeniami liczbowymi.

Źródła i wersje

Szersze wprowadzenie do podstaw zawiera The Little Book of Generative AI Foundations Tianhua Chena; §3.2 dotyczy ELBO.