Strona główna / Rozdział 1 · Jak model czyta i przewiduje
    Ostatnia zmiana · 4 min czytania

    Użyj z AI

    Wektory i macierze

    Każdy token staje się wektorem liczb, który przechodzi przez kilkadziesiąt warstw. Warstwa to głównie mnożenie tego wektora przez duże, stałe macierze wag, dlatego koszt modelu liczy się w parametrach, bajtach i operacjach.

    Po ludzkuWyobraź sobie stół mikserski z miliardami suwaków. Trening ustawił suwaki raz, potem nikt ich nie rusza. Każde słowo przechodzi przez ten sam stół i wychodzi trochę zmienione.

    Kliknij liczbę w nowym wektorze i zobacz, z jakich mnożeń powstała

    Skala: w Llama 3 70B wektor tokena ma 8192 liczby, a największa macierz warstwy ma 8192 × 28 672, czyli 235 mln mnożeń. Warstw jest 80, po 7 macierzy, więc każdy token to ok. 70 mld mnożeń z dodawaniem.

    Droga tokena przez model

    Kliknij pojęcie i zobacz jego najbliższych sąsiadów w przestrzeni wektorowej

    Prawdziwe wektory mają od kilkuset do kilkunastu tysięcy wymiarów. Kierunki też coś znaczą: w klasycznym word2vec wektor „król − mężczyzna + kobieta” wypada najbliżej „królowej”, jeśli wykluczy się same słowa wejściowe (inaczej zwykle wygrywa „król”).

    Mapa poglądowa: pozycje są ułożone ręcznie, a nie policzone przez model. Słowo „zamek” trafia do tych samych wierszy tabeli embeddingów, czy chodzi o zamek w drzwiach, czy o zamek króla. Znaczenie z kontekstu dokładają dopiero kolejne warstwy. Wektory do wyszukiwania robi osobny model, jeden na cały fragment tekstu (zobacz „Embeddingi i wyszukiwanie wektorowe”).

    Gdzie model przechowuje wiedzę

    Ile pamięci i obliczeń potrzebuje model

    Sprawdź się

    Co dzieje się z tokenem w środku modelu i ile kosztuje jeden token?

    Numer tokena wybiera wektor z tabeli embeddingów. Wektor przechodzi przez kilkadziesiąt bloków: w każdym attention miesza informacje z wcześniejszymi tokenami, a MLP przetwarza token osobno. Wynik każdego kroku dodaje się do wektora (residual stream), z normalizacją przed krokiem. Na końcu mnożenie przez macierz słownika daje logity, a softmax rozkład następnego tokena. Przy krótkim kontekście prawie cały koszt to mnożenie przez stałe macierze wag: ok. 2 operacje na parametr na token, więc model 70B to ok. 140 GFLOP na token, a jego wagi w BF16 zajmują ok. 140 GB. Attention dokłada koszt, który rośnie z długością kontekstu i w Llama 3 70B dogania koszt wag przy prompcie o długości ok. 100 tys. tokenów.

    In English

    The token ID selects a vector from the embedding table. The vector passes through dozens of blocks: in each, attention mixes in information from earlier tokens and an MLP processes the token on its own. Each step’s output is added to the vector (the residual stream), with normalisation before the step. At the end, a multiplication by the vocabulary matrix yields logits, and a softmax gives the next-token distribution. At short context almost all the cost is multiplication by fixed weight matrices: about 2 operations per parameter per token, so a 70B model needs about 140 GFLOP per token and its BF16 weights take about 140 GB. Attention adds a cost that grows with context length and in Llama 3 70B catches up with the weights over a prompt of about 100k tokens.

    Pytania pogłębiające (4)
    Ile obliczeń i pamięci kosztuje jeden token?
    Około 2 operacji na aktywny parametr przy inferencji i 6 przy treningu, plus attention, którego koszt rośnie z długością kontekstu. Pamięć to wagi (parametry × bajty) plus KV cache, który rośnie z długością kontekstu (zobacz „Pętla generowania i KV cache”).
    Gdzie fizycznie jest wiedza modelu?
    W wagach, w dużej mierze w warstwach MLP, które działają jak pamięć skojarzeniowa. Attention przenosi informacje między pozycjami. Fakty są rozproszone i nałożone na siebie, dlatego nową wiedzę taniej podać w kontekście niż wpisywać w wagi (zobacz „RAG” i „Fine-tuning i LoRA”).
    Po co połączenia rezydualne i normalizacja?
    Dodawanie wyniku do wejścia daje gradientowi prostą drogę przez dziesiątki warstw, a każda warstwa uczy się tylko poprawki. Normalizacja przed każdym krokiem (dziś zwykle RMSNorm) trzyma skalę aktywacji w ryzach. Bez tego głębokie modele trenują się niestabilnie.
    Czym embedding tokena różni się od embeddingu do wyszukiwania?
    Embedding tokena to wiersz tabeli, bez kontekstu. Model embeddingowy przepuszcza cały fragment przez transformer i zwraca jeden wektor na tekst. Jest trenowany tak, żeby teksty o podobnym znaczeniu leżały blisko siebie (zobacz „Embeddingi i wyszukiwanie wektorowe”).

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę