Создайте сервис вопросов-ответов с помощью GPT-3 и OpenAI

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

Используя GPT-3 (разработанный OpenAI), можно легко создать службу на основе API с отличными результатами, фактически не изучая и не внедряя какой-либо код машинного обучения или не задействуя большие вычислительные мощности для его поддержки.

API-интерфейсы OpenAI просты для понимания и подкреплены приличной документацией. Этот сервис недавно вышел из закрытого бета-тестирования. Вы можете просто зарегистрироваться на веб-сайте OpenAI и начать использовать API.

Примечание. OpenAI не является бесплатным сервисом. Вы получаете бесплатный кредит в размере 18 долларов США при регистрации. После этого вам нужно поместить свою кредитную карту для выставления счетов с оплатой по мере использования.

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

OpenAI

OpenAI — исследовательская лаборатория искусственного интеллекта (ИИ), состоящая из коммерческой корпорации OpenAI LP и ее материнской компании, некоммерческой организации OpenAI Inc. — Википедия

OpenAI Inc. была основана в 2015 году Илоном Маском, который позже ушел в отставку в 2018 году. Заявленная цель заключалась в разработке дружественного ИИ, чтобы помочь человечеству в целом. В настоящее время его поддерживает Microsoft, а Илон все еще является донором.

ГПТ-3

Generative Pre-trained Transformer 3 (GPT-3) — это модель авторегрессионного языка, которая использует глубокое обучение для создания текста, похожего на человеческий. — Википедия

GPT-3 — это модель предсказания языка третьего поколения, разработанная OpenAI. Говорят, что качество текста, генерируемого GPT-3, настолько велико, что бывает очень сложно определить, был ли он создан человеком или искусственным интеллектом. Хотя GPT-3 можно использовать публично, зарегистрировавшись в OpenAI, Microsoft обладает исключительными правами на базовую модель GPT-3, которая не обнародуется.

Теперь давайте посмотрим, как мы можем использовать GPT-3 для создания службы ответов поверх нашей существующей базы знаний. В этом руководстве объясняется пошаговый процесс.

Зарегистрируйтесь на OpenAI и получите ключ API

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

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

Проверьте меню в правом верхнем углу и нажмите «Просмотреть ключи API», чтобы просмотреть свой ключ API.

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

Когда вы регистрируетесь для новой учетной записи, вам предоставляется пробный кредит (18 долларов США), чтобы начать эксперименты. По моему опыту, этих 18 долларов более чем достаточно, чтобы поиграть. Проверьте свое использование на странице «Использование», как показано ниже:

Хорошо, хватит об OpenAI. Давайте перейдем к некоторым другим интересным вещам, которые мы будем делать здесь.

Подготовка фида из базы знаний

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

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

Образец статьи 1

Название: Как записаться на курс?
Содержание: чтобы записаться на курс, просто создайте у нас учетную запись, нажав ссылку «Зарегистрироваться» на нашей главной странице. После регистрации вы можете осуществлять поиск в нашем каталоге из более чем 500 курсов. Чтобы записаться на курс, нажмите кнопку «Записаться» на странице курса.

Образец статьи 2

Заголовок: Какова политика возврата?
Содержание:Мы предлагаем 14-дневную политику возврата. Если вы не удовлетворены каким-либо из наших курсов, просто отправьте нам электронное письмо, и мы вернем 100% стоимости вашего курса. Никаких вопросов не было задано.

Образец статьи 3

Заголовок: Какие способы оплаты поддерживаются?
Содержание: Мы поддерживаем все типы дебетовых и кредитных карт, а также банковские переводы. Вы также можете платить в рассрочку за курсы, стоимость которых превышает 49 долларов.

Для подготовки сервиса вопрос-ответ можно объединить заголовок и содержание в одну строку, но это не обязательно. Для 3 статей, перечисленных выше, вы должны получить 3 уникальные строки. Объединив все три из них, давайте назовем эти входные данные нашим Фидом.

Как это работает?

Вот что происходит в двух словах:

Мы отправляем канал и вопрос в API ответов. API возвращает Ответ на Вопрос на основе канала.

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

Понимание API ответов OpenAI

OpenAI предлагает множество API для разных целей. Поскольку здесь мы рассматриваем службу вопросов и ответов, мы будем использовать API ответов.

Конечная точка API ответов: https://api.openai.com/v1/answers
Метод запроса: POST
Ключ API должен находиться в заголовке Authorization (с префиксом «Bearer»)

