AI Foundations
Hallucination и ограничения
Неофициальный перевод раздела Cursor Learn. Мы переводим английский оригинал и чуть расширяем объяснения — это не материал от Cursor Inc.
Когда уже понятно, как модели предсказывают текст, пора поговорить о том, что чаще всего бесит новичков: hallucination.
Hallucination — это когда модель уверенно выдаёт информацию, которая выглядит правдоподобно, но на деле неверна. Как человек, который уверенно блефует в разговоре на тему, в которой плавает.
Почему модели hallucinate
Модель предсказывает следующий token по выученным паттернам. Иногда эти паттерны уводят её в сторону.
Думай о модели как об очень мощном autocomplete. Написал «Сегодня погода…» — телефон подскажет «солнечная» или «пасмурная». Модель делает то же самое, только с целыми концептами и блоками кода.
Когда модель чего-то не знает, она не всегда говорит «я не знаю». Часто она генерирует то, что статистически похоже на правильный ответ. В коде это выглядит так:
- Придуманные, но очень убедительные API-методы, которых нет
- Каша из синтаксиса разных библиотек и фреймворков
- «Разумные» опции конфига, которых в реальности не существует
Провайдеры обучают модели на огромном корпусе текстов (и своих данных) до даты knowledge cutoff. Всё, что появилось после cutoff — библиотеки, API, лучшие практики — модель может не знать и при этом уверенно угадывать мимо.
Hallucination в дикой природе
Вот типичные примеры, которые ловят разработчики.
Почти правильный, но несуществующий import:
// AI предлагает:
import { debounce } from "react";
// Реальность: debounce из React не экспортируется.
// Нужен lodash или своя реализация.
Убедительный фейковый метод:
# AI предлагает:
df.remove_outliers(threshold=3)
# Реальность: у pandas DataFrame такого метода нет.
# Outlier removal пишешь сам.
Почти валидный package.json:
{
"type": "module",
"exports": "./index.js",
"browser": true
}
Поле "browser": true здесь невалидно — но выглядит «логично», поэтому глаз может пропустить.
Чем больше работаешь с моделями, тем быстрее начинает щёлкать «детектор bullshit». Полезно быть скептичным по умолчанию и независимо проверять предложения модели. Лучший хак — среда, которая сразу даёт feedback: в Cursor неверный import подсветится ошибкой, и эту ошибку можно вернуть модели как контекст.
Другие ограничения
Модели умеют уверенно соглашаться с тобой, даже когда ты не прав: «You’re absolutely right!» — классика. Плюс они часто слабы там, где обычный софт силён: настоящая случайность, точный подсчёт букв в слове, длинная арифметика без инструментов.
Но даже с hallucination модели остаются дико полезными.
Ключ — verification mindset. Каждый suggestion — это черновик, не финальный ответ. Да, это кажется «лишней работой», но на деле делает тебя сильнее: ты вынужден понимать код, а не копипастить вслепую.
Дальше по курсу будут конкретные приёмы, как повышать качество генерации. А пока — разберёмся, как модели «думают» единицами token и почему это бьёт по цене.