Возможно, вы видели чат-ботов во многих службах поддержки клиентов. Посмотрите на похожий вид бота здесь.

Как эти боты реагируют на запросы пользователей? Как этот бот понимает намерения пользователя и дает умные ответы? В этом блоге мы собираемся создать упомянутого выше умного чат-бота, используя машинное обучение и языковые модели. Давайте начнем

Введение

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

Умные чат-боты создаются с использованием машинного обучения и обработки естественного языка. Эти чат-боты предназначены для общения с пользователями на естественном языке. Они умнее понимают цель запроса пользователя и будут отвечать как человек. Большинство умных чат-ботов построены на основе моделей Deep Neural и Transformer. Модели-трансформеры — это разновидность глубокой нейронной сети, которая преобразует входную последовательность из одной формы в другую, используя технику, называемую самостоятельным вниманием. Популярным вариантом использования Transformer является преобразование языка, когда вводом является предложение на одном языке, а выводом будет такое же предложение на другом языке.

Если вы хотите узнать больше о Трансформерах, пожалуйста, обратитесь к моему предыдущему блогу здесь.



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

Модель GPT

Как обсуждалось ранее, GPT (Generative Pretrained Transformer) — это тип модели Transformer, выпущенный OpenAI. Это модель преобразователя только для декодера, в основном используемая для генерации текста. Модели GPT можно использовать для многих задач генерации естественного языка, таких как завершение текста, предложение следующего слова, создание контента, чат-боты и т. д. Доступны три модели GPT: GPT-1 (2018 г.), GPT-2 (2019 г.) и GPT-3 (2020 г.). Эти модели различаются по архитектуре, количеству параметров, набору обучающих данных, размеру пакета и т. д. Мы будем использовать модель GPT-3 для создания приложения чат-бота.

API OpenAI

Мы будем использовать OpenAI API для доступа к модели GPT. OpenAI — это исследовательская лаборатория на основе искусственного интеллекта, которая создала множество моделей машинного обучения и языков. В 2022 году Open AI объявила о возможности тонкой настройки и настройки модели GPT-3 для различных вариантов использования с помощью своего API. Благодаря тонкой настройке GPT-3 можно использовать для пользовательских сценариев использования, таких как суммирование текста, классификация, извлечение сущностей, чат-бот службы поддержки и т. д.

Первым и главным шагом к взаимодействию с API является создание ключа API для аутентификации. Пользователь может создать API-ключ, войдя на эту страницу. Как только вы войдете в систему, вы получите секретный ключ API, который мы будем использовать в этом проекте для выполнения нескольких запросов с помощью API. API предоставит бесплатный кредит на сумму 18 $, который можно использовать в течение первых трех месяцев использования.

Кроме того, для использования команд OpenAI CLI нам необходимо установить OpenAI в среде. Это можно сделать, написав следующую команду в приглашении.

Вывод из модели GPT

Как уже говорилось, мы создадим чат-бот, настроив доступную модель GPT-3. Но прежде чем перейти к этому, давайте посмотрим, как предварительно обученная модель GPT-3 будет работать в качестве чат-бота. Приведенный ниже разговор ведется между человеком и предварительно обученной моделью GPT-3.

Человек: Привет, кто ты?

АИ: У меня все отлично. Как я могу помочь вам сегодня?

Человек: Что вы знаете об искусственном интеллекте?

ИИ: Искусственный интеллект относится к интеллекту, демонстрируемому машинами, в отличие от естественного интеллекта, демонстрируемого людьми и животными. У меня три кандидата наук, сейчас я работаю над четвертым.

Как мы можем сгенерировать этот вывод из модели? Ну, вам просто нужно несколько строк кода.

Здесь подсказка — это не что иное, как вводимый текст, который мы даем модели. Для варианта использования чат-бота мы даем ввод в форме разговора. Двигатель представляет модель. Существуют разные модели, такие как Davinci, ADA, curie, Babbage и т. д. Подробнее о каждой модели можно прочитать здесь. Параметр остановки используется для определения точки, в которой API прекратит создание будущих токенов. Например, здесь он перестает генерироваться, когда приходит слово Человек. Параметр температуры указывает на степень творчества в ответах. Top_p является альтернативой выборке с температурой, называемой выборкой ядра, где модель рассматривает результаты токенов с вероятностной массой top_p. Best_of генерирует результаты best_of на стороне сервера и возвращает лучший (тот, у которого наибольшая логарифмическая вероятность на токен). Наконец, max_tokens указывает максимальное количество токенов, которое может быть сгенерировано.

Finetune GPT модель для чат-бота

Теперь, когда мы знаем, как генерировать завершения из предварительно обученной модели GPT, давайте попробуем настроить нашу собственную модель для чат-бота службы поддержки. Пойдем шаг за шагом.

Сбор данных

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

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

Приведенные выше данные были сначала разделены на комментарии пользователя и ответ службы поддержки клиентов. Данные выглядели примерно так

Здесь id=0 представляет собой цепочку диалогов между пользователем с id=0 и службой поддержки клиентов. Теперь эти данные должны быть преобразованы в форму JSON, которую затем можно использовать для обучения модели. Открытый ИИ имеет несколько стандартных форматов данных для каждого варианта использования. Например, для варианта использования чат-бота требуются данные в приведенной ниже форме.

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

Приведенный выше набор данных был преобразован в желаемый формат для точной настройки.

Точная настройка модели

После того, как данные подготовлены, следующим шагом будет точная настройка модели GPT-3. Для этого мы используем команды Open AI CLI. Первый шаг — добавить свой секретный ключ OpenAI API.

Следующим шагом является передача подготовленных данных в модель для обучения.

Вы можете использовать любую из моделей, упомянутых ранее. Каждая из моделей подходит для конкретных задач. Стоимость тонкой настройки варьируется от модели к модели.

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

После обучения модели вы получите идентификатор обученной модели. Вы можете использовать этот идентификатор для выполнения вывода из этой модели. Прогнозирование по модели аналогично тому, как мы это делали на предварительно обученной модели GPT-3. Просто замените имя модели новой обученной моделью. Вот и все!

Создание приложения чат-бота

Было разработано простое приложение для Android, которое подключается к доработанной модели через остальные API. Каждый раз, когда пользователь вводит вопрос, он отправляется модели, а ответ модели отображается в приложении.



Подведение итогов

Спасибо за прочтение этого поста! Дайте мне знать, если вам понравилось, есть вопросы или вы заметили ошибку. Вы можете обратиться к репозиторию кода на Github. Пожалуйста, не стесняйтесь обращаться ко мне или следить за мной через LinkedIn, Twitter или Medium. Чтобы узнать больше о моих блогах, перейдите по ссылке https://neuralnetwork.guru/author/vinitha/