Запросить формат полезной нагрузки:
Не перегружайтесь, мы разберем его чуть позже.

{
   documents: [list of strings from knoweledgebase],
   question: "This is your question?",
   search_model: "ada",
   model: "curie",
   examples_context: "There are nine planets and one star in the solar system.",
   examples: [["How many planets are there in the solar system?", "There are 9 planets in the solar system"]],
   max_tokens: 20
}

Вот разбивка каждого элемента полезной нагрузки запроса:

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

[
   "How to enroll for a course? To enroll for a course, simply create an account with us by clicking on ‘Signup’ link from our home page. After signing up, you can search from our catalog of over 500 courses. To enroll in a course, click on ‘Enroll’ button on the course page.",
   "What is the refund policy? Content: We offer 14-day refund policy. If you are not satisfied with any of our course, just send us an e-mail and we will refund 100% of your course fee. No questions asked.",
   "What payment methods are supported? We support all types of debit cards, credit cards and bank transfers. You can also pay in installments for courses having fee more than $49."
]

вопрос
Это вопрос, который вы хотите задать своей базе знаний. Например, мы спросим: «Сколько курсов доступно в вашем каталоге?» в следующем разделе. Убедитесь, что вопрос заканчивается знаком вопроса.

search_model
У OpenAI есть разные модели (также называемые движками), которые предлагают разные возможности и различаются по цене. Распространенными моделями GPT-3 являются: «ada», «babbage», «curie» и «da-vinci». Чтобы запомнить имена, вы можете отметить, что имена начинаются с a, b, c и d. «Да Винчи» — самая мощная и дорогая модель, а «ада» — самая быстрая и дешевая.

API ответов работает в два этапа. На первом этапе соответствующий документ выбирается из списка документов (Фид), предоставленных вами. На втором этапе ответ составляется из наиболее релевантного документа. Значение search_model указывает, какую модель использовать для поиска в списке документов. Обычно «ада» отлично подходит для этого.

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

example_context и example
Эти значения не имеют ничего общего с вашей документацией. Они просто сообщают API, какой тип ответа мы ожидаем от него. Вы можете предоставить любой логический контекст и образец ответа. OpenAI будет использовать эти значения для определения тонаи формата ответа.

max_tokens
Это значение можно использовать для указания максимальной длины ответа. Это не точное представление количества слов или букв. Вы можете попробовать разные значения, чтобы найти наиболее подходящее для вашего случая использования.

Примечание. Для простоты я намеренно проигнорировал некоторые другие ключи, которые можно передать в полезной нагрузке. Вы можете лучше контролировать API ответов, добавляя больше ключей в свою полезную нагрузку. Еще несколько ключей описаны в конце этой статьи. Полную справку по API см. в документации OpenAI.

Давайте нажмем на ответы API

Напомним, на данном этапе у нас есть все эти элементы:

  1. Зарегистрировался на OpenAI и получил ключ API
  2. Подготовленные строки из нашей базы знаний. Одна строка для каждой статьи.
  3. Понимание API ответов и различных ключей полезной нагрузки.

Используя наши образцы статей, вот полезная нагрузка с документами и вопросом «Сколько курсов доступно в вашем каталоге?».

Вот ответ получен:

Как видите, ответ правильно гласит: «В нашем каталоге более 500 курсов.». Теперь этот конкретный текст не является частью ни одного из наших документов в Фид. Ответ составлен с помощью GPT-3 путем интерпретации значения вашего ввода.

Тонкая настройка

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

температура
Температура указывает, какую творческую свободу должен использовать ИИ. Значение может быть любым от 0 до 1. 0 — отсутствие креатива, а 1 — максимально креативно. В большинстве моих случаев лучше всего работает значение от 0,5 до 0,7.

n
Значение ключа «n» указывает, сколько ответов должно быть сгенерировано. Значение по умолчанию — 1.

Заключение

OpenAI предлагает разработчикам невероятную мощь, не вникая в сложности моделей обучения и изучения алгоритмов машинного обучения, чтобы использовать мощь ИИ. OpenAI делает всю тяжелую работу за нас. Мы можем просто использовать API-интерфейсы для создания приложений, основанных на искусственном интеллекте.

Чтобы читать все мои рассказы вместе с тысячами других писателей на среде, подумайте о том, чтобы стать участником среды. Если вы присоединитесь по моей ссылке, я получу часть вашего вступительного взноса. Удачи!