Несмотря на весь хайп, интерфейсы, "разумность" и разговорный стиль и прочее, о чём вы можете прочитать в Интернете, большие языковые модели вроде OpenAI GPT-4 делают на самом деле одну предельно простую вещь:
Они предсказывают следующий токен.
И всё.
Ни "понимания", ни "мышления" в человеческом смысле в формуле нет. Есть последовательность символов – и задача продолжить её статистически наиболее правдоподобным образом.
Но именно эта простая формулировка, доведённая до гигантских масштабов данных и параметров, и создаёт ту магию, которая сводит с ума любого, кто сталкивался с работой LLM.
Формальная постановка задачи
Пусть у нас есть последовательность токенов:
x1,x2,x3,...,xt−1 Модель должна оценить вероятность следующего токена:
P(xt∣x1,x2,...,xt−1) Это и есть задача next-token prediction.
Если последовательность – это текст:
Модель должна оценить вероятности для:
И выбрать (или сэмплировать) наиболее вероятный вариант.
Разложение вероятности всей последовательности
LLM обучается максимизировать вероятность всей последовательности текста:
P(x1,x2,...,xn) По правилу цепочки вероятностей:
P(x1,...,xn)=t=1∏nP(xt∣x1,...,xt−1) То есть вся "магия текста" – это всего лишь произведение вероятностей каждого следующего токена. Приношу свои извинения, если ненароком разрушил ваши иллюзии относительно того, как работают LLM.
Но вот в чём парадокс: объяснение механизма не уничтожает феномен. Музыка – это колебания воздуха. Картина — пигмент на холсте. Любовь — биохимия. И всё же ни одно из этих описаний не делает переживание менее реальным для того, кто его испытывает.
Так что магия никуда не исчезает. Она просто меняет адрес: не внутри модели, а в столкновении модели и человека. Смысл возникает не в матрицах – а в вашем восприятии.
И если что-то и разрушилось, то, возможно, только иллюзия мистики. А восхищение сложностью – осталось.
Что такое токен?
Важно понимать: модель работает не со словами, а с токенами.
Токен может быть:
Например:
может разбиться на:
Модель предсказывает именно следующий токен, а не слово целиком.
Архитектура: где появляется вероятность?
Внутри LLM (обычно это Transformer) происходит следующее:
Несколько слоёв self-attention
На выходе – вектор размерности d_model
Линейная проекция в размер словаря
Схема:
Линейная проекция в словарь
Пусть размер скрытого состояния:
ht∈Rd Размер словаря:
∣V∣=50000 Последний слой – это просто линейная операция:
z=Wht+b где:
W∈R∣V∣×d
z∈R∣V∣
Каждый элемент zi – это logit для i-го токена.
Softmax – превращаем logits в вероятности
Softmax определён как:
Pi=∑j=1∣V∣ezjezi Это даёт распределение вероятностей по словарю.
Почему экспонента?
Она:
усиливает разницу между значениями
гарантирует положительность
делает нормировку удобной
28.1 Распределение вероятностей после softmax Температура и контроль креативности
Перед softmax можно ввести температуру T:
Pi=∑jezj/Tezi/T T<1 – распределение становится более "жёстким"
T>1 – более равномерным
Это напрямую влияет на креативность генерации.
Обучение – что именно минимизируется?
Используется cross-entropy loss:
L=−logP(xttrue) Если правильный токен имеет высокую вероятность – loss маленький.
Вся тренировка – это:
Максимизировать вероятность правильного следующего токена.
Никаких "ответов", "смыслов" или "истины" в формуле нет.
Контекст – откуда берётся "понимание"?
Модель не хранит знания в явном виде.
Она видит:
x1,...,xt−1 Self-attention позволяет каждому токену учитывать все предыдущие.
Если раньше было:
то токен France влияет на скрытое состояние последнего токена через attention.
Контекст – это просто информация, закодированная в векторе ht.
28.2 Схема внимания на предыдущие токены Почему это работает так хорошо?
Потому что язык статистически структурирован.
Если обучать модель на миллиардах текстов, она:
усваивает грамматику как статистический паттерн
усваивает факты как устойчивые последовательности
усваивает стиль как распределение вероятностей
То, что выглядит как "понимание", – это устойчивые вероятностные закономерности.
Минимальный пример next-token модели на PHP
Сделаем игрушечную модель на основе n-грамм.
Шаг 1 – подсчёт переходов
Шаг 2 – превращаем в вероятности
Шаг 3 – генерация
Это простейшая модель next-token prediction.
LLM делает то же самое, только:
контекст не 1 слово, а тысячи токенов
вместо таблицы – миллиарды параметров
вместо частот – нейросетевые веса
Важный философский вывод
LLM не "знает" ответ.
Она оценивает:
P(token∣context) Когда вы задаёте вопрос, модель:
Предсказывает наиболее вероятное продолжение
Ответ – это последовательность наиболее вероятных токенов.
Почему из next-token prediction возникает reasoning?
Потому что:
логические цепочки – это тоже устойчивые текстовые паттерны
доказательства, рассуждения и шаги решения встречаются в обучающих данных
модель учится продолжать их
Она не "думает" – она продолжает текст, который похож на рассуждение.
И этого (о чудо!) оказывается достаточно, чтобы:
Связь с предыдущими главами
Attention объясняет, как учитывается контекст
Backpropagation объясняет, как настраиваются веса
Перцептрон и линейные комбинации – основа logits
LLM – это просто огромная композиция знакомых нам математических блоков.
Ключевая идея главы
Большая языковая модель – это вероятностный механизм продолжения последовательности.
Всё остальное – масштаб, данные и архитектурные детали.
Если это глубоко понять, становится ясно:
почему возникают галлюцинации
почему prompt engineering работает
почему temperature меняет стиль
почему fine-tuning меняет поведение
И становится понятно главное:
LLM – это не магия.
Это предсказание следующего токена, доведённое до экстремального масштаба.