Контроль качества: рубрики, тесты на полноту, антигаллюцинации, ссылки и факты
В предыдущих статьях курса мы построили управляемую генерацию: жизненный цикл артефактов, декомпозицию запроса в канонический бриф, архитектуру промптов и мульти-промпт пайплайн (анализ → план → контент → редактура → проверка), а также безопасные системные инструкции.
Теперь добавляем слой, без которого вся архитектура остаётся «красивой, но хрупкой»: контроль качества (QA) учебного контента. Его цель — сделать качество:
измеримым (есть критерии, по которым можно принять результат)
воспроизводимым (повторная генерация даёт сопоставимое качество)
ремонтопригодным (дефект локализуется и исправляется точечно)!Карта QA-слоёв и цикла «проверка-ремонт»
Что такое «качество» в AI-сгенерированном курсе
В контексте этого курса качество — это не «насколько умно звучит», а насколько материал:
соответствует каноническому брифу и ограничениям
покрывает заявленные результаты обучения без критических пробелов
применим: содержит процедуры, диагностику ошибок и критерии приёмки
фактически корректен в проверяемых утверждениях
не содержит выдуманных ссылок и ложной конкретикиЧтобы это проверить, QA обычно делят на два слоя:
Формальный QA: формат, структура, наличие обязательных разделов, соблюдение контрактов пайплайна.
Смысловой QA: полнота, логика, соответствие уровню, терминология, факты и источники.Это напрямую продолжает идею артефактов и критериев глубины из жизненного цикла и реализуется как обязательный этап проверки в мульти-промпт пайплайне.
Рубрика качества: превращаем «кажется хорошо» в измеримые критерии
Рубрика — это таблица критериев с уровнями качества и признаками того, что критерий выполнен.
Практически рубрика нужна для трёх задач:
согласовать ожидания до генерации
автоматизировать (или полуавтоматизировать) проверку
преобразовать «плохой текст» в список конкретных дефектов для ремонтаМинимальная рубрика для статьи курса
Таблица ниже — универсальная рубрика под формат, который мы закрепляли ранее (определения → процедуры → ошибки/диагностика → критерии качества результата).
| Критерий | Что проверяем | Признаки «пройдено» | Типовые дефекты | Как ремонтировать |
| --- | --- | --- | --- | --- |
| Соответствие брифу | тема, аудитория, уровень, ограничения | нет выходов за scope, тон и глубина соответствуют | «уплыл» в соседнюю тему; примеры не под аудиторию | вернуть в текст явные ограничения; удалить/заменить фрагменты |
| Полнота (coverage) | нет критических пробелов по плану | все разделы плана закрыты содержанием | пропущен важный раздел; нет предпосылки | дописать ровно пропущенное, без расширения scope |
| Процедурность | есть «как делать» | шаги, условия выбора, входы/выходы | общие советы без действий | заменить «совет» на алгоритм, добавить критерии результата |
| Термины и определения | термин не появляется раньше определения | определения даны до первого использования | «магические слова», разные значения | добавить глоссарий, унифицировать термины |
| Антиошибки и диагностика | есть типовые ошибки и как их ловить | ошибки, симптомы, причины, исправления | перечисление ошибок без диагностики | добавить «симптом → причина → тест → фикс» |
| Проверяемость | можно оценить результат | критерии приёмки, чек-лист | невозможно понять, выполнено ли | добавить измеримые признаки и примеры |
| Факты и источники | факты поддержаны источниками или помечены как допущения | ссылки реальны, уместны, не выдуманы | фиктивные ссылки; «исследования показывают» без источника | удалить неподтверждённое, либо добавить источник, либо пометить как предположение |
Уровни качества: полезный минимум для автоматизации
Чтобы рубрика работала в пайплайне, удобно задавать уровни:
Fail: критерий не выполнен, материал непригоден без ремонта.
Pass: критерий выполнен на минимально приемлемом уровне.
Strong: критерий выполнен так, что материал можно масштабировать (в методичку, в курс, в корпоративный стандарт).Важно: уровни должны быть описаны признаками, а не оценочными словами.
Тесты на полноту: как находить критические пробелы
«Полнота» — это не «много текста», а покрытие нужных элементов. В курсе мы уже вводили идею карты покрытия; теперь превращаем её в тест.
Тест «план → покрытие»
Вход:
утверждённый план статьи
результаты обучения (или подцели статьи)Проверка:
для каждого раздела плана есть содержимое, которое:
- вводит нужные понятия
- даёт процедуру или критерии
- фиксирует типовые ошибки (если это требование формата)
Выход:
список пропусков вида «раздел плана → чего не хватает → почему это критично → что добавить»Практический артефакт — таблица покрытия:
| Элемент плана | Что должно быть | Что есть сейчас | Дефект |
| --- | --- | --- | --- |
| Термины | определения до использования | частично | не определены 2 ключевых термина |
| Процедура | шаги и условия выбора | нет | текст описательный, без алгоритма |
| Проверка качества | критерии приёмки | есть | ок |
Тест «обязательные компоненты глубины»
Это проверка на соответствие критериям «достаточно глубоко» из первой статьи.
Минимальный набор для продвинутого урока:
определения
процедура (или несколько альтернатив с условиями выбора)
типовые ошибки
диагностика (как обнаружить ошибку)
критерии качества результатаЕсли отсутствует хотя бы один компонент, у вас почти всегда будет иллюзия глубины: текст выглядит серьёзно, но не даёт действия и контроля качества.
Тест «предпосылки»
Частая причина провалов — скачки сложности. Проверка простая:
каждый новый термин или метод должен либо:
- быть определён в тексте
- быть указан как пререквизит в брифе
Если нет ни того, ни другого — это дефект соответствия уровню.
Антигаллюцинации: как снижать риск выдумок
Галлюцинация в учебном контенте — это правдоподобное утверждение, которое не имеет надёжной опоры: источник выдуман, факт сомнителен, или модель уверенно заполняет пробелы.
Важно: полностью исключить галлюцинации невозможно, но можно системно снизить их вероятность и сделать их обнаружение ремонтопригодным.
Политика неопределённости
Фундаментальный антигаллюцинационный механизм — не «пусть модель угадает», а:
если факт важен для вывода, но нет источника — пометить как неопределённость
если параметр влияет на структуру курса — вынести как допущение и предложить уточнениеЭто продолжает практику из статьи про декомпозицию: допущения должны быть явными, иначе они превращаются в скрытую выдумку.
Паттерн «утверждение → опора → статус»
Для контента, где важны факты и ссылки, полезно вводить внутренний (системный) контракт проверки: каждое значимое утверждение должно иметь статус.
Три статуса достаточно:
Источник: есть ссылка на надёжный источник.
Общее знание: утверждение общеизвестно и не требует ссылки (но не должно быть спорным).
Допущение: явно сказано, что это предположение или упрощение.Если утверждение не попадает ни в один статус — это кандидат на удаление или переписывание.
Использование внешних источников и RAG как средство контроля, а не украшение
Если система использует поиск или базу знаний (RAG), антигаллюцинационный смысл такой:
модель не должна придумывать источники
факты, завязанные на конкретику, должны опираться на извлечённые фрагментыИнженерная рекомендация:
разделяйте шаги «найти источники/фрагменты» и «написать текст»
храните извлечённые фрагменты как артефакт пайплайна (их можно ревьюить)Общий ориентир по угрозам и рискам для LLM-приложений, включая ошибки из-за недоверенных данных и инъекций, собран в стандартизированном виде: OWASP Top 10 for LLM Applications.
Самопроверка как отдельная роль (но без раскрытия внутренних инструкций)
В мульти-промпт пайплайне антигаллюцинации лучше работают, когда проверка отделена от генерации:
генератор пишет текст по плану
проверяющий ищет слабые места: «где факт выглядит конкретным, но без опоры»
ремонт происходит точечноЭто снижает эффект «я сам себе верю». Концептуально близкая идея разделения рассуждений и действий встречается в агентных подходах, например в ReAct: ReAct: Synergizing Reasoning and Acting in Language Models.
Тесты на галлюцинации, которые реально применять
Ниже — практичные тесты, которые можно встроить в шаг проверки.
| Тест | Что ищем | Примеры «триггеров риска» | Действие |
| --- | --- | --- | --- |
| Тест на ложную конкретику | точные числа, даты, названия без источника | «в 2021 году доказали…», «точность 93%» | добавить источник или заменить на более общее утверждение |
| Тест на фиктивные ссылки | ссылка выглядит правдоподобно, но может не существовать | странный домен, «/blog/…» без автора, битые URL | удалить ссылку, заменить реальным источником |
| Тест на «исследования показывают» | обобщение без опоры | «учёные выяснили», «по данным экспертов» | требовать конкретную ссылку или убирать фразу |
| Тест на неподтверждённые определения | термины определены «как хочется» | авторские определения без оговорки | пометить как локальное определение курса или заменить общеупотребимым |
Ссылки и факты: правила, которые предотвращают 80% проблем
В генераторах курсов ссылки нужны не «для солидности», а для двух функций:
дать проверяемую опору для спорных или специфичных утверждений
показать студенту, где углублятьсяПравило «ссылка должна быть проверяемой»
Минимальные требования к источнику:
источник существует и открывается
понятно, что это за источник (авторы, организация, репозиторий, стандарт)
ссылка уместна: подтверждает именно то утверждение, рядом с которым стоитЕсли вы не уверены в валидности ссылки, безопаснее:
не давать её вовсе
или заменить на источник, в существовании которого вы уверены (например, стандарт, известная статья, документация)В рамках этого курса примеры источников, уместных для инженерной части:
документация по промпт-инжинирингу: Prompt engineering (OpenAI)
таксономия когнитивных уровней: Bloom's taxonomyПравило «разделяйте normative и informative ссылки»
Полезная дисциплина для методичек:
Normative: на что вы опираетесь как на правило/стандарт в данном курсе (например, политика безопасности, формат артефактов).
Informative: что даёте как дополнительное чтение.Даже если вы не пишете эти метки в тексте, полезно держать их на уровне QA: иначе ссылки превращаются в случайный список.
Правило «не маскировать мнение под факт»
В учебном тексте часто встречаются утверждения, которые являются хорошей практикой, но не «истиной».
Как писать корректно:
вместо «правильно делать так» писать «практически часто работает так при условиях X»
явно указывать, что это эвристика или паттернЭто снижает риск конфликта с реальным опытом студента и уменьшает стимул модели «додумывать доказательства».
Контроль согласованности: термины, логика, отсутствие противоречий
Даже если факты корректны, курс может развалиться из-за дрейфа терминов и логики.
Тест на терминологическую согласованность
Вход:
глоссарий (или список ключевых терминов)
текст статьиПроверка:
один термин используется в одном значении
нет скрытых синонимов, которые ломают понимание (например, «бриф» и «ТЗ» внезапно становятся разными сущностями)Ремонт:
унифицировать термин
если нужно два термина — явно развести определенияТест на логическую согласованность
Проверка:
нет взаимоисключающих требований (например, «не добавляй темы вне плана» и «добавь дополнительные темы для полноты» без процедуры пересогласования)
выводы опираются на введённые определенияПрактически это часто выявляется вопросом:
«какие 3 утверждения в тексте являются опорными, и где они обоснованы?»Если обоснование отсутствует — либо добавляйте его, либо ослабляйте формулировку.
Как встроить QA в мульти-промпт пайплайн
Связь с предыдущей статьёй про этапы пайплайна здесь прямая: QA — это не один «финальный просмотр», а серия проверок на каждом шаге.
На этапе анализа (бриф)
тест на конфликт требований и ограничений
фиксация критериев качества и глубины как части брифа
явные допущения вместо скрытыхНа этапе плана
тест на полноту плана относительно результатов обучения
запрет на расширение scope без пересогласования
формирование начального глоссарияНа этапе контента
проверка, что текст следует плану
проверка обязательных компонентов глубины (определения, процедуры, ошибки, критерии)
маркировка мест, где сделаны допущенияНа этапе редактуры
удаление повторов и «воды» без потери процедурности
выравнивание терминов
усиление проверяемости (критерии приёмки)На этапе проверки
рубрика (Pass/Fail/Strong) по ключевым критериям
тесты на полноту и противоречия
антигаллюцинационные тесты: ложная конкретика, слабые ссылки
выдача отчёта дефектов для точечного ремонтаФормат отчёта QA: делаем дефекты ремонтопригодными
Чтобы проверка не превращалась в «вроде нормально», используйте структурированный отчёт.
Минимальная структура:
список дефектов
серьёзность: критично, важно, косметика
место в тексте (раздел/абзац)
почему это дефект (ссылка на критерий рубрики)
предложенный ремонт (что именно изменить)Пример схемы дефекта (в текстовом виде):
Дефект: отсутствует процедура выбора между подходами
Серьёзность: критично
Критерий: процедурность
Где: раздел про антигаллюцинации
Ремонт: добавить алгоритм «когда нужен источник / когда допустимо общее знание / когда фиксировать допущение»Именно такой формат делает QA совместимым с принципом «ремонт вместо регенерации» из пайплайна.
Типовые ошибки контроля качества в генераторах курсов
Проверяют только формат, но не смысл.
Путают полноту с объёмом: добавляют больше текста вместо закрытия пробелов.
Добавляют ссылки «для вида», не проверяя соответствие утверждению.
Не отделяют допущения от фактов.
Пытаются «убрать галлюцинации» запретом, но не дают процесс: где брать опору и как помечать неопределённость.Итог: минимальный набор QA, который даёт стабильность
Если у вас ограничены ресурсы, но нужен эффект, внедрите минимум:
рубрику качества с 6–8 критериями
тест на полноту по плану и обязательным компонентам глубины
тест на термины: определения до использования и отсутствие дрейфа
антигаллюцинационные тесты на ложную конкретику и фиктивные ссылки
структурированный отчёт дефектов и точечный ремонтЭто замыкает архитектуру курса: мы не просто генерируем учебный контент, а строим процесс, в котором качество измеряется, проверяется и чинится как инженерный объект.