Агент отвечает по-разному, потому что он не выбирает единственно верный ответ из справочника, а составляет текст слово за словом, каждый раз беря следующее слово из распределения вероятностей. Два одинаковых вопроса поэтому почти всегда дают два разных по формулировке ответа. Это не сбой и не признак плохой настройки — это устройство инструмента.

Проблема начинается там, где разными оказываются не слова, а смысл: вчера агент назвал срок доставки три дня, сегодня — пять. Разница между этими двумя случаями и есть предмет разговора с подрядчиком, потому что первый чинить не надо, а второй чинится вполне конкретными инженерными мерами и измеряется числом.

Ниже — механика разброса простыми словами, четыре источника нестабильности, которые остаются даже при самых жёстких настройках, четыре способа сузить разброс до рабочего уровня, расчёт стоимости замера на 150 вопросах и формулировка для критериев приёмки, после которой спор «он отвечает по-разному» решается за час, а не за неделю.

Механика разброса без математики

Модель на каждом шаге оценивает, каким может быть следующее слово, и получает не одно слово, а список кандидатов с вероятностями. Дальше происходит выбор. Если всегда брать самого вероятного кандидата, текст получается предсказуемым, но сухим и склонным зацикливаться. Если иногда брать второго или третьего, текст живее — и именно здесь возникает разброс.

Что это значитТемпература генерации

Настройка, которая определяет, насколько охотно модель берёт менее вероятных кандидатов. Ближе к нулю — почти всегда самый вероятный вариант, ответы становятся однообразными и сухими. Выше — больше вариативности и больше риска, что модель уйдёт в сторону. Что спросить у подрядчика: «какое значение стоит у нас, кто и когда его менял и записан ли этот параметр в приёмку».

Для делового агента температуру ставят низкой — от этого выигрывают и точность, и предсказуемость, а вариативность формулировок в ответе клиенту никакой ценности не несёт. Но и нулевая температура не даёт воспроизводимости: она убирает случайность выбора внутри модели и не трогает всё, что происходит вокруг неё.

схема процессаnedeterminizm-otvetov-ii-agenta--01
Схема выбора следующего слова: список кандидатов с вероятностями и ползунок температуры

Схема в чертёжном стиле. Слева фраза-заготовка «Срок доставки составляет...», справа вертикальный список кандидатов следующего слова с полосками вероятностей: «три» — длинная полоска, «от» — средняя, «обычно» — короткая. Под списком горизонтальный ползунок, подписанный «температура: 0 — всегда верхний кандидат, выше — иногда нижние». Ниже подпись: «выбор повторяется на каждом слове, расхождения накапливаются». Все надписи по-русски.

Разброс возникает на каждом шаге выбора и накапливается к концу ответа

Что меняется даже при нулевой температуре

Подрядчик, который обещает полную воспроизводимость «после выставления температуры в ноль», либо не сталкивался с эксплуатацией, либо упрощает. Четыре источника разброса лежат вне модели и работают независимо от её настроек.

ИсточникЧто происходитКак это выглядит для владельца
Обновление версии моделиПоставщик выкатывает новую версию, поведение меняется на части запросов«Всё работало полгода, а в понедельник поехало» — без единой правки с вашей стороны
Порядок найденных фрагментовПоиск по базе знаний возвращает те же документы в другом порядке; модель опирается на верхниеОтвет собран из другого пункта регламента, оба формально существуют
Длина истории диалогаРанние реплики вытесняются из контекста по мере роста перепискиВ начале диалога агент помнит условие, к пятнадцатой реплике — уже нет
КэшЧасть запросов отдаётся из сохранённого ответа, часть считается зановоОдин и тот же вопрос от двух сотрудников даёт разные ответы в одну минуту
Самый дорогой из четырёх — обновление версии модели

Он приходит без предупреждения и затрагивает сразу весь поток. Именно поэтому версия модели фиксируется в договоре как параметр эксплуатации, а её смена оформляется как работа: прогон контрольного набора до и после, сравнение долей расхождений, право отката на прежнюю версию. Механику такого прогона мы разбирали в материале про регресс-набор при обновлении.

Четыре способа сузить разброс

Ни один из них не убирает разброс полностью, и подрядчик, обещающий обратное, продаёт вам будущий конфликт. Вместе они сужают его до уровня, на котором расхождения перестают доходить до клиента.

  1. 1
    Жёсткий формат ответа

    Агент возвращает не свободный текст, а заполненную структуру: поле «ответ», поле «источник», поле «уверенность». Формат проверяется до показа человеку, и всё, что в него не уложилось, уходит на подтверждение. Формулировки внутри полей всё ещё различаются, но набор фактов — уже нет.

  2. 2
    Ответ только по найденному фрагменту со ссылкой

    Модель не пересказывает то, что помнит, а отвечает по конкретному куску документа и указывает, по какому именно. Это одновременно убирает большую часть выдумок и делает расхождения видимыми: если два ответа разные, сразу понятно, что нашлись разные источники, а не «модель передумала».

  3. 3
    Детерминированный слой правил для типовых вопросов

    Часы работы, статус заказа, реквизиты, стоимость по прайсу — это данные, а не рассуждение: они отдаются правилом, минуя модель. Ответ становится одинаковым по определению, а заодно дешевле и быстрее. Как разделить поток между правилами и моделью, разобрано в статье про гибридную архитектуру.

  4. 4
    Фиксация версии модели

    В договоре и в настройках указывается конкретная версия, а не «актуальная модель поставщика». Обновление становится плановой работой с прогоном контрольного набора, а не сюрпризом понедельника.

сравнениеnedeterminizm-otvetov-ii-agenta--02
Свободный ответ модели против структурированного со ссылкой на источник

