Ты пишешь вопрос и нажимаешь Enter. Через секунду начинают появляться слова. Кажется, будто кто-то думает и печатает. Но внутри не происходит ничего похожего на мышление — зато происходит кое-что куда более странное и интересное.


Главное заблуждение

Большинство людей представляют языковую модель как умную базу данных: спросил — она нашла ответ и выдала. Это не так.

LLM — это машина, которая предсказывает следующий токен. Всё. Из этой одной простой задачи, повторённой миллиарды раз на триллионах слов текста, вырастает нечто, которое умеет объяснять квантовую физику, писать код и иногда убедительно врать.

Давай разберёмся, как именно.


Шаг 1. Твой текст перестаёт быть текстом

Первое, что происходит с твоим сообщением — оно разбивается на токены.

Токен — это не слово и не буква. Это статистически удобная единица текста. Слово «кот» — скорее всего один токен. Слово «непроизносимый» — несколько. Редкое имя из трёх букв может оказаться двумя токенами, а частый суффикс «-tion» в английском — одним.

Токенизация строится на частотности. Алгоритм BPE (Byte Pair Encoding) смотрит на огромный корпус текста и объединяет самые частые пары символов в один токен. Получается словарь из 50–100 тысяч токенов.

На практике это объясняет несколько странностей. Модели хуже работают с редкими языками — там каждое слово разбивается на много мелких кусков и контекстное окно «съедается» быстрее. Задачи на подсчёт букв вызывают затруднения именно потому, что модель видит не буквы, а токены, и внутри токена буквы не различаются. Именно поэтому «сколько букв R в слове strawberry?» — классический тест на провал.


Шаг 2. Числа вместо слов

После токенизации каждому токену сопоставляется вектор — список из нескольких тысяч чисел. Он называется эмбеддингом и кодирует смысл токена.

Представь карту города. Каждая точка описывается двумя числами — широтой и долготой. Близкие точки — близкие места. В пространстве эмбеддингов то же самое, только измерений не два, а несколько тысяч, и «близость» означает смысловую похожесть.

Слова «кошка» и «собака» окажутся рядом. «Король» минус «мужчина» плюс «женщина» даст вектор, близкий к «королеве» — знаменитый пример, показывающий что в числах закодированы реальные смысловые отношения.

Важно: эмбеддинги не прописываются вручную. Они получаются автоматически в процессе обучения. Модель сама «выясняет», что кошки и собаки похожи, просто читая текст.


Шаг 3. Сердце трансформера — механизм внимания

До трансформеров нейросети обрабатывали текст последовательно — слово за словом. Это создавало проблему: к концу длинного предложения начало уже «забывалось».

Трансформер решил это радикально: смотреть на все токены сразу и для каждого вычислять, насколько каждый другой токен важен прямо сейчас. Этот механизм называется self-attention.

Для каждого токена вычисляются три вектора: Query («что я ищу?»), Key («что я предлагаю?») и Value («что отдам, если меня выбрали?»). Токен сравнивает свой Query с Key каждого другого и получает веса — числа, показывающие, насколько каждый другой токен важен для него.

В предложении «Маша дала Кате книгу, которую та давно хотела» слово «та» должно понять, что относится к «Кате». Механизм внимания позволяет слову буквально «посмотреть» на все предыдущие токены и найти нужный.

Таких «голов» внимания в современных моделях несколько десятков. Каждая следит за своим: одна — за синтаксисом, другая — за кореференциями, третья — за тематическими связями. Всё параллельно.


Шаг 4. Слои — обработка идёт вглубь

Один блок self-attention — это ещё не вся модель. Трансформер состоит из множества таких блоков, уложенных стопкой. Даже скромные модели имеют их десятки.

Зачем столько? Потому что понимание текста — многоуровневая задача. Нижние слои улавливают поверхностные паттерны: части речи, грамматику. Средние работают с семантикой — кто что делает, какие сущности связаны. Верхние отвечают за что-то похожее на рассуждение — факты, логика, контекст всего разговора.

Каждый слой берёт представление токенов из предыдущего, обогащает его и передаёт дальше. К верхнему слою каждый токен уже «знает» о себе всё, что можно было извлечь из контекста.


Шаг 5. На выходе — не слово, а вероятности

Модель не выдаёт следующее слово. Она выдаёт распределение вероятностей по всему словарю — для каждого из 50–100 тысяч токенов вычисляется число: насколько вероятно, что именно он должен идти следующим.

