Robocikowo>ROBOCIKOWO
Trening

CLM

2018AktywnyOpublikowano: 28 maja 2026Aktualizacja: 28 maja 2026Opublikowany
Cel treningowy modeli językowych polegający na przewidywaniu następnego tokenu sekwencji wyłącznie na podstawie tokenów poprzednich. Podstawa GPT i większości współczesnych dekoder-only LLM.
Kluczowa innowacja
Sformułowanie modelowania języka jako autoregresyjnej predykcji następnego tokenu na podstawie wyłącznie poprzednich tokenów (lewy kontekst), co umożliwia samonadzorowany trening generatywnych modeli sekwencyjnych na ogromnych korpusach tekstu bez ręcznych etykiet.
Kategoria
Trening
Poziom abstrakcji
Paradygmat
Poziom operacji
TreningModel
Zastosowania
Pretrening generatywnych dużych modeli językowych (LLM)Generowanie tekstu (chat, asystenci pisania, ukończanie kodu)Code generation (Copilot, CodeParrot, StarCoder)Tłumaczenie maszynowe w trybie decoder-onlyStreszczanie i parafrazowanieFew-shot / zero-shot learning przez promptingTworzenie embeddingów ostatniej warstwy do downstream

Jak działa

Tekst jest najpierw tokenizowany (np. BPE / SentencePiece) na sekwencję x = (x₁,…,x_T). Model — najczęściej dekoder-only Transformer — przekształca embedingi tokenów wejściowych przez stos warstw, w których self-attention używa maski przyczynowej: pozycja t może patrzeć tylko na pozycje ≤ t. Na wyjściu warstwa liniowa rzutuje stany ukryte na logity nad słownikiem; softmax daje rozkład P(x_t | x_<t). Stratą jest średnia cross-entropy między tym rozkładem a rzeczywistym kolejnym tokenem (teacher forcing — w treningu jako kontekst zawsze podawany jest ground-truth x_<t, nie własne predykcje modelu). Cały trening jest samonadzorowany: etykietą dla pozycji t jest po prostu token x_t z korpusu, więc nie ma potrzeby ręcznego anotowania. Na inferencji model generuje autoregresyjnie: próbkuje (greedy / top-k / top-p / temperature) x_t z rozkładu, dokleja do kontekstu i powtarza krok, aż osiągnie token końca lub limit długości.

Rozwiązany problem

Jak uczyć generatywne modele języka na nieoznakowanych korpusach tekstu i jak na etapie inferencji generować nowe sekwencje token po tokenie. CLM dostarcza prostego, samonadzorowanego celu, który skaluje się z wielkością danych i modelu, a jednocześnie naturalnie odpowiada generowaniu autoregresyjnemu w produkcji.

Komponenty

TokenizerWejście / wyjście

Konwertuje surowy tekst na dyskretne ID tokenów ze słownika modelu (zwykle BPE / WordPiece / SentencePiece).

Causal attention maskConstraint w self-attention

Trójkątna maska zerująca uwagę do pozycji większych niż bieżąca — kluczowy mechanizm wymuszający warunkowanie wyłącznie na lewym kontekście.

Decoder-only Transformer stackModelowanie kontekstu

Stos warstw maskowanej self-attention + FFN, który przetwarza embedingi tokenów w stany ukryte.

LM head (linear projection + softmax)Wyjście modelu

Liniowa projekcja stanów ukrytych na logity nad słownikiem; softmax produkuje rozkład prawdopodobieństwa P(x_t | x_<t).

Cross-entropy next-token lossFunkcja straty

Średnia ujemna log-likelihood prawdziwego następnego tokenu na każdej pozycji. Definiuje cel optymalizacji CLM.

Implementacja

Pułapki implementacyjne
Brak / wadliwa maska przyczynowaKrytyczna

Jeśli maska look-ahead nie jest poprawnie zastosowana w self-attention, model "podgląda" przyszłe tokeny — strata cross-entropy spada do zera (perfect cheating), ale generacja jest bezużyteczna.

Rozwiązanie:Unit-testować, że dla pozycji t logity nie zmieniają się przy permutacji tokenów x_{>t}. Używać sprawdzonych implementacji (Flash/SDPA z is_causal=True).
Train/inference mismatch (exposure bias)Średnia

Trening z teacher forcing zawsze pokazuje modelowi ground-truth, ale inferencja warunkuje na własnych predykcjach. Błędy kumulują się autoregresyjnie.

Rozwiązanie:Skalowanie modelu, lepsza tokenizacja, sampling strategies (top-p, temperature), RLHF i instruction tuning łagodzą problem; scheduled sampling rzadko stosowany w LLM.
Padding tokens wliczane do stratyŚrednia

