Обычно ошибается модель или человек? Должна ли быть презумпция безошибочности агента? Рассказывает в эксклюзивной колонке на РБК директор FIS Евгений Кашменский.
Евгений Кашменский, основатель и директор компании ФИС, визионер, эксперт в сфере создания инновационных платформ разработки программного обеспечения и цифровизации банковского бизнеса:
Да, это — гипербола. Ведь не устраивающие нас результаты работы нейросетей — случаются, и достаточно часто. Но формулировка заголовка выбрана намеренно, чтобы, зацепив, затем аккуратно разобраться с несколькими связанными вещами: как мы вообще воспринимаем ошибки, почему так охотно переносим ответственность на исполнителя, чем отличаются ошибки человека, программы и нейросети. И, наконец, почему в работе с современными топовыми LLM полезно принять методический принцип — презумпцию безошибочности агента.
Ведущие LLM уже давно превзошли рядового человека как в познаниях, так и в возможностях быстро и с нуля разобраться в задаче. Так откуда же все эти «GPT опять тормозит», «Claude глючит» и «Gemini не разобрался»?
А кто вообще бывает виноват в ошибке?
Для начала разберемся с довольно простой вещью — что вообще означает слово «виноват». Классический пример: человек идет по дороге, спотыкается о камень и падает. Камень – очевидная причина падения. Но виноват ли камень? Конечно, нет. Ведь он просто лежал там. Вина — это все-таки категория субъектной ответственности, а не только причинности.
Примерно то же самое происходит с ИИ. Зачастую можно найти причины, по которым модель пришла к неправильному выводу. А вот обвинять модель бессмысленно: субъектности у нее нет.
На этом можно было бы закончить рассуждение, если бы не еще одно обстоятельство – ведь дело даже не в субъектности, а в природе делегирования. Что такое делегирование в обычном управленческом смысле? У человека А есть задача, за результат которой он отвечает; выполнение этой задачи, полностью или частично, он поручает человеку Б. Но при этом его ответственность за результат никуда не исчезает.
Менеджер может сколько угодно объяснять руководству, что срок сорвал исполнитель N, причем, допустим, справедливо: N действительно забыл, не понял, не сделал вовремя или сделал плохо. Но у руководства все равно возникает вопрос: а кто поставил N задачу? Выбрал именно N исполнителем? Отвечал за результат?
Здесь и возникает разница между причиной ошибки и ответственностью за результат. Ответственность не делегируется! Поэтому, даже если бы ИИ обладал субъектностью и мог быть «виноват» в собственной локальной ошибке, ответственность постановщика за объемлющую задачу от этого никуда бы не исчезла. Точно так же, как менеджера не особенно спасает объяснение, что виноват исполнитель N, который все равно получит свою зарплату. И нового менеджера, взамен уволенного.
Как мы воспринимаем «ошибки» агентов?
Наверняка вы не раз слышали что-нибудь в духе: «во Claude глючит, снова ошибка». На первый взгляд, очевидно. Был запрос, результат оказался не тем, что хотелось получить — значит, модель ошиблась. Эта иллюзия, скорее всего, возникает из-за того, что на ИИ мы автоматически переносим сразу две привычные модели ошибок.
Во-первых, программы могут ошибаться, потому что в программах бывают баги. Во-вторых, люди тоже постоянно ошибаются — из-за усталости, невнимательности, непонимания, забывчивости, лени, плохого настроения и еще десятка факторов, ежедневно влияющих на качество человеческой работы.
Большая языковая модель внешне очень удачно попадает сразу в обе категории. С одной стороны, это вычислительная система, работающая на компьютере; с другой — она отвечает текстом, рассуждает, что-то объясняет, убедительно имитируя субъектность. В результате возникает почти автоматическая реакция: если ответ плохой, значит, «ИИ ошибся».
И эта фраза, будучи формально верной, обычно оказывается почти бесполезной, поскольку не дает понимания, а почему система выдала именно такой результат? А что нужно изменить в постановке, процессе или контроле, чтобы получалось лучше?
А есть ли баги в этой программе?
Они, возможно, есть. Современная система запуска нейросети — это сложное программное хозяйство, в котором вполне возможны обычные программные ошибки. Но содержательные ошибки модели в большинстве случаев возникают совсем не поэтому.
Если модель сообщает, что 17 * 24 = 418, это, скорее всего, вовсе не означает, что видеоускоритель внезапно разучился умножать числа. Тут важно разделять две совершенно разные вещи: ошибку вычислительной системы и ошибочный результат самой модели. Традиционная программа обычно содержит алгоритм, явно сформулированный программистом. Большая языковая модель устроена иначе: ее поведение формируется статистически в процессе обучения, а веса кодируют огромное количество закономерностей, извлеченных из обучающих данных.
Так что вычисления на уровне аппаратуры идут правильно. А вот статистически обусловленный ход выдачи нейросети может пойти по не оптимальной траектории.
Значит, у ИИ-агентов ошибки «субъектного» характера?
Тоже не совсем. Человек может ошибиться, потому что устал, плохо спал, отвлекся, схалтурил (и еще несколько десятков, а то и сотен различных причин). Все эти причины нам хорошо знакомы, не так ли?
У нейросети ничего подобного нет. Она не устает, не теряет мотивацию, не скучает и не делает наобум перед выходными. Но там заложена собственная вариабельность. На каждом шаге большая языковая модель вычисляет вероятности возможных продолжений текста, после чего система выбирает одно из них. Выбор может быть жестко привязан к наиболее вероятному варианту, а может содержать управляемую долю случайности, позволяя одной и той же модели проходить по различным траекториям рассуждения.
Поэтому один и тот же запрос действительно способен приводить к разным результатам: одна цепочка рассуждений удачно зацепится за нужную идею и доведет ее до правильного вывода, другая свернет на неправильную траекторию и не даст нужного результата.
Однако было бы ошибкой сводить все проблемы языковых моделей к этой вариативности. Даже при полностью воспроизводимом способе выбора продолжения модель способна стабильно ошибаться — из-за недостаточного знания предмета, недостаточного внимания к значимым деталям или ошибок в постановке задачи. Иначе говоря, эта квази-субъектность модели не является непосредственной причиной ошибок.
Так откуда же ошибки?
Причины большинства ошибок — довольно типичны.
Первый вариант — пользователь поставил модели задачу, которая слишком велика, сложна или вообще находится за пределами возможностей выбранного агента. Например: «Докажи Великую теорему Ферма».
Второй, пожалуй, еще более распространенный вариант — пользователь не сообщил значительную часть исходных данных, которые для него настолько очевидны, что он даже не подумал, что это надо писать. Например, «какая из этих диет лучше»? Хороший вопрос, особенно если забыть упомянуть целиакию, диабет и аллергию на орехи.
Третий вариант еще интереснее — рефлексивные задачи. Это довольно большой класс задач, в которых зачастую вообще нет объективно правильного ответа, потому что ответ существенно зависит от восприятия и реакции другого субъекта. Например, переговоры. А еще управление, обучение, военное планирование, написание прозы и стихов, а также множество других задач, где объект воздействия сам наблюдает за воздействующим и реагирует на него. Именно такие задачи языковые модели зачастую решают хуже, чем можно было бы ожидать, исходя из их де-факто могучего интеллектуального уровня.
Наконец, четвертый сценарий — реальное ограничение самой модели в части каких-либо задач, например, визуальное распознавание картинок.
Если совсем упростить, истинные причины большинства неудач выглядят довольно тускло: пользователь плохо сформулировал задачу, не передал нужные сведения, не учел рефлексивную природу задачи, выбрал неподходящую модель, неверно организовал работу или не предусмотрел контроль. Фраза «ИИ опять тормозит», конечно, звучит куда приятнее.
Как же избегать ошибок?
Любой человек, который действительно много работает с ИИ, через некоторое время обнаруживает: главный навык здесь — не сами запросы, а качество агенто-специфичного делегирования.
Делегирующий должен:
- понимать уровень и возможности агента;
- выбирать достаточную степень декомпозиции;
- понимать природу самой задачи для адаптации под агента;
- обеспечивать полноту постановку задачи, включая объемлющий контекст;
- заранее определять зоны и объемы контроля.
Современные агенты чрезвычайно сильны, но не субъектны. Они обладают огромным объемом знаний, но не всегда угадывают то, что вы забыли им сообщить. Они не отвлекаются, зато имеют особенности, которые хороший постановщик должен знать примерно так же, как хороший менеджер знает слабые места своих сотрудников.
Что особенно иронично, языковым моделям очень часто удается получить приличный результат не благодаря качеству постановки, а вопреки ей — на основе наших ошибочных, неполных, внутренне противоречивых инструкций!
Презумпция безошибочности агентов
И, наконец, сам методический принцип. Презумпция безошибочности агента — это не о том, что агент не может ошибиться. Это о том, что неудовлетворительный результат, как правило — вовсе не из-за умной модели, а из-за человека.
Если агент не справился, постановщику задачи надо думать дальше. А уже после этого, если очень хочется, можно обсудить, кто тормозит.
Обсудить идею или проект
Ответим уже сегодня









