Skip to main content

Предсказание Следующего Токена (Next-Token Prediction)

Фундаментальный механизм авторегрессионных больших языковых моделей (LLM). Расчет логитов, функция Softmax, влияние температуры и семплинга (Top-P/Top-K). Объяснение, почему генерация текста является последовательным процессом O(N) и как просматривать вероятности через API.

1. Обзор концепции и системная проблема

Когда вы наблюдаете, как искусственный интеллект проектирует микросервисную архитектуру или составляет поэму, легко поверить, что внутри компьютера возникла сознание с собственным внутренним монологом.

Однако на уровне вычислений под капотом любой авторегрессионной LLM (GPT-4o, Claude 3.7, Llama 3.3, DeepSeek R1) выполняется один итерационный цикл:

$$P(W) = \prod_{t=1}^{T} P(w_t \mid w_1, w_2, \dots, w_{t-1})$$

  1. Прочитать входную последовательность токенов $w_1, \dots, w_{t-1}$.
  2. Прогнать векторы через слои Transformer (Self-Attention + MLP).
  3. Рассчитать числовой балл (Logit) для каждого из 128 000 токенов в словаре.
  4. Применить Softmax и алгоритмы отбора (Temperature, Top-P), выбрав один токен $w_t$.
  5. Добавить $w_t$ к контексту и повторить шаг.

Ментальная модель: это не оракул, который заранее знает конечную мысль, а статистический генератор траектории, который делает шаг и лишь после этого видит, куда ступить дальше.

┌─────────────────────────────────────────────────────────────┐
│              МАТЕМАТИЧЕСКИЙ КОНВЕЙЕР ОДНОГО ШАГА            │
├─────────────────────────────────────────────────────────────┤
│ 1. Входной контекст: «Киев — столица»                       │
│    Векторизация токенов ➔ Проход через слои трансформера    │
├─────────────────────────────────────────────────────────────┤
│ 2. Выходной слой (Unembedding): 128 000 логитов              │
│    • Токен " Украины"   ➔ Logit: +14.2                      │
│    • Токен " стародавняя" ➔ Logit: +8.1                      │
│    • Токен " Франции"   ➔ Logit: -4.5                       │
├─────────────────────────────────────────────────────────────┤
│ 3. Нормализация Softmax(Logits / Temperature):              │
│    • " Украины"   ➔ 94.2%                                   │
│    • " стародавняя" ➔ 5.1%                                   │
│    • " Франции"   ➔ 0.0001%                                 │
├─────────────────────────────────────────────────────────────┤
│ 4. Семплинг: выбор токена " Украины"                        │
│    Новый контекст: «Киев — столица Украины» ➔ Следующий шаг│
└─────────────────────────────────────────────────────────────┘

2. Реализация семплинга на Python и инспекция через CLI

Вот как выглядит расчет вероятностей следующего токена на языке Python с учетом температуры:

import numpy as np

def compute_next_token_probs(logits: np.ndarray, temperature: float = 0.7) -> np.ndarray:
    # 1. Масштабирование температурой
    scaled = logits / max(temperature, 1e-4)
    # 2. Стабильный Softmax (вычитание максимума для предотвращения overflow)
    exp_logits = np.exp(scaled - np.max(scaled))
    probs = exp_logits / np.sum(exp_logits)
    return probs

# Пример вызова: 4 возможных токена
mock_logits = np.array([12.5, 9.1, 4.0, 1.2])
print("Вероятности токенов:", np.round(compute_next_token_probs(mock_logits, temperature=0.7), 4))

Как увидеть сырые вероятности токенов через cURL в терминале:

Вы можете попросить API вернуть точные логические вероятности (logprobs), чтобы увидеть альтернативы, которые рассматривала модель:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Столица Франции — это"}],
    "max_tokens": 1,
    "logprobs": true,
    "top_logprobs": 3
  }'

В ответе JSON параметр top_logprobs покажет точные математические баллы для вариантов Париж, город и т.д.


3. Почему Next-Token приводит к галлюцинациям и как это лечить

Поскольку модель генерирует текст локально "здесь и сейчас", она склонна попадать в статистические ловушки:

  1. Ошибка обязательства (Early Commitment): Если на первых двух словах модель случайно выбрала неудачный токен, все последующие токены будут пытаться оправдать этот ошибочный выбор вместо признания ошибки.
  2. Невозможность обратного шага (No Backtracking): Обычный инференс не может стереть уже сгенерированное слово.
  3. Почему модели размышлений (Reasoning Models / DeepSeek R1 / o3) работают лучше: Они используют цепочки размышлений (<thought>...</thought>), где перед предоставлением окончательного ответа генерируют сотни токенов внутреннего анализа и самопроверки.

4. Практический вывод для разработчика

Помните об авторегрессионном конвейере:

  • Подсказки вроде "Подумай перед ответом" или "Опиши шаг за шагом" работают не потому, что ИИ становится внимательнее, а потому, что вы заставляете его сгенерировать токены размышлений, которые физически становятся входным контекстом для финального токена с правильным ответом!
/ Частые вопросыSchema.org FAQPage

FAQ: Предсказание Следующего Токена (Next-Token Prediction)

Чтобы с математической точностью предсказывать следующий токен в коде или научной статье, модель не может полагаться на поверхностную статистику слов: во время предобучения на триллионах токенов она была вынуждена сформировать в своих весах сжатую модель мира, причинно-следственные связи и алгоритмическую логику.
/ Внутренняя перелинковка
Все термины
Модели и Инференс

Токены простыми словами (Сколько слов в токене)

Базовая единица измерения текста в языковых моделях. Объяснение того, как слова разбиваются на токены, почему это влияет на стоимость запросов и почему украинские слова потребляют больше токенов, чем английские.

Читать термин
Модели и Инференс

Температура Генерации (Ползунок Креативности и Хаоса)

Ключевой числовой параметр генерации текста (обычно от 0.0 до 1.0 или 2.0). Определяет степень непредсказуемости выбора следующего токена: от строгой детерминированной математики до свободного полета фантазии.

Читать термин
Модели и Инференс

Архитектура Transformer

Архитектура нейронных сетей, представленная исследователями Google в 2017 году в статье «Attention Is All You Need». Основополагающая для всех современных языковых моделей (GPT, Claude, Gemini, Llama), которая заменила медленные рекуррентные сети и научилась параллельно обрабатывать весь текст одновременно.

Читать термин
Модели и Инференс

KV-кэш (Key-Value Cache)

Оптимизация памяти в моделях Transformer, которая сохраняет векторы ключей и значений (Keys and Values) уже обработанных токенов в быстрой памяти GPU. Позволяет генерировать каждое следующее слово мгновенно, но стремительно растет в размере с каждым новым сообщением в чате.

Читать термин