Перейти к основному содержимому

Ограничения и типичные сбои

Конкретные, повторяющиеся способы, которыми AI-ассистент ошибается. Это не повод от него отказаться — наоборот: знание того, где инструмент отказывает, и позволяет уверенно пользоваться им во всех остальных случаях.

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

Что нужно понимать

  • Что модель действительно видит, а что додумывает
  • На каких классах задач она стабильно слаба
  • Почему гладкость формулировок здесь никак не связана с правильностью
  • Как она ведёт себя, когда не знает ответа, — сказать об этом прямо она умеет редко
  • Где незаметно вытесняется ваше собственное суждение

Ключевые темы

Границы знаний

  • Дата отсечки обучающих данных и уверенные ответы про библиотеки, которые с тех пор изменились
  • Путаница с версиями: API, существовавший два мажорных релиза назад
  • Редкие и внутренние фреймворки, по которым почти не на чем было учиться
  • Ответы как среднее по интернету — вместе с его устаревшим большинством

Границы контекста

  • Модель знает только то, что ей дали, остальное достраивает
  • Большие кодовые базы, где нужный файл так и не был прочитан
  • Потеря ранее заданных ограничений на длинной сессии
  • Чтение пересказа кода вместо самого кода

Границы рассуждения

  • Длинные цепочки, где ранняя ошибка уверенно тащится дальше
  • Согласованность между файлами: каждый файл верен, целое — нет
  • Глубокие правила предметной области, которых в коде нигде нет
  • По-настоящему новые задачи — в отличие от перекомбинаций известного

Поведенческие сбои

  • Согласие с неверной правкой просто потому, что вы возразили
  • Гора текста там, где честным ответом был бы уточняющий вопрос
  • Переписывание работающего кода, который не был причиной проблемы
  • Оптимизация названной метрики мимо сути задачи

Что из этого следует на практике

  • Всё, что зависит от версии, сверять с документацией
  • Давать контекст, а не рассчитывать, что его найдут
  • Много мелких проверяемых шагов лучше одного большого правдоподобного
  • Сохранять навык, без которого вы не сможете проверить результат

Уровни

УровеньКак это выглядит
JuniorЗнает, что ответ может быть неверным, и проверяет хотя бы то, что код запускается.
MiddleРазличает типы сбоев, проверяет всё, что зависит от версии, осознанно даёт контекст.
SeniorВыбирает задачи под сильные стороны инструмента, встраивает проверку в рабочий процесс и следит за тем, чтобы команда не разучилась работать без него.

Практика

Для начала

  • Нащупайте отсечку Спросите про возможность библиотеки, вышедшую недавно, и сверьте ответ с changelog.

  • Возразите неправильно Настойчиво утверждайте что-нибудь неверное и посмотрите, согласится ли модель.

  • Не дайте контекст Попросите внести изменение, не указав нужный файл, и посмотрите, что модель придумает.

Глубже

  • Найдите свой класс сбоев Месяц отслеживайте работу с ассистентом и разберите по типам, где именно всё пошло не так. Скорректируйте то, что вы ему делегируете.

  • Разберите длинную цепочку Возьмите задачу, где модель уверенно ошиблась ближе к концу, и разложите её на проверяемые шаги.

  • Сохраните навык Возьмите то, что всегда делегируете, и сделайте руками — убедитесь, что всё ещё можете.

Проверьте себя

  • Что из недавно сказанного ассистентом оказалось устаревшим?
  • Как он, по вашему опыту, ведёт себя, когда чего-то не знает?
  • На каких ваших задачах он стабильно проваливается?
  • Как вы заметите, что он молча согласился с вашим неверным предположением?
  • Что вы год назад умели делать сами, а сейчас уже нет?
  • Чего в вашей кодовой базе он не может узнать ниоткуда?

Ресурсы

  • Anthropic: reduce hallucinations — от тех, кто это измеряет: почему возникают уверенные выдумки и какие приёмы действительно снижают их долю.
  • Evaluating Large Language Models Trained on Code — статья про Codex. Раздел 7 об ограничениях написан теми, кто эту модель и сделал, и говорит о сбоях генерации кода конкретнее, чем всё, что было сказано об этом позже.
  • Exploring Generative AI — заметки Биргитты Бёкелер необычно конкретны: где именно ассистент подвёл на реальных проектах и почему.
  • Sycophancy in language models — исследование склонности соглашаться с пользователем — ровно то, что срабатывает, когда вы возражаете против верного ответа.
  • Stack Overflow Developer Survey — блок вопросов о доверии: насколько уверенность практикующих разработчиков совпадает с тем, как часто они этими инструментами пользуются.