Сравнение двух колонок. Левая «Свободный ответ»: три разных по длине абзаца на один вопрос, подпись «сравнивать можно только на глаз». Правая «Структурированный ответ»: три одинаковые карточки с полями «ответ: 3 рабочих дня», «источник: регламент доставки, п. 2.4», «уверенность: высокая», подпись «расхождение видно по полю, а не по тексту». Внизу общая подпись: «формулировки разные, факты одинаковые». Чертёжный стиль, надписи по-русски.

Формат и ссылка на источник переводят спор из вкусового в проверяемый

Как замерить разброс, а не спорить о нём

Один запрос, заданный дважды, не доказывает ничего — ни подрядчику, ни вам. Замер делается прогоном набора типовых вопросов дважды подряд с подсчётом доли ответов, разошедшихся по смыслу, а не по буквам. Рабочий размер набора — 100–200 вопросов; если у вас уже собран набор для приёмки качества, для этого замера достаточно его подмножества, а сам порядок приёмки описан в материале про метрики качества ответов бота.

Замер разброса на наборе из 150 вопросов
Сбор набора: 150 вопросов из реальных обращений, 6 часов методиста по 900 ₽/час5 400 ₽
Два прогона набора: 300 обращений по 3,2 ₽ переменной части960 ₽
Сверка 150 пар ответов по смыслу, по 1,5 минуты — 3,75 часа по 900 ₽/час3 375 ₽
Разбор расхождений: 18 случаев по 8 минут — 2,4 часа по 1 200 ₽/час2 880 ₽
Итого первый замер12 615 ₽
Повторный замер: набор уже есть, расхождений 5 вместо 185 135 ₽
Итого12 615 ₽ и около 12 часов работы двух человек на первый замер. Он даёт число 12 % вместо ощущения «отвечает по-разному»
Что это значитСмысловое расхождение

Два ответа на один вопрос считаются разошедшимися по смыслу, если по ним клиент совершит разные действия. «Три рабочих дня» и «доставим за три рабочих дня» — одно и то же, расхождения нет. «Три дня» и «от трёх до пяти дней» — расхождение: первое обещание вы выполните, а второе клиент запомнит по нижней границе. Что спросить у подрядчика: «дайте письменное определение расхождения и десять примеров пар, которые вы считаете совпадающими».

Договариваться об этом определении надо до замера, а не после: иначе сверка превращается в спор о вкусах, и каждая сторона считает свою долю. Дешевле всего разобрать на живых примерах десяток пар ответов и зафиксировать решение по каждой — эти десять пар потом работают эталоном для всего набора.

графикnedeterminizm-otvetov-ii-agenta--03
Падение доли смысловых расхождений с 12 до 3 процентов после четырёх мер

Ступенчатая диаграмма из пяти столбцов, показывающая долю смысловых расхождений на наборе из 150 вопросов: «исходно 12 %», «жёсткий формат 9 %», «ответ по источнику 6 %», «слой правил 4 %», «фиксация версии 3 %». Горизонтальная штриховая линия на уровне 5 % подписана «порог приёмки». Последние два столбца ниже линии и выделены. Ось значений в процентах, подписи по-русски.

Разброс не обнуляется, но опускается ниже порога приёмки

Что писать в критерии приёмки

Формулировка «агент отвечает одинаково на одинаковые вопросы» непроверяема и потому бесполезна: она проиграет на первом же примере. Проверяемая формулировка состоит из четырёх частей и умещается в абзац договора; общие принципы наших обязательств собраны на странице гарантий.

  • Что меряем. Доля смысловых расхождений при повторном прогоне согласованного набора из 150 вопросов. Определение смыслового расхождения приложено к договору отдельным пунктом.
  • Какой порог. Не выше 5 % на приёмке. Для внутренних задач порог мягче, для ответов клиенту с обязательствами по срокам и ценам — жёстче, вплоть до вывода таких вопросов на слой правил.
  • При каких условиях. Зафиксированная версия модели и зафиксированный состав базы знаний. Замер при других вводных не считается.
  • Кто и когда меряет. Замер на приёмке и повторный замер при каждом обновлении версии модели или значимой правке базы знаний, силами подрядчика, с передачей вам протокола и самого набора вопросов.

Когда разброс не надо чинить

Борьба с нестабильностью стоит денег и, доведённая до крайности, портит продукт. Три ситуации, в которых её лучше не начинать.

  • Расходятся формулировки, а не факты. Если клиент по обоим ответам сделает одно и то же, разброс безвреден. Требование дословного совпадения приводит к шаблонным ответам, которые сотрудники начинают переписывать вручную, — и экономия исчезает.
  • Задача по природе вариативна. Черновик письма, варианты заголовков, формулировка ответа на нестандартную жалобу — здесь разброс и есть польза. Правильный контур тут не воспроизводимость, а подтверждение человеком.
  • Поток меньше 500 обращений в месяц. Замер за 12 615 ₽ и последующие доработки не окупятся: на таком объёме дешевле выборочно проверять ответы вручную и править базу знаний по мере обнаружения.

И главное, что стоит запомнить перед разговором с подрядчиком: воспроизводимость покупается не выбором модели, а архитектурой вокруг неё. Типовые вопросы уходят на правила, остальные отвечаются по найденному источнику в жёстком формате, версия зафиксирована, набор вопросов лежит у вас. Если всё это сделано, ответ «модель иногда отвечает по-разному» перестаёт быть проблемой и становится строчкой в протоколе с числом рядом. Собранный по такой схеме контур мы описали на странице чат-бота поддержки.

Требовать от модели одинаковых слов бессмысленно. Требовать одинаковых фактов — можно, и это записывается числом.