Bez maskowania paddingu w funkcji straty model "uczy się" przewidywać tokeny PAD, co wypacza metryki i zużywa pojemność.

Rozwiązanie:Ustawić label = -100 (ignore_index w PyTorch) dla pozycji paddingu lub używać attention mask konsekwentnie.
Shift wejście/etykieta o jeden tokenWysoka

CLM wymaga, by etykieta na pozycji t była tokenem x_{t+1}. Pomyłka w shifcie powoduje, że model uczy się identycznościowego mapowania.

Rozwiązanie:Używać sprawdzonych collatorów (np. DataCollatorForLanguageModeling z mlm=False) — automatycznie obsługują shift.

Ewolucja

Oryginalny paper · 2018 · OpenAI Technical Report 2018 · Alec Radford
Improving Language Understanding by Generative Pre-Training
Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever
1951
Shannon — entropia i predykcja w języku angielskim

Claude Shannon formalizuje predykcję następnej litery / słowa jako miarę entropii języka — informacyjno-teoretyczna pra-podstawa modelowania języka.

2003
Bengio et al. — Neural Probabilistic Language Model
Punkt przełomowy

Pierwszy neuronowy model języka oparty na embedingach słów i sieci feedforward, przewidujący następne słowo po n-gramowym kontekście.

2010
Mikolov — RNN Language Model

Rekurencyjne modele języka (RNN LM, później LSTM) dominują CLM przez kolejną dekadę — w pełni autoregresyjne, ale sekwencyjne także w treningu.

2017
Transformer (Vaswani et al.) umożliwia równoległy trening CLM
Punkt przełomowy

Self-attention z maską przyczynową pozwala policzyć stratę CLM dla całej sekwencji w jednym forwardzie — usuwa rekurencyjne wąskie gardło RNN.

2018
GPT-1 — CLM pretrening jako uniwersalny cel
Punkt przełomowy

Radford et al. pokazują, że dekoder-only Transformer pretrenowany w CLM, a następnie fine-tunowany, bije zadaniowo-specyficzne architektury.

2020
GPT-3 — skalowanie CLM do 175B parametrów
Punkt przełomowy

Brown et al. demonstrują emergentne zdolności few-shot przy ekstremalnym skalowaniu CLM, ustanawiając go jako standard pretreningu LLM.

2023
LLaMA, Mistral, Qwen — open-weight LLM oparte na CLM

CLM pozostaje dominującym celem pretreningu w otwartych rodzinach modeli; warianty (RWKV, Mamba) eksperymentują z architekturą, ale zachowują cel CLM.

Hiperparametry (konfigurowalne osie)

Długość kontekstuKrytyczna

Maksymalna długość okna kontekstowego, na którym model warunkuje predykcję — fundamentalny parametr CLM Transformera.

Rozmiar słownikaWysoka

Liczba unikalnych tokenów w słowniku tokenizera; determinuje rozmiar warstwy embeddings i LM head.

Schemat tokenizacjiWysoka

Algorytm subword (BPE, WordPiece, SentencePiece, Unigram) wpływa na kompresję tekstu i jakość uczenia.

Teacher forcingŚrednia

W standardowym CLM zawsze włączone w treningu (kontekst = ground truth). Wyłączenie / scheduled sampling = eksperymenty z train/inference mismatch.

Złożoność obliczeniowa

Złożoność czasowa: O(T² · d) per forward pass. Złożoność przestrzenna: O(T² + T · d).

Paradygmat wykonania

Tryb główny
Gęsty

Standardowy CLM Transformer to model gęsty — wszystkie parametry aktywne dla każdego tokenu. Warianty MoE łączą CLM z conditional computation, ale nie są częścią rdzennej definicji CLM.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
Częściowo równoległy

Trening jest masowo równoległy — wszystkie pozycje sekwencji obliczane są jednocześnie dzięki teacher forcing (maska przyczynowa pozwala równolegle policzyć logity dla każdej pozycji t i policzyć łączną stratę). Inferencja autoregresyjna jest natomiast sekwencyjna w czasie — token x_t musi być wygenerowany przed x_{t+1}.

Zakres
TreningPomiędzy tokenamiPomiędzy urządzeniami

Wymagania sprzętowe

Podstawowe

Trening i inferencja CLM Transformera są zdominowane przez gęste mnożenia macierzy (attention + MLP), idealnie pasujące do tensor cores (FP16/BF16/FP8).

Podstawowe

TPU pody Google'a były historycznie używane do treningu LM (T5, PaLM, Gemini); systolic array świetnie obsługuje matmul w dense Transformerze.

Możliwe

Inferencja małych CLM-LLM (np. 1–7B kwantyzowanych do 4-bit, llama.cpp) jest praktycznie wykonalna na CPU AVX/AVX-512, choć wolniej niż na GPU.