English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gość
1 / ?
powrót do lekcji

Co Przewiduje Model Językowy

Silnik Kontynuacji Prawdopodobieństwa

Model językowy pobiera sekwencję tokenów i przypisuje rozkład prawdopodobieństwa do tego, jaki token nastąpi dalej. Podaj mu the cat sat on the a on wyda prawdopodobieństwa na całe słownictwo: wysoka masa na mat, floor, couch; niska masa na xylophone, Tuesday.


Próbkowanie tego rozkładu, dołączanie tokenu i ponowne podanie: ta pętla generuje tekst token po tokenie. Generacja autoregresyjna, nazwana tak, ponieważ każdy krok regresuje na swoim własnym wcześniejszym wyjściu.


Trzy liczby definiują model językowy


Rozmiar słownictwa (V). Ile różnych tokenów model może wygenerować. ANDREA-12M używało 4 353 tokenów; ANDREA-120M używa 8 449.


Okno kontekstu (T). Ile tokenów mieści się w jednym przejściu w przód. Modele ANDREA używają T = 1 024.


Liczba parametrów (P). Ile wyuczonych wag znajduje się wewnątrz. 12M, 120M i 480M nazywają rodzinę według P.


Rodzina trzech


Wariantd_modelGłowyWarstwyKontekstParametry
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Trzy pokrętła skalują: d_model (szerokość każdego wewnętrznego wektora), n_layer (głębokość ułożonych bloków transformatorów), n_head (równoległe projekcje uwagi). Słownictwo i kontekst pozostają stałe w rodzinie.

Czytanie tabeli rodziny

Porównaj ANDREA-12M (d_model=384, 6 warstw, 12 głów) z ANDREA-120M (d_model=768, 12 warstw, 12 głów). Nazwij dwie osie architektoniczne, które skalują się od 12M do 120M, oraz jedną, która pozostaje stała. Jednozdaniowy powód dla każdego wyboru skalowania pomaga.

Dlaczego małe ma znaczenie

Ograniczenie jako wyzwolenie

Duże modele językowe z setkami miliardów parametrów wymagają tysięcy GPU, zastrzeżonych zbiorów danych i korporacyjnych budżetów. Niewiele osób może trenować taki model. Niewiele osób może go naprawiać.


Mały model językowy na jednym GPU odwraca to. Każdy z 4090 (lub 3060) może odtworzyć ANDREA z otwartych danych. Przepis treningowy podwaja się jako karta modelu. Otwarty kod, otwarte wagi, otwarte dane; pełna proweniencja w 72 godziny obliczeń.


Pojemność vs Jakość

Mniejsze modele nie mogą zapamiętać swojego korpusu treningowego. ANDREA-12M, z 12,8M parametrów, nie ma pojemności do przechowywania treści faktograficznych; uczy się struktury tur, rozkładu słownictwa i kształtu odpowiedzi. ANDREA-120M, z 10× większą pojemnością, uczy się przywoływania faktów, spójności wieloparagrafowej i szerokości dziedzinowej (zweryfikowane przez zewnętrzną ocenę na 9,5/10 w próbkach biologii i przetwarzania sygnałów).


Wniosek: pojemność ustala sufit. Program nauczania decyduje, czy sufit zostanie osiągnięty. Działania 14-23 obejmują program nauczania. [TITLE decoder_only/]

Trzy odmiany Transformera

Enkoder, Dekoder, Oba

Oryginalny Transformer (Vaswani i in., 2017) zawierał enkoder i dekoder, sklejone razem do tłumaczenia. Trzy linie architektoniczne wywodzą się z tego artykułu:


Tylko enkoder (linia BERT). Dwukierunkowa uwaga, bez maski kauzalnej. Zoptymalizowany do klasyfikacji, nie generowania. Token widzi zarówno swoją przeszłość, jak i przyszłość podczas treningu.


Encoder-decoder (T5, BART). Enkoder odczytuje wejście; dekoder generuje wyjście, zwracając uwagę na enkoder za pomocą cross-attention. Używany do tłumaczenia, podsumowywania.


Decoder-only (GPT, ANDREA). Causal mask: każdy token widzi tylko swoją przeszłość. Trening do przewidywania następnego tokenu. Generacja jest darmowa; trening i inferencja dzielą ten sam forward pass.


Dlaczego Decoder-Only Wygrywa na Jednym GPU

Trzy powody:


1. Pojedynczy cel. Przewidywanie następnego tokenu działa na dowolnym tekście. Nie potrzebne sparowane źródło/docelowe.

2. Symetria treningu i inferencji. Ten sam forward pass, brak specjalnej logiki generowania.

3. Prostota pamięci. Brak cross-attention; jeden stos warstw; jeden przepływ aktywacji.


ANDREA dziedziczy wybór decoder-only z microGPT, który odziedziczył z nanoGPT, który odziedziczył z GPT-2. Linia dziedziczenia pozostaje standardowa; to, co się zmienia, tkwi w tokenizacji, infrastrukturze treningowej i curriculum.

Dlaczego Decoder-Only dla ANDREA

Podaj jeden powód z perspektywy danych treningowych i jeden powód z perspektywy zachowania inferencji, dlaczego ANDREA używa transformera decoder-only zamiast encoder-decoder jak T5.

Co zmieści się w 24 GB

Bajty na parametr

RTX 4090 ma 24 GB VRAM. Trening ANDREA-12M zużył 1,4 GB. ANDREA-120M zużył znacznie więcej. Różnica wynika z prostego ćwiczenia księgowego: każdy parametr pojawia się wielokrotnie w pamięci podczas treningu.


