Используйте Берта и Милвуса, чтобы быстро создать интеллектуального робота, отвечающего на вопросы.

глубокое обучение

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

В прошлом создание роботов обслуживания клиентов обычно требовало преобразования связанных знаний предметной области (Domain Knowledge) в ряд правил и графов знаний. Процесс построения в значительной степени зависит от «искусственного» интеллекта, а изменение сценариев и пользователей требует много повторяющейся работы.

С применением глубокого обучения в обработке естественного языка (NLP) машинное чтение может автоматически находить ответы на совпадающие вопросы непосредственно из документов. Глубокая языковая модель преобразует вопросы и документы в семантические векторы, чтобы найти окончательный соответствующий ответ. В этой статье используется модель Bert с открытым исходным кодом Google и векторный поисковый движок Milvus с открытым исходным кодом для быстрого создания диалогового робота на основе семантического понимания.

Общая архитектура

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

  1. Получите большое количество китайских вопросов с ответами в определенной области (в этой статье это называется стандартным набором вопросов).
  2. Используйте модель Берта, чтобы преобразовать эти проблемы в векторы признаков, хранящиеся в Milvus, и Milvus присвоит идентификатор вектора этим векторам признаков.
  3. Сохраните эти идентификаторы, представляющие вопросы и соответствующие им ответы, в PostgreSQL.

Когда пользователь задает вопрос:

  1. Преобразуйте его в вектор признаков по модели Берта
  2. Выполните поиск по сходству в векторе признаков в Milvus, чтобы получить идентификатор стандартного вопроса, наиболее похожего на вопрос.
  3. Получите соответствующий ответ в PostgreSQL.

Схема архитектуры системы выглядит следующим образом (синяя линия — процесс импорта, желтая — процесс запроса):

Далее я научу вас, как создать онлайн-систему вопросов и ответов.

| Строительные ступени

Перед сборкой вам необходимо установить Milvus и Postgresql.Пожалуйста, обратитесь к официальному сайту за конкретными шагами установки.

1. Подготовка данных

Экспериментальные данные в этой статье взяты из:GitHub.com/SOP с отличием/….

Из набора финансовых данных в системе ответов на вопросы часто задаваемых вопросов в рамках этого проекта мы собрали в общей сложности 330 000 единиц данных. Объединив этот набор данных, мы можем быстро построить интеллектуального робота для обслуживания клиентов xx bank.

2. Генерация векторов признаков

В этой системе используется модель, предварительно обученная Бертом. Перед запуском сервиса необходимо скачать модель:storage.Google APIs.com/porto_models…

Используйте эту модель, чтобы преобразовать базу вопросов в векторы признаков для последующего поиска подобия. Для получения дополнительной информации об услугах bert см.:GitHub.com/smiling/bill…

3. Импорт Milvus и PostgreSQL

Сгенерированный выше вектор признаков нормализуется и импортируется в Milvus для хранения, а затем j импортирует идентификатор, возвращенный Milvus, и ответ на вопрос, соответствующий идентификатору, в PostgreSQL. Структура таблиц в PostgreSQL:

4. Получите ответы

Пользователь вводит вопрос и после создания вектора признаков с помощью Bert находит наиболее похожий вопрос в библиотеке Milvus. Косинусное расстояние используется в этой статье для представления сходства между двумя предложениями.Поскольку все векторы нормализованы, чем ближе косинусное расстояние двух векторов признаков к 1, тем выше сходство. В библиотеке может не быть проблем, похожих на проблемы, заданные пользователем, поэтому на практике мы можем установить порог 0, 9. Когда наиболее похожее полученное расстояние меньше порога, он вернет подсказку, что система не включает сопутствующие проблемы.

Демонстрация системы

Начальный интерфейс системы выглядит следующим образом:


Введите свой вопрос в диалоговое окно, и вы получите соответствующий ответ. Как показано на рисунке:


| Резюме

Вышеупомянутая система вопросов и ответов очень проста в построении? Благодаря модели Берта вам не нужно заранее классифицировать и маркировать корпус. В то же время, благодаря высокой производительности и масштабируемости векторного поисковика Milvus с открытым исходным кодом, система может поддерживать сотни миллионов корпусов. Поисковая система векторов Milvus присоединилась к Фонду искусственного интеллекта Linux (LF AI) для инкубации Добро пожаловать в сообщество Milvus. Давайте вместе ускорим масштабное внедрение технологии ИИ.


Демонстрация системы:Power Law US.IO/Талант/сценарий…

Подробные шаги (с кодом):

GitHub.com/Power-lawUS-IO/Нет…
github.com

*Первоисточник:Tickets.WeChat.QQ.com/Yes/NHS G8IU8B…

Хотите, чтобы Milvus научил вас создавать умного робота, отвечающего на вопросы? Подпишитесь на прямую трансляцию 23.04 в 19:00!

Используйте Bert и Milvus для быстрого создания интеллектуального робота, отвечающего на вопросы
www.huodongxing.com图标


| Добро пожаловать в сообщество Milvus

GitHub.com/Power-lawUS-IO/Нет…|Источник

milvus.io|Официальный сайт

milvusio.slack.comСообщество Slack

Напрямую позвоните по адресу .com/org/, чтобы найти…| Знать

zilliz.blog.csdn.net| Блог CSDN