LLM не "думают" в привычном для нас смысле. Они оптимизируют вероятность следующего токена:
P(xt∣x<t) И минимизируют кросс-энтропию:
L=−t∑logPθ(xt∣x<t) Математически всё красиво. Но именно из этой формулы вырастают ошибки, которые в человеческом мире выглядят как:
игнорирование базовых вероятностей
В этой главе разберём, почему это неизбежно.
Галлюцинация – это максимум вероятности, а не максимум истины
LLM выбирает:
x^t=argxmaxP(x∣context) Она не выбирает "правду". Она выбирает наиболее вероятное продолжение.
Если в обучающем корпусе часто встречается структура:
"Профессор Иванов из Гарварда в 1998 году доказал…"
то при вопросе:
Кто доказал X?
модель может синтезировать правдоподобное имя, даже если такого человека не существует.
Галлюцинация возникает, когда:
xmaxP(x∣context)∈/множество истинных фактов То есть наиболее вероятное ≠ истинное.
19.1 Распределение вероятностей токенов Ошибка накопления вероятностей
Представим, что модель генерирует цепочку из 20 токенов. Пусть средняя вероятность каждого токена 0.9.
Тогда вероятность всей последовательности:
0.920≈0.12 То есть уже на 20 шагах вероятность целостного ответа падает драматически.
Чем длиннее рассуждение, тем выше риск накопления ошибки. Это особенно заметно в математике. Если модель ошиблась в промежуточном вычислении, всё дальнейшее логически последовательно – но основано на ложной базе.
Почему LLM плохо считают
LLM – не калькулятор. Они не выполняют арифметику алгоритмически. Они воспроизводят паттерны вычислений.
Если спросить:
347 × 829 = ?
Модель не перемножает числа. Она пытается восстановить вероятный шаблон умножения.
И если подобные примеры были редкими в обучении – возрастает ошибка.
Это связано с тем, что умножение – алгоритмическая задача, а LLM – вероятностная модель.
PHP-демонстрация разницы
Идея в том, что LLM ближе к "статистическому угадыванию", чем к детерминированному вычислению.
Base Rate Neglect – игнорирование базовой вероятности
В статистике есть эффект: игнорирование априорной вероятности.
Формула Байеса:
P(A∣B)=P(B)P(B∣A)P(A) LLM часто демонстрируют поведение, похожее на игнорирование P(A).
Пример:
1% населения имеет болезнь
Человек с положительным тестом не имеет 99% вероятности быть больным.
Правильный расчёт:
P(болезнь∣+)≈50% Но LLM часто дают интуитивный ответ – 99%.
Почему? Потому что корпус текстов чаще содержит линейные объяснения, чем аккуратные байесовские расчёты.
29.2 Байесовское обновление Distribution Shift – сдвиг распределения
LLM обучаются на распределении данных:
Ptrain(x) Но работают в среде:
Preal(x) Если:
Ptrain(x)=Preal(x) возникают ошибки.
Пример:
модель обучалась на академических текстах
её спрашивают о нишевом стартапе из 2025 года
Она вынуждена интерполировать.
Галлюцинация – это часто попытка заполнить пробел в распределении.
Bias как математическое явление
В машинном обучении bias – это:
Bias=E[y^]−y Это систематическое отклонение.
У LLM bias проявляется как:
Причина проста:
P(x)∝частота в корпусе Если определённая точка зрения встречается чаще – она получает больший вес.
29.3 Смещённое распределение Temperature усиливает или ослабляет ошибки
Формула softmax с температурой:
Pi=∑jezj/Tezi/T Если:
T→0 – модель становится детерминированной
T→∞ – распределение выравнивается
Высокая температура усиливает галлюцинации.
Низкая – усиливает повторяемость bias.
PHP-демонстрация температуры
Попробуйте разные температуры и посмотрите, как "уверенность" модели меняется.
Почему логика ≠ гарантия истины
LLM может построить идеально логичную цепочку:
A → B
B → C
C → D
Но если A неверно, всё остальное – аккуратно выстроенная ошибка.
Это называется error propagation.
В длинных chain-of-thought рассуждениях вероятность накопленной ошибки растёт экспоненциально.
Галлюцинация как оптимизация правдоподобия
Важная мысль:
LLM оптимизирует правдоподобие, а не верифицируемость.
Она не проверяет:
Если шаблон "выглядит правдоподобно" – вероятность высока.
И модель выбирает его.
Что с этим делать разработчику?
Если вы строите LLM-системы на PHP:
Используйте верификацию через внешние источники
Разделяйте генерацию и вычисления
Для математики – подключайте реальные вычислители
Используйте retrieval (RAG)
Снижайте температуру в критичных сценариях
Проверяйте ответы вторичной моделью
Архитектурный паттерн
LLM ошибаются не потому, что "глупые".
Они ошибаются потому, что:
обучаются на смещённых распределениях
не имеют встроенного механизма проверки истины
накапливают ошибку в длинных цепочках
чувствительны к temperature
воспроизводят частотный bias
Математически это неизбежно.
И именно понимание этой неизбежности делает вас сильнее как инженера.