Оценка достоверности ответа
Когда пользовательский запрос сопоставляется с базой знаний, API службы QnA Maker возвращает соответствующие ответы вместе с оценкой достоверности. Эта оценка означает степень достоверности того, что ответ соответствует этому запросу пользователя.
Оценка достоверности находится в пределах от 0 до 100. Оценка 100, скорее всего, указывает на точное соответствие, а оценка 0 означает, что соответствия не обнаружено. Чем выше оценка — тем больше уверенность в ответе. Для запроса может вернуться несколько ответов. В этом случае ответы возвращаются в порядке уменьшения оценки достоверности.
В приведенном ниже примере представлена одна сущность QnA с 2 вопросами.
В приведенном выше примере для разных типов пользовательских запросов можно ожидать такие оценки, как в диапазоне оценок ниже:
В этой таблице приведено описание типичной достоверности и связанная с ней оценка.
Значение оценки | Описание оценки | Пример запроса |
---|---|---|
90–100 | Практически точное совпадение с запросом пользователя и вопросом о базе знаний | "После публикации мои изменения в базе знаний не обновляются" |
> 70 | Высокий уровень достоверности. Обычно это правильный ответ, который полностью отвечает на запрос пользователя | "Опубликованная база знаний не обновляется" |
50–70 | Средний уровень достоверности. Обычно довольно хороший ответ, соответствующий основному намерению в запросе пользователя. | "Следует ли сохранять обновления перед публикацией базы знаний?" |
30–50 | Низкий уровень достоверности. Обычно связанный ответ, который частично соответствует намерению в запросе пользователя. | "Что делает сохранение и обучение?" |
< 30 | Очень низкая достоверность. Обычно ответ на запрос пользователя не предоставляется, но выводятся некоторые совпадения слов или фраз. | "Где можно добавить синонимы в мою базу знаний" |
0 | Нет соответствия, поэтому ответ не возвращается. | "Сколько стоит использование службы" |
Указание порогового значения оценки
В приведенной выше таблице показаны оценки, ожидаемые в большинстве баз знаний. Тем не менее, поскольку все базы знаний отличаются и содержат различные типы слов, намерений и целей, рекомендуем протестировать с разными пороговыми значениями и выбрать то, которое подходит вам лучше всего. По умолчанию пороговое значение равно 0, чтобы возвращались все возможные ответы. Рекомендуемое стандартное пороговое значение, которое подходит для большинства баз знаний, — 50.
При выборе порогового значения не забывайте про баланс между точностью и охватом и настраивайте порог в соответствии со своими требованиями.
Если точность важнее для вашего сценария, увеличьте пороговое значение. Таким образом, каждый возвращаемый ответ будет иметь гораздо более высокую степень достоверности и намного вероятнее будет соответствовать запросу пользователя. В этом случае многие другие вопросы могут остаться без ответа. Например, если пороговое значение — 70, можно пропустить некоторые неоднозначные примеры, такие как "Что такое сохранение и обучение?".
Если охват (или полнота) важнее, снизьте пороговое значение. Это поможет ответить на максимальное количество вопросов, даже при наличии только частичного отношения к вопросу пользователя. Это означает, что может быть больше случаев, когда ответ не соответствует фактическому запросу пользователя, а предоставляет лишь некоторые связанные сведения. Например, если задать пороговое значение 30, вы получите ответы для таких запросов, как "Где я могу изменить свою базу знаний?"
Примечание.
В новых версиях QnA Maker улучшена логика оценки, что может повлиять на пороговые значения. Каждый раз при обновлении службы проверяйте и, при необходимости, изменяйте пороговые значения. Узнать текущую версию службы QnA вы можете здесь. Сведения о том, как получить последние обновления см. здесь.
Установка порога
Установите пороговую оценку в качестве свойства в тексте JSON API GenerateAnswer. Это означает, что вы задаете его для каждого вызова GenerateAnswer.
В Bot Framework установите оценку как часть объекта options с помощью C# или Node.js.
Улучшение оценок достоверности
Чтобы улучшить оценку достоверности конкретного ответа на запрос пользователя, можно добавить запрос пользователя в базу знаний в качестве альтернативного вопроса для этого ответа. Вы можете также использовать исправление слов без учета регистра, чтобы добавить синонимы к ключевым словам в базе знаний.
Аналогичные оценки достоверности
Если несколько ответов имеют аналогичные оценки достоверности, вполне вероятно, что запрос был слишком общим и, следовательно, соответствовал с равной вероятностью с несколькими ответами. Попытайтесь структурировать QnAs лучше, чтобы каждый объект QnA имел четкое намерение.
Различия оценки достоверности между тестовой и рабочей средами
Оценка достоверности ответа может незначительно измениться между тестируемой и опубликованной версией базы знаний, даже если содержимое одинаковое. Это связано с тем, что содержимое теста и опубликованного база знаний находятся в разных индексах поиска ИИ Azure.
Индекс для тестирования содержит все пары "вопрос/ответ" для баз знаний. При запросе к индексу для тестирования запрос применяется ко всему индексу, а результаты ограничены секцией для этой конкретной базы знаний. Если результаты тестового запроса отрицательно влияют на возможность проверки базы знаний, можно выполнить следующее.
- упорядочение база знаний с помощью одного из следующих элементов:
- 1 ресурс ограничен 1 КБ: ограничивает один ресурс QnA (и результирующий индекс теста поиска ИИ Azure) одним база знаний.
- 2 ресурса: 1 для тестирования, 1 для рабочей среды: настройте два ресурса QnA Maker, один из которых используется для тестирования (с собственными индексами для тестирования и рабочей среды), а другой — для рабочей среды (также имеет собственные индексы для тестирования и рабочей среды);
- и всегда используйте одинаковые параметры, такие как top, при запросе к тестовой и рабочей базе знаний.
При публикации базы знаний ее содержимое раздела вопросов и ответов переносится из тестового индекса в рабочий индекс в службе "Поиск Azure". См. здесь, чтобы узнать, как работает процесс публикации.
Если у вас есть база знаний в разных регионах, каждый регион использует собственный индекс поиска ИИ Azure. Так как используются разные индексы, оценки не обязательно будут совпадать.
Совпадения не найдены
Если ни одно из подходящих совпадений не найдено ранжировщиком, возвращается оценка достоверности 0.0 или "Нет", а ответ по умолчанию – "Нет хорошего соответствия в базе знаний". Вы можете переопределить этот ответ по умолчанию в коде бота или приложения, вызывающего конечную точку. В качестве альтернативы вы также можете установить переопределение ответа в Azure, и это изменит значение по умолчанию для всех баз знаний, развернутых в определенной службе QnA Maker.