«Москва — столица» → «России» 78%, «нашей» 9%, «бывшего» 3%... и так для всех токенов словаря.

Дальше происходит сэмплинг — выбор конкретного токена. Здесь появляются параметры из настроек API.

Temperature управляет «резкостью» распределения. При температуре близкой к нулю модель почти всегда выбирает самый вероятный токен — ответы предсказуемые и повторяющиеся. При высокой — вероятности выравниваются, модель чаще выбирает неожиданные токены. Отсюда и «творческий режим», и галлюцинации.

Top-p ограничивает выбор только токенами, суммарная вероятность которых не превышает p. При top-p = 0.9 модель рассматривает только «ядро» наиболее вероятных токенов и игнорирует весь длинный хвост маловероятных вариантов.


Шаг 6. Слово за словом — авторегрессия

Модель генерирует текст по одному токену за раз. После того как токен выбран, он добавляется к контексту, и вся процедура запускается заново для следующего токена.

Именно поэтому ответ появляется постепенно — это не анимация для красоты, это буквально то, как работает генерация.

Из этого вытекают важные следствия. Модель не может «передумать» посередине предложения. Если в начале написала «Я согласен» — весь дальнейший текст генерируется в контексте этого «согласен», даже если по логике нужно было написать обратное. Этим объясняется, почему модели иногда уверенно гонят чушь до конца абзаца.

И именно поэтому промпты «думай шаг за шагом» реально работают: они заставляют модель генерировать промежуточные токены-рассуждения, которые потом влияют на финальный ответ.


Откуда берутся знания

Всё описанное выше — это архитектура. Сама по себе она ничего не умеет. Смысл появляется в процессе обучения.

Задача простая: дай тексту, скрой последнее слово, пусть модель угадает. Сравни с правильным ответом, посчитай ошибку, скорректируй веса. Повтори триллион раз.

Веса модели — это спрессованные знания. Числа, которых в крупных моделях более триллиона, кодируют всё прочитанное: факты, стили, логические паттерны, причинно-следственные связи. Всё это неявно закодировано в весах — не в виде базы данных, а в виде миллиардов слегка подкрученных чисел.


Попробуй сам почувствовать разницу

Читать про то, как модели рассуждают — одно. Наблюдать это в реальном времени — другое.

Попробуй этого телеграм-бота — внутри ChatGPT, Gemini, Grok и DeepSeek, бесплатно. Дай одинаковый запрос разным моделям и посмотри, как по-разному они выстраивают ответ. Например, спроси что-нибудь неоднозначное — «докажи, что 0.999... = 1» или «объясни парадокс Ферми». Разница в подходах хорошо показывает, что у каждой модели свой «характер» — сформированный архитектурой, данными и настройкой.


Пять фактов, которые реально удивляют

1. Модель не знает, что написала секунду назад

Между вызовами модель не хранит никакого состояния. «Память» ChatGPT — это просто очень длинный текстовый файл, который растёт с каждым сообщением и в какой-то момент упирается в лимит контекстного окна. Никакой «памяти» в человеческом смысле нет.

2. Длинный контекст — это дорого математически

Self-attention вычислительно стоит O(n²) от длины контекста. Удвоил длину — получил вчетверо больше вычислений. Именно поэтому окно в миллион токенов — инженерный подвиг, а не просто «добавили памяти».

3. Одинаковый запрос даёт разные ответы намеренно

Это не баг. Temperature > 0 означает, что каждый раз сэмплинг проходит чуть иначе. Если нужна воспроизводимость — явно ставь temperature = 0 и фиксируй seed.

4. Галлюцинации — обратная сторона интеллекта

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

5. Модель не понимает слова — она понимает паттерны

LLM никогда не видела реального кота. Она видела миллиарды предложений, в которых слово «кот» стояло рядом с «мурлыкает», «лапа», «хвост», «ветеринар». Всё её «знание» о кошках — это статистика соседства токенов. То, что это работает — само по себе удивительно.


Вместо заключения

LLM — не поисковик, не база данных и не цифровой человек. Это статистическая машина, обученная предсказывать текст на таком масштабе, что предсказание стало неотличимо от понимания — по крайней мере внешне.

Понимать устройство этой машины полезно не чтобы разрушить магию. А чтобы знать, где она работает идеально, где её легко сломать — и почему иногда она блестяще отвечает на вопрос, которого никто никогда не задавал.