cursor-docs.ruПопробовать Курсор бесплатно

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 и почему это бьёт по цене.