Содержание
- Почему тестировать LLM сложнее, чем обычный код
- Ключевые метрики оценки LLM
- DeepEval — open-source фреймворк для unit-тестов LLM
- RAGAS — метрики для RAG-систем
- LangSmith — трассировка и отладка от создателей LangChain
- Arize Phoenix — observability для продакшена
- Сравнение инструментов: что выбрать
- Как собрать пайплайн оценки
- Коротко
LLM и AI-агенты работают как чёрный ящик: один и тот же промпт может вернуть корректный ответ, а через минуту — галлюцинацию. В production-среде это не просто неудобство, а риск для бизнеса. Вы не можете полагаться на тестирование «на глаз», потому что вероятностная природа моделей делает каждый запуск уникальным. В этой статье разбираем, какие инструменты и метрики реально работают в 2026 году, и как собрать из них пайплайн оценки.
Gartner оценивает, что уже в 2026 году 40% корпоративных приложений будут включать специализированных AI-агентов. При этом, по данным SDVG Labs, только 25% команд внедрили систематическое тестирование LLM-приложений. Остальные проверяют «вручную» — запустили пару промптов, посмотрели, вроде работает, задеплоили. А через неделю прод падает с жалобами пользователей на бессмысленные ответы.
Хорошая новость: к середине 2026 года экосистема инструментов для оценки LLM созрела. Есть фреймворки с открытым исходным кодом (DeepEval, RAGAS), платформы трассировки (LangSmith, Langfuse) и инструменты observability (Arize Phoenix, Opik). Каждый решает свою часть задачи. Разберёмся, как их комбинировать.
Типовой пайплайн оценки: тесты → метрики → инструменты → результат
Почему тестировать LLM сложнее, чем обычный код
Обычный софт детерминирован: функция add(2, 2) всегда возвращает 4. С LLM всё иначе. Та же модель с теми же параметрами может вернуть два принципиально разных ответа. И оба могут быть правильными. Это не баг, а свойство вероятностных систем. К нему добавляются специфические для LLM проблемы: галлюцинации (модель уверенно врёт), токсичность, смещения, уязвимость к инъекциям.
Confident AI выделяет три ключевых отличия LLM-тестирования от классического:
Первое — оценка субъективна. Для кода есть чёткий критерий: «падают тесты = есть баг». Для LLM это спектр: ответ может быть частично верным, формально верным, но бесполезным, или верным, но с галлюцинацией в середине. Второе — регрессии скрыты. Изменение промпта, замена модели, обновление бэкенда могут незаметно ухудшить качество на определённой группе запросов. Третье — контекстная зависимость. То, что хорошо для техподдержки (коротко, по делу), плохо для креативного сценария. Универсальных метрик не существует.
Поэтому подход к тестированию LLM многослойный. Нижний слой — автоматические метрики: проверка фактологической точности, релевантности, галлюцинаций. Средний слой — юнит-тесты с пороговыми значениями. Верхний — человеческая оценка и мониторинг в продакшене.
Ключевые метрики оценки LLM
Прежде чем выбирать инструмент, разберитесь с метриками. Почти все фреймворки используют один и тот же набор, но считают по-разному. Вот основные группы.
Метрики корректности — отвечают на вопрос «правильный ли ответ по смыслу?». Faithfulness (точность) проверяет, соответствует ли ответ фактам из контекста. Answer Relevancy — отвечает ли он на заданный вопрос. Hallucination — измеряет долю вымышленных данных. Эти три — база. Без них любая оценка бессмысленна.
Метрики качества ответа — оценивают оформление. BLEU и ROUGE сравнивают с эталоном (пришли из NLP). Семантическое сходство через эмбеддинги. Concision проверяет, нет ли лишнего. Helpfulness — полезен ли ответ для пользователя.
Метрики безопасности — bias (предвзятость), toxicity (токсичность), bias в гендерных/расовых вопросах. Garak от NVIDIA специализируется именно на безопасности — проверяет устойчивость к джейлбрейкам, промпт-инъекциям, утечкам PII.
Метрики для RAG — оценивают качество поиска. Context Precision — насколько релевантен найденный контекст. Context Recall — ничего ли важного не упущено. Faithfulness применительно к RAG проверяет, использует ли модель только найденные документы или додумывает от себя.
DeepEval — open-source фреймворк для unit-тестов LLM
DeepEval — это, по сути, pytest для LLM. Фреймворк с открытым исходным кодом (16 425 ★ на GitHub, 1 577 форков) предоставляет 14+ research-backed метрик для оценки. Его главная фишка — простой интерфейс, который легко встраивается в CI/CD пайплайны.
Вы пишете тест-кейсы, задаёте пороговые значения для каждой метрики и запускаете deepeval test run. Результат — pass или fail с детальным разбором, почему тест не прошёл. Работает с любыми LLM — OpenAI, Anthropic, локальные модели через Ollama.
Пример простого теста на faithfulness:
from deepeval import test_case
from deepeval.metrics import FaithfulnessMetric
metric = FaithfulnessMetric(threshold=0.7)
test = test_case(
input="Какие модели DeepSeek доступны?",
actual_output="DeepSeek R1 и V3 доступны на Hugging Face",
retrieval_context=["DeepSeek R1 и V3 — open-source модели..."]
)
metric.measure(test)
print(f"Score: {metric.score}, Pass: {metric.is_successful()}")
Из коробки DeepEval поддерживает faithfulness, answer relevancy, hallucination, bias, toxicity, и ещё десяток метрик. Для каждой метрики есть встроенный LLM-as-judge — модель оценивает другую модель. Это звучит странно, но на практике работает хорошо: DeepEval использует собственные скоринговые модели, а не оцениваемую.
Где DeepEval слаб — в тестировании многошаговых диалогов. Метрики для multi-turn conversations появились, но пока сырые. Если ваш AI-агент общается в несколько раундов (собирает данные, уточняет, отвечает), DeepEval лучше комбинировать с инструментами трассировки.
Ещё одна проблема — пороговые значения. Вы ставите threshold на 0.7, тест падает. Но что это значит — «ответ недостаточно точен» или «метрика шумит»? Разработчики DeepEval рекомендуют подбирать пороги эмпирически на эталонном датасете из 50-100 примеров, но это дополнительная работа.
RAGAS — метрики для RAG-систем
RAGAS (Retrieval Augmented Generation Assessment) — де-факто стандарт для оценки RAG-систем. 14 499 ★ на GitHub, 1 502 форка. В отличие от DeepEval, который покрывает общие метрики, RAGAS заточен под оценку пайплайна поиска и генерации по отдельности.
Это важно, потому что в RAG-системе проблема может быть на любом этапе. Хороший поиск, но плохая генерация — и ответ неверный. И наоборот: генерация отличная, но поиск вернул мусор — пользователь получает нерелевантный ответ. RAGAS раскладывает это на составляющие.
Context Precision — насколько релевантен контекст, который вернул поиск. Context Recall — не упустил ли поиск что-то важное. Faithfulness — придерживается ли генерация найденного контекста. Answer Relevancy — отвечает ли ответ на вопрос пользователя. Четыре метрики покрывают всю цепочку от запроса до ответа.
RAGAS лёгкий и framework-agnostic. Можно интегрировать в любой пайплайн — хоть LangChain, хоть прямые вызовы API. Минус — RAGAS не умеет в тестирование агентов, мультимодальные модели и сложные диалоги. Это инструмент для одной задачи, но в ней он лучший.
LangSmith — трассировка и отладка от создателей LangChain
LangSmith — самый зрелый инструмент в этой экосистеме. Он сочетает трассировку, оценку, площадку для промптов и управление датасетами в одной платформе.
Трассировка — главная суперсила LangSmith. Каждый вызов LLM, каждая цепочка, каждый шаг агента записывается с таймингами, токенами и полным контекстом. Когда агент выдаёт странный ответ, вы за минуту находите проблемный шаг — неверный вызов инструмента, неправильный промежуточный ответ, превышение контекстного окна.
Помимо трассировки, LangSmith предоставляет встроенную оценку с кастомными скоринговыми функциями, человеческую разметку (human annotation queues) и площадку для A/B-тестирования промптов с side-by-side сравнением.
Минус — привязка к экосистеме LangChain. Если вы используете другой фреймворк (CrewAI, AutoGen, OpenAI Agents SDK), интеграция потребует дополнительных усилий. Также LangSmith платный: от $39 в месяц за команду. Для небольших проектов может быть избыточным.
Процесс оценки: от промпта до дашборда с метриками
Arize Phoenix — observability для продакшена
Arize Phoenix (10 248 ★ на GitHub) — open-source инструмент на стыке мониторинга и оценки. Он построен на OpenTelemetry и собирает данные обо всех шагах LLM-приложения в продакшене: запросы, ответы, вызовы инструментов, метаданные.
Phoenix хорош тем, что работает независимо от фреймворка. Неважно, на чём собран ваш AI-агент — LangChain, CrewAI или кастомная логика. Phoenix подключается через OTel SDK и начинает собирать трейсы. Это особенно ценно для гетерогенных систем, где разные агенты используют разные фреймворки.
Из коробки Phoenix предлагает LLM-as-judge оценку, анализ эмбеддингов (визуализация качества поиска) и эксперименты с A/B-сравнением промптов и моделей. Но главное — это production-observability в реальном времени. Вы видите, что прямо сейчас падает качество, и можете разобраться, почему.
Слабая сторона Phoenix — pre-production тестирование. Он заточен на мониторинг работающей системы, а не на генерацию тестов или создание датасетов. Для предрелизного тестирования всё равно понадобится DeepEval или RAGAS.
Сравнение инструментов: что выбрать
Ни один инструмент не покрывает все сценарии. В production-командах обычно используют 2-3 инструмента вместе. Вот как они соотносятся.
| Инструмент | Тип | Сильная сторона | GitHub ★ | Цена |
|---|---|---|---|---|
| DeepEval | Open-source | Unit-тесты, 14+ метрик | 16.4K | Бесплатно |
| RAGAS | Open-source | RAG-метрики | 14.5K | Бесплатно |
| LangSmith | Коммерческий | Трассировка, отладка | — | От $39/мес |
| Langfuse | Open-source | AI engineering platform | 29.6K | Freemium |
| Arize Phoenix | Open-source | Production observability | 10.2K | Бесплатно |
| Garak (NVIDIA) | Open-source | Безопасность, red-teaming | 8.2K | Бесплатно |
Выбор зависит от вашей ситуации:
Если вы только начинаете тестировать LLM — начните с DeepEval. Это бесплатно, просто, покрывает базовые метрики. Добавьте RAGAS, если у вас RAG-система. Когда понадобится трассировка и понимание, что происходит внутри агента — подключайте LangSmith или Arize Phoenix.
Если у вас production-система с многошаговыми агентами — Phoenix обязателен для observability, DeepEval для предрелизных тестов. Если вы плотно сидите на LangChain — LangSmith даст интеграцию «из коробки», но привяжет вас к экосистеме.
Для безопасности — Garak от NVIDIA отдельной строкой. Мы рекомендуем прогонять его хотя бы раз в месяц на критически важных агентах, особенно если агент обрабатывает персональные данные.
Как собрать пайплайн оценки
На основе того, что разобрали выше, вот практический рецепт для production-системы. Он проверен на реальных проектах — включая наших собственных агентов в N202.
Шаг 1. Соберите эталонный датасет. 100-200 примеров входных запросов с ожидаемыми ответами или критериями оценки. Покройте основные сценарии, граничные случаи и типичные ошибки. Датасет — самая дорогая и самая важная часть. Хороший датасет важнее любого инструмента.
Шаг 2. Выберите метрики и пороги. Начните с faithfulness (0.7), answer relevancy (0.7), hallucination (<0.3). Запустите на датасете, посмотрите распределение, подкрутите пороги. Итеративно — 3-4 прогона, пока пороги не начнут отсекать реально плохие ответы.
Шаг 3. Интегрируйте в CI/CD. DeepEval для этого идеален. Добавьте шаг в GitHub Actions или GitLab CI — прогон тестов при каждом пуше, блокировка мержа при падении. Пример для GitHub Actions:
name: LLM Tests
on: [push]
jobs:
eval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install deepeval
- run: deepeval test run tests/
Шаг 4. Production мониторинг. Подключите Arize Phoenix через OpenTelemetry. Собирайте трейсы всех запросов, настройте алерты на падение метрик. Если faithfulness упал ниже порога в продакшене — вы должны узнать об этом за минуты, а не через неделю по жалобам пользователей.
Шаг 5. Red-teaming. Раз в месяц прогоняйте Garak на критических агентах. Проверьте устойчивость к промпт-инъекциям, утечкам данных, джейлбрейкам. Это особенно важно, если агент работает с внешними данными или имеет доступ к внутренним системам.
Шаг 6. Human review для сложных случаев. Автоматические метрики не заменят человеческого суждения. Настройте семплинг — 5-10% production-запросов отправляются на ручную проверку. LangSmith и Langfuse предоставляют human annotation queues для этого.
Коротко
Тестирование LLM — это не опция, а обязательный этап production-внедрения. Без него вы узнаёте о проблемах от пользователей.
DeepEval — лучший выбор для старта: open-source, 14+ метрик, CI/CD-интеграция. RAGAS — если у вас RAG-пайплайн. LangSmith — когда нужна трассировка каждого запроса. Arize Phoenix — для observability в продакшене. Garak — для безопасности и red-teaming.
Главное правило: начните с трёх метрик (faithfulness, answer relevancy, hallucination), соберите эталонный датасет и интегрируйте тесты в CI/CD. Остальное донастраивается по мере роста системы.