Фраза подрядчика «мы протестировали, всё работает» не содержит ни одного проверяемого утверждения. Рабочая приёмка выглядит иначе: 130 вопросов, собранных заказчиком, три метрики с заранее согласованными порогами и таблица, по которой видно, что именно чинить — состав базы, настройку поиска или инструкцию агента. Вся процедура занимает три рабочих дня и стоит 25 900 ₽ по внутренним ставкам.
Мерить надо в первую очередь поиск, а не формулировку ответа. В разборе механики поиска по своим документам есть ключевая цифра: в 8 случаях из 10 неверный ответ — вина поиска и самой базы, а не модели. Агент, которому подложили не тот регламент, ответит вежливо, связно и неправильно, и по тексту ответа это неотличимо от правильного.
Дальше — что именно считается «нужным документом» и почему это решает человек; как собрать набор из 130 вопросов и чего в нём не должно быть; три метрики и нормы по каждой; таблица диагностики, которая по комбинации трёх ответов указывает на конкретную причину; смета процедуры и цена отказа от неё; и как набор попадает в договор.
Что мы меряем: поиск, а не формулировку ответа
Агент с поиском по базе делает две разные работы, и ломаются они по-разному. Сначала система ищет в ваших документах фрагменты, относящиеся к вопросу. Потом модель пишет ответ, опираясь только на эти фрагменты. Если на первом шаге подобрано не то, второй шаг обречён: модель добросовестно перескажет чужой документ.
Ситуация, в которой среди найденных фрагментов есть тот, что действительно отвечает на вопрос. Не «похожий по теме», не «из того же регламента», а именно содержащий ответ. Определение звучит очевидно ровно до первого спора на разборе результатов — поэтому эталон размечается до прогона, а не после того, как увидели, что нашла система.
Разделить вину поиска и вину модели можно за пятнадцать минут, если в журнале есть два поля: найденные фрагменты и итоговый ответ. Нужный фрагмент не найден — вопрос к поиску и базе. Нужный фрагмент найден, а ответ всё равно неверный — вопрос к инструкции агента. Без этих двух полей разбор превращается в обмен мнениями; подробнее шесть типовых причин промаха разобраны в материале про то, почему поиск находит не тот документ.
Тестовый набор: 100 вопросов из журнала и 30 заведомо без ответа
Набор собирает заказчик. Это не формальность и не недоверие: вопросы, собранные подрядчиком, неизбежно оказываются формулировками из базы знаний, а реальные люди спрашивают иначе — короче, с опечатками, с внутренним жаргоном и без названия документа.
- 1100 реальных вопросов из журнала обращений за последние три месяца, взятые случайно, а не выбранные. Формулировки сохраняются дословно, вместе с сокращениями и ошибками. Если журнала нет — берутся переписки менеджеров и вопросы из почты.
- 230 вопросов, заведомо не покрытых базой. Это самая важная часть набора: она проверяет, умеет ли агент сказать «этого в базе нет», а не сочинить правдоподобное. Честный отказ как целевое поведение — отдельная тема, но проверяется он именно здесь.
- 3Эталон к каждому из 100 вопросов: номер документа и раздела, который считается верным источником. Пишет предметный специалист — тот, кто отвечает на такие вопросы в жизни, а не тот, кто настраивал систему.
- 4Пометка сложности: обычный вопрос, вопрос с числом или артикулом, вопрос, ответ на который лежит в двух документах сразу. Без этой разметки итог получится одной средней цифрой, из которой ничего не следует.
Схема потока данных слева направо. Слева два блока, объединённые скобкой: «100 вопросов из журнала» и «30 вопросов вне базы», от скобки стрелка в блок «Эталон: документ и раздел, размечает предметный специалист». Дальше стрелка в блок «Прогон 130 вопросов», от него две параллельные стрелки вправо: верхняя подписана «найденные фрагменты» и ведёт в блок «Сверка с эталоном — считает человек», нижняя подписана «текст ответа» и ведёт в блок «Оценка по существу — считает предметный специалист». Обе стрелки сходятся в блок «Три метрики», от него — в блок «Таблица диагностики: что чинить». Чертёжный стиль, все подписи по-русски.
Первый — взять вопросы из оглавления базы знаний: система найдёт их идеально, и замер покажет 98 % при реальных 70. Второй — дать подрядчику собрать набор самому: он соберёт добросовестно и всё равно из своей картины мира. Третий — размечать эталон после прогона: увидев, что нашла система, разметчик бессознательно подстраивает под неё определение «нужного документа». Все три ошибки одинаковы по последствиям — вы примете систему, которая не работает.
Три метрики и кто какую считает
Метрик именно три, и порядок между ними важен: каждая следующая не может быть выше предыдущей. Если она выше — где-то ошибка в подсчёте, а не хороший результат.
| Метрика | Что означает | Кто считает | Рабочая норма |
|---|---|---|---|
| Нашёлся | нужный документ есть среди найденных фрагментов, в любом месте выдачи | предметный специалист, сверяя с эталоном | 85–95 из 100 |
| В первой тройке | нужный фрагмент попал в первые три позиции выдачи | автоматически, если эталон размечен | не ниже чем на 10 пунктов хуже первой |
| Верный ответ | агент ответил по существу и сослался на источник | предметный специалист по тексту ответа | разрыв с первой не больше 10 пунктов |
| Честный отказ | на 30 вопросах вне базы агент сказал, что ответа нет | проверяется поштучно, вручную | не меньше 28 из 30 |
Первую метрику намеренно считает человек, а не система. Формально «нужный документ» можно проверять машиной по номеру из эталона — и это работает ровно до момента, когда ответ лежит в другом регламенте, о котором разметчик не подумал. Предметный специалист видит такой случай сразу; автоматическая сверка засчитает его как промах и уведёт разбор не туда. Восемь часов на разбор ста вопросов — цена этой точности.
Четыре вертикальных столбца одной шкалы, ось от 0 до 100 попаданий из 100. Столбцы подписаны снизу: «Нашёлся», «В первой тройке», «Верный ответ», «Честный отказ, из 30». Высота столбцов убывает слева направо. Горизонтальная светлая полоса-коридор на уровне 85–95 подписана справа «рабочая норма». Ниже, на уровне 70, вторая горизонтальная штриховая линия подписана «ниже — проблема в составе базы, а не в настройке»; область под ней затонирована. Между первым и вторым столбцом нарисована фигурная скобка с подписью «разрыв больше 10 пунктов — чинить ранжирование», между вторым и третьим — скобка с подписью «разрыв больше 10 пунктов — чинить инструкцию». Чертёжный стиль, все подписи по-русски.
Таблица диагностики: какая комбинация куда указывает
Ценность процедуры не в трёх числах, а в их комбинации по каждому вопросу. Одна и та же итоговая доля верных ответов в 74 % получается тремя разными способами, и лечится она в этих трёх случаях совершенно по-разному — от переделки нарезки документов до правки одного абзаца в инструкции.
| Нашёлся | В тройке | Верный ответ | Диагноз | Что чинить |
|---|---|---|---|---|
| нет | — | нет | документа в базе нет, или он нарезан так, что фрагмент не о том | состав базы и нарезка на фрагменты |
| да | нет | нет | поиск находит, но ставит нужное на восьмое место и в запрос оно не попадает | переранжирование, гибридный поиск, число фрагментов |
| да | да | нет | модель видит нужный фрагмент и всё равно отвечает не то | инструкция агента, противоречия между редакциями, формат ответа |
| да | да | да | норма | ничего |
| в базе ответа нет | — | агент всё равно ответил | нет правила честного отказа или порог отсечения слишком мягкий | инструкция и порог релевантности |
Вторая строка встречается чаще остальных и лечится дешевле всех: нужный документ система находит, но ранжирует плохо, и в запрос модели он не доезжает. Здесь помогает гибридный поиск — векторный и текстовый одновременно; в разборе эмбеддингов и векторного поиска он даёт 89 попаданий из 100 против 71 у чистого векторного. Первая же строка — самая дорогая: она означает работу с документами, а не с настройками, и это подготовка базы знаний заново.
Сколько стоит замер и во что обходится его пропуск
Процедуру выполняют внутренние люди компании плюс несколько часов инженера подрядчика на прогон и разбор. Ставки — канонические для наших расчётов: оператор 700 ₽/час, предметный специалист 900 ₽/час, инженер 3 000 ₽/час.
Теперь цена отказа. Один промах поиска — это вопрос, ушедший живому человеку: семь минут разбора по ставке 700 ₽/час, то есть 81,7 ₽. Один процентный пункт попаданий на потоке 6 000 обращений в месяц — это 60 таких промахов и 4 900 ₽ в месяц. Разрыв между типичным результатом непроверенной системы в 76 попаданий и рабочей нормой в 88 — двенадцать пунктов, то есть 58 800 ₽ в месяц.
Сравнение в две колонки. Левая колонка «Демонстрация подрядчика»: строки «10 вопросов», «вопросы выбрал подрядчик», «формулировки из базы знаний», «эталона нет», «оценка — есть ответ или нет», «результат: всё работает», «стоимость 0 ₽». Правая колонка «Собственный замер»: строки «130 вопросов», «вопросы из журнала обращений», «формулировки живые, с опечатками», «эталон размечен до прогона», «оценка по трём метрикам и корзинам», «результат: 76 из 100, чинить нарезку», «стоимость 25 900 ₽». Под колонками общая подпись: «12 пунктов разницы — это 58 800 ₽ в месяц на потоке 6 000 обращений». Чертёжный стиль, все подписи по-русски.
Три месяца работы на 76 попаданиях вместо 88 стоят 176 400 ₽ — в 6,8 раза больше, чем сам замер. И это только прямые расходы на разбор промахов, без потерянного доверия сотрудников к системе, которую они после десятка неверных ответов просто перестают открывать.
Чтобы всё это не осталось благим намерением, набор должен попасть в договор. Пять формулировок ниже стоят ноль рублей, если записаны до начала работ, и не записываются никогда, если о них вспомнили после сдачи.
- 1Тестовый набор согласуется до начала работ и прикладывается к техническому заданию. Подрядчик видит структуру набора и корзины, но не сами вопросы до прогона.
- 2Пороги приёмки записаны числами: не меньше 85 попаданий из 100 по метрике «нашёлся», разрыв между «нашёлся» и «верный ответ» не больше 10 пунктов, честный отказ не меньше 28 из 30.
- 3Прогон проводится на боевой базе, а не на демонстрационной выборке документов, и его результаты оформляются той самой таблицей диагностики, а не письмом «всё в порядке».
- 4Повторный прогон после каждой существенной доработки — за счёт подрядчика. Иначе исправление одного дефекта уносит с собой два других, и заметить это будет нечем.
- 5После сдачи набор остаётся у заказчика и превращается в регресс-набор эксплуатации. Он переживает смену подрядчика и экономит следующему исполнителю те же восемь часов разметки.
Когда замер не нужен
Процедура рассчитана на систему, которая отвечает по документам компании. В нескольких ситуациях она либо преждевременна, либо меряет не то, и делать её ради галочки не стоит.
- База ещё не собрана. Если документы не отобраны, не нарезаны и без дат вступления в силу, замер покажет катастрофу, причина которой известна заранее. Сначала база, потом измерение.
- В базе меньше 30 документов. На такой выборке поиск почти всегда попадает, и метрика перестаёт различать хорошее и плохое. Проверяйте вручную по десятку вопросов и не изображайте статистику.
- Агент не ищет по документам. Классификация писем, извлечение полей из накладной, короткое резюме звонка — там нет шага поиска, и мерить надо качество ответов на своих данных целиком, по другой процедуре.
- Пилот на две недели без продолжения. Если решение сознательно временное и через месяц будет выброшено, 25 900 ₽ и три дня людей на приёмку не окупятся. Ограничьтесь тридцатью вопросами и корзиной честных отказов.
- Нет предметного специалиста, готового потратить восемь часов. Замер без разметки эталона — это не замер, а мнение. Лучше отложить процедуру на две недели и получить настоящий результат, чем провести её силами того, кто систему настраивал.
Во всех остальных случаях замер делается один раз перед приёмкой и повторяется ежемесячно первые полгода — уже за 15 600 ₽, потому что вопросы и эталоны собраны один раз. Дальше он превращается в регулярную гигиену: поиск, который на приёмке давал 88 попаданий, через три месяца эксплуатации почти всегда даёт меньше, и узнать об этом лучше из своей таблицы, чем от сотрудников.
