🔗 LangChain продолжают тему автоматизации разработки эвалов
В июле я уже писал про их скилл eval-engineering, который помогает кодинговому агенту превращать реальные трейсы в оценочные задачи. Теперь LangChain подробнее расписали, как они масштабируют этот процесс.
Чтобы полноценно проверить возможности агента, нужны кейсы со входными данными, средой с инструментами и состоянием, а также способ проверить результат. И таких кейсов нужны десятки и сотни, чтобы покрыть разные сценарии и надёжно оценивать качество. Всё это долго и дорого собирать руками.
Для упрощения этого процесса LangChain вводят промежуточное представление — Task Spec. На основе реальных трейсов сначала выделяют конкретный пользовательский сценарий и описывают его в текстовом виде: что должен сделать агент, в какой среде он будет работать и как оценить итог.
После ревью человеком запускается Spec2Task: кодинговый агент превращает Task Spec в готовую исполняемую задачу в формате Harbor — собирает окружение, данные и проверку.
Параллельно формируется World Spec — общая база знаний для всего бенчмарка: схемы API, правила генерации данных, способы проверки, вспомогательные скрипты и другие общие для множества задач вещи.
World Spec наращивают итеративно. Сначала вместе с кодинговым агентом создают одну полноценную задачу и на её основе формируют первую версию. Затем проверяют её на следующих задачах и добавляют недостающие знания. Когда World Spec становится достаточно полным, процесс можно масштабировать:
трейсы → Task Specs → ревью человеком → Spec2Task → готовые задачи
Готовую задачу ещё прогоняют реальными агентами и смотрят их траектории. Так можно обнаружить проблемы среды — например, случайные подсказки, позволяющие угадать ответ вместо полноценного решения. А чтобы проверить сложность, задачу запускают на моделях разного уровня и при необходимости дорабатывают.
Но мне здесь больше всего нравится общая идея. LangChain рассматривают такой бенчмарк не только как инструмент оценки. Они выделяют три сценария его использования: evaluate — измерять качество, hill-climb — оптимизировать промпты и харнесс, post-train — дообучать саму модель. Разумеется, для обучения и независимой оценки при этом нужны разные задачи или сплиты.
То есть в идеале получается непрерывный цикл: собираем новые реальные трейсы → превращаем их в воспроизводимые задачи → оцениваем и улучшаем агента → снова смотрим, что происходит в проде.
В июле я уже писал про их скилл eval-engineering, который помогает кодинговому агенту превращать реальные трейсы в оценочные задачи. Теперь LangChain подробнее расписали, как они масштабируют этот процесс.
Чтобы полноценно проверить возможности агента, нужны кейсы со входными данными, средой с инструментами и состоянием, а также способ проверить результат. И таких кейсов нужны десятки и сотни, чтобы покрыть разные сценарии и надёжно оценивать качество. Всё это долго и дорого собирать руками.
Для упрощения этого процесса LangChain вводят промежуточное представление — Task Spec. На основе реальных трейсов сначала выделяют конкретный пользовательский сценарий и описывают его в текстовом виде: что должен сделать агент, в какой среде он будет работать и как оценить итог.
После ревью человеком запускается Spec2Task: кодинговый агент превращает Task Spec в готовую исполняемую задачу в формате Harbor — собирает окружение, данные и проверку.
Параллельно формируется World Spec — общая база знаний для всего бенчмарка: схемы API, правила генерации данных, способы проверки, вспомогательные скрипты и другие общие для множества задач вещи.
World Spec наращивают итеративно. Сначала вместе с кодинговым агентом создают одну полноценную задачу и на её основе формируют первую версию. Затем проверяют её на следующих задачах и добавляют недостающие знания. Когда World Spec становится достаточно полным, процесс можно масштабировать:
трейсы → Task Specs → ревью человеком → Spec2Task → готовые задачи
Готовую задачу ещё прогоняют реальными агентами и смотрят их траектории. Так можно обнаружить проблемы среды — например, случайные подсказки, позволяющие угадать ответ вместо полноценного решения. А чтобы проверить сложность, задачу запускают на моделях разного уровня и при необходимости дорабатывают.
Но мне здесь больше всего нравится общая идея. LangChain рассматривают такой бенчмарк не только как инструмент оценки. Они выделяют три сценария его использования: evaluate — измерять качество, hill-climb — оптимизировать промпты и харнесс, post-train — дообучать саму модель. Разумеется, для обучения и независимой оценки при этом нужны разные задачи или сплиты.
То есть в идеале получается непрерывный цикл: собираем новые реальные трейсы → превращаем их в воспроизводимые задачи → оцениваем и улучшаем агента → снова смотрим, что происходит в проде.