Закажи экспресс-аудит своего дела онлайн всего за 199 ₽
и получи рекомендации по улучшению - Жми сюда !

Как мы тестируем наших агентов в разработке

4 ключевых урока, усвоенных трудным путем

Делиться

7492ef268ad1f5c3774135c749952c99

Почему так сложно тестировать агентов

Проверить, работает ли ваш ИИ-агент ожидаемым образом, непросто. Даже небольшие изменения в таких компонентах, как версии подсказок, оркестровка агента и модели, могут иметь серьёзные и неожиданные последствия.

Некоторые из главных проблем включают в себя:

Недетерминированные выходы

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

Как проверить ожидаемый результат, если неизвестно, каким он будет? Проще говоря, тестирование строго определённых результатов не работает.

Неструктурированные результаты

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

Гораздо проще определить тест для структурированных данных. Например, поле идентификатора никогда не должно быть NULL или всегда быть целым числом. Как определить качество большого текстового поля?

Стоимость и масштаб

LLM-как-судья — наиболее распространённая методология оценки качества и надёжности агентов ИИ. Однако это дорогостоящая работа, и каждое взаимодействие с пользователем (трассировка) может состоять из сотен взаимодействий (интервалов).

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

968297649cde77c44727e09499547a60

Тестирование нашего агента

У нас есть два работающих агента, которыми пользуются более 30 000 пользователей. Агент устранения неполадок анализирует сотни сигналов, чтобы определить первопричину инцидента, связанного с надёжностью данных, а агент мониторинга даёт рекомендации по интеллектуальному мониторингу качества данных.

Для агента по устранению неполадок мы тестируем три основных параметра: семантическое расстояние, обоснованность и использование инструментов. Вот как мы тестируем каждый из них.

Семантическое расстояние

Мы используем детерминированные тесты, когда это уместно, поскольку они понятны, объяснимы и экономичны. Например, сравнительно легко развернуть тест, чтобы убедиться, что один из выходных данных субагента представлен в формате JSON, не превышает определённую длину или вызывается корректно.

Однако бывают случаи, когда детерминированные тесты не справляются. Например, мы исследовали внедрение ожидаемых и новых результатов в виде векторов и использование косинусных тестов на сходство. Мы посчитали, что это будет более дешёвым и быстрым способом оценить семантическое расстояние (сходство значений) между наблюдаемыми и ожидаемыми результатами.

Однако мы обнаружили, что слишком часто формулировки были схожими, но значение различалось.

Вместо этого мы теперь предоставляем нашему судье LLM ожидаемый результат текущей конфигурации и просим его оценить по шкале от 0 до 1 сходство нового результата.

Заземленность

Для обоснованности мы проверяем, присутствует ли ключевой контекст, когда он должен быть, но также и то, откажется ли агент отвечать, если ключевой контекст отсутствует или вопрос выходит за рамки вопроса.

Это важно, поскольку обладатели степени магистра права стремятся угодить и у них возникают галлюцинации, если они не опираются на хороший контекст.

Использование инструмента

Для использования инструмента у нас есть LLM-судья, который оценивает, выполнил ли агент ожидаемый результат для заранее определенного сценария, что означает:

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

Настоящее волшебство заключается не в развёртывании этих тестов, а в том, как они применяются. Вот наша текущая конфигурация, сформированная путём мучительных проб и ошибок.

Лучшие практики тестирования агентов

Важно помнить, что недетерминированными являются не только ваши агенты, но и ваши оценки LLM! Эти рекомендации в основном предназначены для борьбы с этими присущими им недостатками.

Мягкие неудачи

По очевидным причинам жёсткие пороги могут быть зашумлёнными при недетерминированных тестах. Поэтому мы придумали концепцию «мягкого отказа».

Оценка выставляется по шкале от 0 до 1. Оценка ниже 0,5 считается полной неудовлетворительной, выше 0,8 — удовлетворительной. Оценка от 0,5 до 0,8 считается частичной неудовлетворительной.

Изменения можно объединить для устранения мягкого сбоя. Однако при превышении определённого порога мягкого сбоя происходит серьёзный сбой, и процесс останавливается.

В настоящее время наш агент настроен таким образом, что если 33% тестов приводят к мягкому сбою или если в общей сложности происходит более двух мягких сбоев, то это считается жестким сбоем. Это предотвращает слияние изменений.

Переоценка незначительных сбоев

Мягкие сбои могут быть канарейкой в угольной шахте, а в некоторых случаях могут быть просто бессмысленными. Около 10% таких сбоев являются результатом галлюцинаций. В случае мягкого сбоя оценки автоматически повторяются. Если результаты тестов пройдены, мы предполагаем, что первоначальный результат был неверным.

Пояснения

Если тест провален, нужно понять, почему он провалился. Теперь мы просим каждого судью LLM не просто выставить оценку, но и объяснить её. Этот подход несовершенен, но он помогает повысить доверие к оценке и часто ускоряет отладку.

Удаление нестабильных тестов

Вам необходимо тестировать свои тесты. Особенно при оценке LLM в качестве судьи, структура задания может существенно повлиять на результаты. Мы проводим тесты несколько раз, и если разница в результатах слишком велика, мы корректируем задание или удаляем ненадёжный тест.

Мониторинг в производстве

Тестирование агентов — это новая и сложная задача, но это просто прогулка по сравнению с мониторингом поведения агентов и их результатов в рабочей среде. Входные данные более запутаны, нет ожидаемого результата, соответствующего базовому уровню, и всё происходит в гораздо большем масштабе.

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

Это наша текущая задача. Мы используем инструменты наблюдения за агентами для решения этих задач и расскажем о новых результатах в следующей публикации.

Агент устранения неполадок стал одной из самых впечатляющих функций, которые мы когда-либо реализовывали. Разработка надёжных агентов стала для нас определяющим этапом в карьере, и мы рады поделиться им с вами.

Источник: towardsdatascience.com

✅ Найденные теги: Как, новости

Нет других записей в этой рубрике.

Новости других рубрик

Архив рубрики ~Лента новостей~: Мы попробовали Claude Code в энтерпрайз-разработке и собрали за вас восемь проблем Архив рубрики ~Лента новостей~: Лиз Кендалл утверждает, что лейбористы заставят ИИ «работать на благо рабочих». Архив рубрики ~Лента новостей~: Итеративное декодирование LDPC/турбо, полярные коды — разбираем на C++ и сравниваем с MATLAB Архив рубрики ~Лента новостей~: Инсайдеры Tesla признают, что беспилотное вождение — это полная катастрофа Архив рубрики ~Лента новостей~: Теперь можно купить клубнику, выращенную на ферме с искусственным интеллектом Архив рубрики ~Лента новостей~: Как я «переезжал» своего ИИ-агента с OpenClaw на Hermes и собрал все грабли (чтобы Вы не собирали) Архив рубрики ~Лента новостей~: Архаические люди использовали огонь в пещере между 1,8 и 1,1 миллиона лет назад. Его следы нашли в южноафриканской пещере Вондерверк Архив рубрики ~Лента новостей~: В пятницу история с утечкой воздуха на Международной космической станции приняла тревожный оборот.