«ИИ иногда врёт» — это все знают. Вопрос, который редко задают: насколько именно и стало хуже или лучше за последний месяц? Если ты не можешь ответить цифрой, ты не управляешь качеством, ты просто надеешься, что новая версия модели пишет лучше.
Я решил, что надеяться — плохая стратегия, и начал считать.
Что вообще считать за галлюцинацию
У меня в конвейере фактчекер — отдельная стадия, отдельный вызов модели, которая не видела рассуждений автора. Её работа не улучшить текст, а поймать враньё: выдуманную цифру, несуществующий отчёт, цитату, которую никто не говорил, возможность продукта, которой нет.
Каждый прогон оставляет после себя технический отчёт с машинными счётчиками:
— сколько галлюцинаций поймано;
— сколько фактов пришлось поправить;
— сколько нарушений редполитики;
— какая доля источников из белого списка Tier-1.
Дальше скрипт собирает все отчёты за месяц в одну строчку тренда. Например, реальный тренд за четыре месяца по одному агенту:
1️⃣3️⃣ Март: 6 генераций → 0 галлюцинаций
1️⃣4️⃣ Апрель: 12 генераций → 2 (0.2 на генерацию)
1️⃣5️⃣ Май: 15 генераций → 18 (1.2 на генерацию) ❗️❗️❗️
1️⃣6️⃣ Июнь: 16 генераций → 0
Восемнадцать в мае, скачок в шесть раз на сгенерированный материал. Без метрики я бы это не заметил: фактчекер своё отработал, враньё поймано до публикации. Но цифра говорит о поломке в генерации. Разобрался и в июне снова ноль. Вот ради этого момента всё и затевалось: метрика поймала регресс, которого не видно глазами.
Как я это проверяю
Тут важный момент: если бы галлюцинации считал я сам, вручную перечитывая статьи, грош цена такой метрике. Весь подсчёт механический, я к нему руками не прикасаюсь.
Работает так:
1. Каждый прогон сам оставляет отчёт. Когда конвейер отработал, он пишет рядом технический файл-компаньон. В самом низу у него строчка машинных тегов, буквально:
hallucination:4, fact-corrections:6, policy-violations:0, cite-safety:8Эти числа выставляет фактчекер по итогам своей стадии.
2. Там же таблица целостности. Отдельно отчёт фиксирует, что финальная редактура ничего не сломала: чисел было 47 — осталось 47, ссылок 18 — осталось 18, атрибуций 12 — 12. Если что-то разошлось, это видно сразу, а не всплывает в публикации.
3. Одна команда собирает всё в кучу: проходит по всем отчётам, вытаскивает эти теги и складывает в таблицу — по каждой статье строка: тип, тема, галлюцинации, коррекции, нарушения, доля Tier-1.
4. Вторая команда сворачивает в тренд — группирует всё по месяцам и считает дельты.
Получается честная цепочка без моего участия в середине: фактчекер разметил → парсер собрал → тренд показал. Я вклиниваюсь только в самом конце — читаю итог.
Важно!
«0 галлюцинаций» ≠ «модель идеальна». Это значит, что могут быть галлюцинации, которые фактчекер прозевал и факт уехал в публикацию. Поэтому есть второй контур — сверка уже вышедшей статьи с черновиком. То, что просочилось мимо всех проверок, всплывает там. Одна метрика ловит пойманное, вторая — пропущенное.
Плюс подпираю это косвенными сигналами. Доля источников Tier-1 выросла с 0.36 в апреле до 0.71 в июне — агенты стали чаще опираться на первоисточники, а не на пересказы пересказов. Меньше мусорных источников, меньше почвы для вранья.
Вывод: «ИИ иногда галлюцинирует» — это не метрика, это отмазка. Метрика — это «в мае 1.2 на статью, в июне 0, вот что я поменял между ними». Как только враньё модели становится числом с трендом, оно перестаёт быть магией и становится обычным багом, который видно на графике. А баг, который видно, уже наполовину починен.
#ai_agents