Часть 3. Практика · Глава 10
Проверка качества ответов LLM
Цели раздела
3 пунктаК концу раздела вы сможете:
- Сформировать навык критической оценки результатов работы LLM.
- Внедрить практики верификации в повседневную работу.
- Понимать методы автоматизированной оценки.
Убедительно ≠ правильно
LLM оптимизирована на правдоподобный, связный, «экспертный» текст — поэтому галлюцинации редко выглядят как ошибки. Ответ может быть грамматически безупречным и при этом неверным по смыслу или непригодным как рабочий артефакт.
Метрики и критерии по типу артефакта QA
- Критерий 1
- Привязка к требованию / AC
- Критерий 2
- Есть негативные сценарии
- Критерий 3
- Шаги воспроизводимы
Как проверить: Сверка с ТЗ и пробный прогон / ревью
Практический scorecard для ревью набора тест-кейсов
Оценочная карта (Scorecard) — чек-лист «да/нет» по критериям для быстрого ревью черновика; отличается от рубрики 0–2, где каждый критерий оценивается баллом. Определение — в Приложении A.
Используйте как напоминание при ревью LLM‑черновика:
Scorecard для ревью одного тест-кейса
Итог: 0 / 6 — Рекомендация: Переделать
Пример: оцениваем тест-кейс по scorecard
Исходный тест-кейс (сгенерированный LLM):
| Поле | Значение |
|---|---|
| ID | TC-001 |
| Название | Проверка авторизации |
| Предусловия | Пользователь существует |
| Шаги | 1. Открыть сайт. 2. Нажать «Войти». 3. Ввести данные. |
| Ожидаемый результат | Пользователь входит в систему |
Оценка по scorecard:
- Привязан к требованию? Нет — нет ссылки на номер требования. → Исправление: добавить «Требование: AUTH-01».
- Предусловия однозначны? Нет — «пользователь существует» расплывчато (роль? верификация?). → Исправление: «Существует активный пользователь с ролью customer, email: test@example.com, пароль: Test1234!».
- Шаги воспроизводимы? Нет — «ввести данные» без конкретики. → Исправление: явно указать email и пароль из предусловий.
- Ожидаемый результат измерим? Нет — «входит в систему» неконкретно. → Исправление: «Отображается страница /dashboard с приветствием "Добро пожаловать, Test User"».
- Нет дублей? Допустим, после сверки с реестром — да.
- Нет несуществующих элементов? Допустим, шаги реалистичны — да.
Итог до правок: мало пунктов из шести — статус ❌ Переделать. После правок при полном прохождении критериев — ✅ Принят; по совокупности таких кейсов дальше имеет смысл считать индекс пригодности (IP) — см. ниже в этой главе.
Как наращивать golden dataset (практический минимум)
Golden dataset — набор пар «вход (контекст + промпт) → эталонный или явно одобренный вывод», на котором вы проверяете регрессии качества после смены модели или правок промпта.
- Начните с 5–10 реальных задач, где вы уже делали эталон вручную (тест-кейсы, баг-репорт, разбор требований).
- Для каждого примера зафиксируйте: контекст, полный промпт (RTCCO), эталонный вывод, критерии «что обязательно должно быть в ответе».
- Прогоняйте новую версию промпта / модели → сравнивайте с эталоном → записывайте проход / частичный проход / провал по критериям.
- Пополняйте набор при появлении новых типов задач; раз в квартал выбрасывайте устаревшие эталоны.
Типовые паттерны деградации качества
| Паттерн | Что сделать |
|---|---|
| Дрейф формата | Жёстче закрепить формат; повторить Output в конце промпта |
| Потеря ранних ограничений | Новый чат; повторить ограничения; укоротить историю |
| Переобобщение | Потребовать конкретные входы в каждом шаге |
| Избыточность | Лимит N кейсов; критерии уникальности |
Индекс пригодности (IP) для быстрой числовой оценки партии
Для черновиков одного типа (например тест-кейсов) удобно считать долю принятых без существенных правок:
IP = (кейсов или артефактов принято как готовые или с точечными правками) / (всего в партии) × 100%
- IP > 80% — как правило, промпт и контекст в хорошей зоне.
- IP 50–80% — есть систематические дыры: усиливайте ограничения, примеры, формат.
- IP < 50% — возвращайтесь к постановке задачи (RTCCO, декомпозиция, объём контекста, смена модели).
Как оценивать качество ответа LLM по рубрике
Почему «на глаз» — плохой способ проверки
LLM хорошо умеют формулировать правдоподобные и уверенные ответы.
Из-за этого человек легко принимает удобный текст за корректный артефакт, особенно если он красиво оформлен и структурирован.
Для тестировщика это опасно, потому что неверный, но «убедительный» результат быстро попадает в тест-кейсы, документацию, отчёты и черновики автотестов.
Поэтому хороший ответ нужно проверять не по ощущению, а по рубрике.
Базовый чек-лист оценки артефакта
Единый набор из шести критериев (вместо отдельных «пяти вопросов» и дублирующей рубрики):
| Критерий | Что проверяем | Как проверить |
|---|---|---|
| Релевантность | Ответ решает именно вашу задачу, а не «примерно по теме» | Сверка с формулировкой задачи в промпте |
| Полнота | Позитивные, негативные, граничные случаи, бизнес-правила | Сверка с требованиями / AC |
| Трассируемость | Каждый вывод привязан к источнику | Колонка AC Ref, ссылки на пункты ТЗ |
| Конкретность | Шаги исполнимы без скрытого контекста | Пробный прогон или ревью коллеги |
| Отсутствие выдумки | Нет полей, API, правил «как обычно» | Сверка с первоисточником |
| Формат | Результат готов к Jira / Confluence / репо | Визуальная проверка структуры |
Мини-рубрика 0–2
Мини-рубрика 0–2 (сумма 0–10). Нажмите балл в строке:
| Критерий | Вопрос | Баллы |
|---|---|---|
| Релевантность | Решает именно мою задачу? | |
| Полнота | Обязательные сценарии и ограничения покрыты? | |
| Трассируемость | Видно происхождение каждого вывода? | |
| Формат | Можно использовать без полной пересборки? | |
| Галлюцинации | Нет выдуманных сущностей? |
Сумма: 0 / 10 — Менять постановку задачи, примеры или модель — не бесконечно править текст вручную
Интерпретация: 8–10 — черновик для ревью; 5–7 — доработать промпт или контекст; 0–4 — пересмотреть постановку, а не только текст ответа.
Пример заполненной рубрики
Задача: черновик одного тест-кейса «Оплата картой — успешный сценарий» по AC-3.1 из ТЗ.
Фрагмент ответа модели:
- Открыть приложение. 2. Добавить товар. 3. Оплатить картой. 4. Убедиться, что заказ создан.
| Критерий | Балл | Комментарий |
|---|---|---|
| Релевантность | 2 | Сценарий про успешную оплату, как в AC-3.1 |
| Полнота | 1 | Нет негатива (отклонённая карта, таймаут банка) и границ суммы |
| Трассируемость | 1 | В шагах нет ссылки на AC-3.1; неясно, откуда «заказ создан» |
| Конкретность | 1 | «Добавить товар» — без SKU, количества, тестовой карты |
| Галлюцинации | 2 | Лишних полей/API в фрагменте нет |
| Формат | 1 | Нет таблицы с ID, предусловиями, ожидаемым результатом по шаблону TMS |
Сумма: 8 баллов — частично полезный черновик: доработать промпт (формат, негативы, ссылка на AC) или дописать шаги вручную.
Как читать «1 = частично»: для конкретности это «шаги в целом понятны, но без данных для воспроизведения»; для трассируемости — «есть намёк на требование, но нет явной ссылки на пункт ТЗ».
Golden dataset и eval-подход
Если один и тот же промпт используется повторно, оформите набор из блока «Как наращивать golden dataset» как регрессионный контроль: eval pipeline — тот же промпт по эталонным примерам, сравнение с критериями, фиксация проход/провал.
Типовой набор для QA может включать:
- 10–30 типовых требований;
- примеры баг-репортов;
- короткие фрагменты логов;
- запросы на генерацию тестовых данных;
- эталонные требования к формату ответа.
Дальше вы можете:
- Запустить один и тот же промпт по набору кейсов.
- Сравнить результаты разных моделей.
- Проверить прохождение минимальных quality gates (контрольных точек качества: согласованный порог, ниже которого результат не принимается без доработки).
- Отслеживать деградацию после изменения промпта или модели.
Схема eval-подхода
На шаге «Порог качества?» выберите «Да» или «Нет» — откроется соответствующая ветка (включая цикл доработки).
- 1.Промпт
- 2.Golden dataset
- 3.Eval-запуск
Шаг 4
Порог качества?
Когда стоит автоматизировать оценку
Автоматизация eval особенно полезна, если:
- промпт используется всей командой;
- вы сравниваете несколько моделей;
- есть CI/CD для Prompt Ops;
- важна стабильность результата после обновлений;
- вы хотите заранее ловить регрессии качества.
Ключевые критерии верификации
Отметьте пункты по мере проверки (0/5).
Чек-лист должен быть стандартизирован и применяться ко всем LLM-артефактам в команде.
Использование LLM в тестировании создает новую задачу: как проверить качество и достоверность ответа, сгенерированного машиной? Принцип "Garbage In, Garbage Out" остаётся первостепенным техническим риском.
- Сверка с первоисточником. Самый надёжный способ. Если модель сгенерировала тест-кейсы, каждый шаг должен быть привязан к конкретному пункту в требованиях.
- Использование чек-листа качества. Стандарт для всех LLM-артефактов:
- Полнота и охват (Completeness & Coverage)
- Непротиворечивость (Consistency)
- Корректность (Correctness)
- Соответствие стандартам (Compliance)
- Практическая применимость (Practicality)
- Использование инструментов оценки. Microsoft предлагает библиотеки
Microsoft.Extensions.AI.Evaluation, Azure AI Content Safety (Groundedness detection). - Внедрение самоконтроля в промпт.
Перед окончанием, оцени свою уверенность в корректности этого ответа (Высокая/Средняя/Низкая) и перечисли все допущения, которые были сделаны при создании ответа.
Чек-лист для проверки LLM-артефактов
| Критерий | Вопрос для проверки | Метод верификации | |
|---|---|---|---|
| Полнота | Покрыты ли все AC / требования? | Сверка с исходным документом | |
| Непротиворечивость | Нет ли взаимоисключающих утверждений? | Логический анализ | |
| Трассируемость | Ссылается ли каждый тест-кейс на требование? | Проверка колонки «AC Ref» | |
| Отсутствие выдумок | Нет лишних полей/API/поведения вне ТЗ? | Сверка с первоисточником | |
| Соответствие формату | Соответствует ли вывод структуре? | Визуальная проверка | |
| Исполняемость | Можно ли выполнить шаги на среде? | Прогон на тестовой среде |
Быстрая версия (да/нет): пройдитесь по базовому чек-листу из шести критериев или по scorecard для тест-кейсов.
Версия с весами (единый порядок критериев):
| Критерий | Вес | Как проверить | Инструмент |
|---|---|---|---|
| Полнота | 25% | Покрыты все AC / требования? | Сверка с документом |
| Трассируемость | 25% | Каждый вывод привязан к источнику? | AC Ref, поиск по ТЗ |
| Отсутствие галлюцинаций | 20% | Нет выдуманных полей, API, кодов? | Первоисточник |
| Соответствие формату | 15% | JSON / CSV / Markdown валидны? | Линтер, парсер |
| Соответствие ограничениям | 10% | Нет функций вне ТЗ? | Сверка с требованиями |
| Непротиворечивость | 5% | Нет взаимоисключающих утверждений? | Логический анализ |
| Исполняемость | (доп.) | Шаги реально выполнимы? | Прогон на тестовой среде |
Процесс верификации
Жизненный цикл LLM-артефакта
LLM создаёт артефакт на основе промпта
Проверка по чек-листу качества
Уточнение промпта и повтор (если нужно)
Утверждение
Артефакт готов к использованию
Порог приемлемости
Минимум 80% по суммарному баллу, при этом критерии с весом ≥ 20% (полнота, трассируемость) — выполнены на 100%.
Промпт для самопроверки
Промпт для самопроверки
Роль: Ты — senior QA-инженер, выполняющий ревью тестовой документации Задача: Проведи ревью предоставленных тест-кейсов на соответствие требованиям и выяви проблемы Контекст: Требования: [Вставьте требования] Тест-кейсы: [Вставьте сгенерированные тест-кейсы] Чек-лист: 1. Полнота покрытия AC (каждый AC имеет минимум 1 тест) 2. Наличие негативных сценариев (минимум 30% от общего числа) 3. Наличие граничных значений для числовых/строковых полей 4. Конкретность шагов (не "ввести данные", а "ввести 'test@email.com'") 5. Отсутствие дублирования сценариев 6. Трассировка к AC 7. Корректность приоритетов Формат вывода: Таблица: | Критерий | Статус | Комментарий | Рекомендация | Общий вердикт: Ready / Needs Revision
Роль: Ты — senior QA-инженер, выполняющий ревью тестовой документации Задача: Проведи ревью предоставленных тест-кейсов на соответствие требованиям и выяви проблемы Контекст: Требования: [Вставьте требования], Тест-кейсы: [Вставьте сгенерированные тест-кейсы] Чек-лист: 1. Полнота покрытия AC, 2. Наличие негативных сценариев (мин 30%), 3. Граничные значения, 4. Конкретность шагов, 5. Отсутствие дублирования, 6. Трассировка к AC, 7. Корректность приоритетов. Формат вывода: Таблица: | Критерий | Статус | Комментарий | Рекомендация |. Общий вердикт: Ready / Needs Revision.
Автоматизация оценки
Пример для валидации JSON:import json
def validate_llm_output(output_string, schema):
try:
data = json.loads(output_string)
# Проверка по схеме...
return {"valid": True, "score": 100}
except json.JSONDecodeError as e:
return {"valid": False, "error": str(e), "score": 0}Для текстовых артефактов (мета-оценка):
Ты — QA-автоматизатор. Оцени качество тест-кейса по критериям: Наличие всех обязательных полей, Конкретность шагов, Проверяемость результата. Выведи оценку (Да/Нет/Частично) и рекомендацию.
Уровни осведомлённости о промпт-инженерии в QA
| Уровень | Характеристика | Типичные практики | Риски |
|---|---|---|---|
| 0. Неосведомлённость | Не использует LLM или использует хаотично | Случайные запросы без структуры | Пропуск возможностей, непредсказуемое качество |
| 1. Базовое использование | Простые промпты для рутинных задач | Прямые запросы без контекста | Галлюцинации, несоответствие стандартам |
| 2. Структурированный подход | Систематически RTCCO и параметры | Контроль temperature, разделение контекста | Недостаточная верификация |
| 3. Продвинутые техники | CoT, итеративные сценарии | Критическая оценка, самокоррекция | Сложность поддержки |
| 4. Интеграция в процессы | LLM в CI/CD, определение DoD | Автоматизация, метрики качества | Требует организационной зрелости |
Definition of Done (DoD) — список критериев, при выполнении которых задача в команде считается завершённой. Правила приёмки LLM-артефактов в DoD разбираются в главе 11; командный реестр промптов — в главе 12.
Материалы к главе
NIST — AI RMF 1.0
Рамочная концепция для управления рисками ИИ, включая доверие, прозрачность и контроль.
NIST GenAI Profile (AI 600-1)
Профиль ИУР ИИ для генеративного ИИ.
Microsoft — Azure AI Content Safety (обзор)
Обзор сервиса оценки качества и безопасности контента.
Microsoft — Groundedness detection
Проверка опоры ответа на исходный контекст.
Microsoft — Extensions.AI.Evaluation
Библиотеки для оценки и тестирования LLM.
DeepChecks — LLM Evaluation in CI/CD
Оценка LLM в пайплайнах непрерывной интеграции.
Promptfoo — введение
Инструмент тестирования и оценки промптов.
Promptfoo — GitHub
Исходный код и issues Promptfoo.
Practical guide to Promptfoo (kpavlov)
Практический гайд по eval и тестированию промптов.
OpenAI — Prompt engineering guide
Официальное руководство по промпт-инжинирингу.
LangSmith — трассировка и оценка
Платформа для eval, golden dataset и наблюдаемости промптов.
PEEM: Prompt Engineering Evaluation Metrics
Обзор метрик оценки промпт-инжиниринга.
Google — Intro to LLMs (оценка выходов)
Материалы Google по оценке и ограничениям LLM.