Dla każdego parametru, trening przechowuje:

- Samą wagę (1× waga)

- Pierwsza chwila Adama (m): ten sam kształt co waga (1× waga)

- Druga chwila Adama (v): ten sam kształt co waga (1× waga)

- Gradienty: ten sam kształt co waga (1× waga)

- Aktywacje i tymczasowe: ~2-4× waga (zależnie od batcha i kontekstu)


Łącznie: ~6-8× liczba wag, w bajtach zależnie od precyzji.


Precyzja Mnoży Wszystko


PrecyzjaBajty/paramRazem dla 120M wagUwagi
FP324480 MBBazowa; najbezpieczniejsza, najwolniejsza
FP162240 MBcuBLAS, połowa pamięci
FP8 E4M31120 MBTensor cores, ryzyko NaN

Pomnóż przez 6-8× dla pełnego zużycia pamięci podczas treningu. ANDREA-120M trenuje komfortowo w FP16 (~2 GB na wagi + optimizer + gradienty); FP8 E4M3 skraca czas treningu o połowę na tensor cores RTX 4090.


Aktywność 13 (grow_a_language_model_precision) omawia szczegółowo kompromisy precyzji FP.

Rozmiar stanu optymalizatora ANDREA-120M

ANDREA-120M ma ~120 000 000 parametrów. Każda waga FP32 zajmuje 4 bajty. AdamW przechowuje dwa dodatkowe floaty stanu optymalizatora na wagę (m, v). Oblicz: (a) tylko wagi w FP32, w MB; (b) wagi + stan optymalizatora w FP32, w MB; (c) wagi + stan optymalizatora w FP16, w MB. Pokaż obliczenia.

Dwadzieścia Pięć Aktywności

Dwie Połówki

Ten kurs dzieli się czysto. Pierwsza połowa obejmuje to, czego microGPT nauczył dziedzinę: transformator, który działa na jednym GPU. Druga połowa obejmuje rzeczywisty wkład ANDREA: program nauczania, który się uczy.


Połowa 1: Transformator na Jednym GPU (aktywności 2-13)


#AktywnośćEtap
2Tokenizator morfemów Harrisasegmentacja dystrybucyjna, słownik 256+N+1
3Wyrównanie tokenizer-dietpunkt nasycenia, dlaczego 12M zmarnowało 63,6%
4Embeddingi & pozycjawyuczone wyszukiwanie tokenu + pozycji
5Skalowana uwaga iloczynu skalarnegoQ·Kᵀ/√d, maska kauzalna, softmax
6Uwaga wielogłowicowapodział na głowice, równoległe projekcje
7Blok transformatoraMLP, resztki, normalizacja warstwowa
8Entropia krzyżowa & perpleksjalog-prawdopodobieństwo, strata SMMA
9Backprop w niestandardowym CUDAreguła łańcuchowa w microgpt_cuda.cu
10AdamWdekoplowany rozkład wag; dlaczego klasyczny Adam umarł
11Rozgrzewka LR + kosinusowy zanikrampa 2000 kroków; dlaczego natychmiastowy pik niszczy 120M
12Przycinanie gradientówglobalna norma L2; 3 jądra CUDA
13FP32 / FP16 / FP8 E4M3kompromisy precyzji; tensor cores

Połowa 2: Program nauczania, który się uczy (aktywności 14-24)


#AktywnośćPokonany
14Wieloramienni bandyciUCB1, eksploracja vs eksploatacja
15Kontrola kości w fazachfazy 7/14/21/28/42, kości 1d3/1d4
16Atrybucja nagród & EMAEMA straty na źródło, skalowanie 1000×
17Podłogi źródeł & kara epok1/(1+epoki) zapobiega zapamiętywaniu
18Bonus za pokrycieśledzenie na poziomie dokumentu, 1.3× świeżość
19Rozgrzewka curriculum7 źródeł czat/proza pierwsze 20K kroków
20Filtrowanie po kształcie, nie znakachhas_system_prompt_shape()
21Wczesne zatrzymywanie z bramkowaniem koherencjibigram/trigram/word/char auto-halt
22Checkpoint, wznowienie, sygnałyformat, SIGTERM/SIGUSR1, ciągłość loss.json
23Audyt próbek & zewnętrzna ocenaczytanie uruchomienia, terytorium 9.5/10
24Od microGPT do ANDREA-120Mzałamanie v1, poprawki v2, łatka v2.5, poler v3

Plus towarzyszący: geometry_of_andrea postrzega każdą warstwę jako geometrię (przestrzeń osadzeń, uwaga jako projekcja, powierzchnia straty, bandit jako spacer po dyskretnym sympleksie).


Sugerowana kolejność

Aktywności 2-13 budują działający transformator. Przeskocz do drugiej połowy, jeśli trenowałeś już transformatory; wróć, gdy ciekawość weźmie górę.


Każda aktywność jest samodzielna, w miarę możliwości. Odwołania matematyczne odnoszą się do wcześniejszych aktywności po nazwie (zobacz aktywność 5: skalowane iloczynowe attention). Odwołania do kodu wskazują na microgpt/microgpt_cuda.cu & microgpt/training_proxy.py w ~/git/uncloseai-cli/.

Od Czego Zaczniesz?

Patrząc na 24 aktywności + towarzyszącą geometrię, podaj jedną aktywność, od której chcesz zacząć & jeden powód: luka w wiedzy, znaczenie zawodowe lub czysta ciekawość. Nie ma złej odpowiedzi; ścieżka przez kurs należy do Ciebie.