DevLearn logo
Skill Up With Me
Interactive Learning
Signing in…

Авторегрессионные модели: предсказание следующего токена

🔒 Sign in to use this
Авторегрессионные модели: прогнозирование следующего токена
ℹ️Токен — минимальная единица текста, которую обрабатывает LLM. Токен – это не буква и не слово, это нечто среднее. Слово невероятно разбивается алгоритмом BPE на три токена: `un` + `believ` + `able`. Современные LLM имеют словари объемом 32 000–128 000 токенов. Эмпирическое правило: 1 токен ≈ 4 символа, 100 токенов ≈ 75 английских слов.
Правило цепочки: по одному условию за раз

Языковая модель учится вычислять P(следующий токен | все предыдущие токены). Это следует непосредственно из правила умножения вероятностей — вероятность последовательности равна произведению условных вероятностей каждой лексемы с учетом всего, что было до нее. Модели, построенные на этом принципе, называются авторегрессионными, поскольку каждый выходной сигнал используется в качестве входных данных для следующего шага.

Формально:

P(t1,t2,,tn)=i=1nP(tit1,,ti1)P(t_1, t_2, \ldots, t_n) = \prod_{i=1}^{n} P(t_i \mid t_1, \ldots, t_{i-1})
Каждый шаг генерации представляет собой один вывод условной вероятности. Чтобы сгенерировать ответ из 200 токенов, модель выполняет этот прямой проход 200 раз.

Один шаг поколения: полный конвейер

Нажмите каждый шаг, чтобы проследить, что происходит внутри модели, когда она выбирает следующий токен:

Нажмите на каждый шаг — один шаг = сгенерирован один токен ▶
📝
Контекст
Все токены на данный момент
🔢
Встраивание
Токены → плотные векторы
🧠
Трансформатор
Внимание к себе + FFN
📊
Логиты
Одно число на токен словаря
📈
Софтмакс
Логиты → вероятности
🎲
Выборка
Выберите следующий жетон
ℹ️Логиты — необработанные числа, выводимые последним слоем модели, по одному на каждый токен словаря. Логиты — это не вероятности: они могут быть любым действительным числом, их сумма не равна 1, они могут быть отрицательными. Чем больше логит, тем больше модель «предпочитает» этот токен. Функция softmax преобразует логиты в правильное распределение вероятностей.
От логитов к вероятностям: softmax

Софтмакс:σ(xi)=exijexj\sigma(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}. Каждый выходной сигнал положителен, сумма всех выходных данных равна 1. Перетащите логиты ниже — обратите внимание, как небольшое изменение одного логита смещает вероятность от всех остальных. Параметр температуры T делит все логиты до softmax: низкий T увеличивает резкость распределения, высокий T выравнивает его.

Перетащите логиты или измените температуру — наблюдайте за изменением вероятностей
SOFTMAX · 6 classes
z=3.8крыша
z=3.2диван
z=2.4пол
z=1.8окно
z=0.9кровать
z=0.3вода
softmaxT=1.0
p=0.50крыша
p=0.27диван
p=0.12пол
p=0.07окно
p=0.03кровать
p=0.01вода
T = 1.00
T→0
winner-
takes-all
T→∞
uniform
Entropy H = 1.878 / 2.585
softmax(z)ᵢ = exp(zᵢ/T) / Σⱼexp(zⱼ/T). Winner: крыша · p = 0.496
Цикл генерации в коде
Нажмите на строку, чтобы увидеть ее объяснение ▼
python
1
def generate(model, prompt_tokens, max_new=50):
2
    tokens = list(prompt_tokens)              # context
3
    for _ in range(max_new):
4
        logits = model(tokens)               # [vocab_size]
5
        probs  = softmax(logits)             # sum = 1.0
6
        next_token = sample(probs)           # pick one
7
        tokens.append(next_token)            # context grows
8
        if next_token == EOS_TOKEN: break    # stop signal
9
    return tokens
Наблюдайте за ростом контекста: токен за токеном

Каждая полоса показывает вероятность, которую модель назначила этому токену-кандидату в этой позиции. Зеленая полоса — это та, которая была выбрана и добавлена ​​в контекст.

Нажмите «Следующий токен» — наблюдайте, как растет контекст и меняется распределение ▶
Theкотсиделна|
ℹ️Контекстное окно — максимальное количество токенов, которые модель может «видеть» за один прямой проход. GPT-2: 1 024 токена. GPT-4 Turbo: 128 000. Клод 3: до 200 000. Все, что за окном, модели незаметно. Расширение контекста обходится дорого — сложность преобразования внимания составляет O(n²) по длине последовательности.

Ключевые выводы

Авторегрессионная языковая модель генерирует текст путем многократного прогнозирования единственного наиболее вероятного следующего токена с учетом всех предыдущих токенов. Каждый шаг генерации представляет собой один полный проход вперед по модели — короткого пути нет.
Токен ≈ 4 символа. Алгоритм BPE создает словарь из 32 000–128 000 подслов.
Модель предсказывает P(tᵢ | t₁…tᵢ₋₁) — цепное правило превращает это в вероятность любой последовательности
Конвейер: Контекст → Трансформатор → Логиты → Softmax → Вероятности → Образец → Новый токен.
Логиты — это необработанные оценки, а не вероятности. Softmax конвертирует их: все ≥ 0, сумма = 1
Генерация является последовательной — один прямой проход на каждый токен. Ответ на 200 токенов стоит 200 пропусков.
🔒 Sign in to use this