Техническая поддержка в эпоху искусственного интеллекта

Способность компьютерной программы переводить предложения во внутреннее представление, чтобы она могла давать достоверные ответы на вопросы, заданные пользователем, известна как машинное понимание естественного языка. Генеративный предварительно обученный преобразователь 3 (GPT-3) OpenAI - одна из таких авторегрессионных языковых моделей, которая революционизировала возможности обработки естественного языка (НЛП) на новый уровень.

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

Обзор GPT-3

GPT-3 обучен с 175 миллиардами параметров, что в 10 раз больше, чем в любой предыдущей не разреженной языковой модели. Он может генерировать письменный текст такого качества, что его часто трудно отличить от текста, написанного человеком. Что отличает GPT-3 от других языковых моделей, таких как BERT, так это то, что для всех задач GPT-3 применяется без каких-либо обновлений градиента или тонкой настройки, с задачами и демонстрациями с несколькими снимками, указанными исключительно посредством текстового взаимодействия с моделью. GPT-3 обеспечивает высокую производительность для многих наборов данных НЛП, включая перевод и ответы на вопросы [1]. Шестьдесят процентов взвешенного набора данных предварительного обучения для GPT-3 поступает из отфильтрованной версии Common Crawl, состоящей из 410 миллиардов токенов, закодированных в парах байтов. Другими источниками являются 19 миллиардов токенов из WebText2, что составляет 22% от взвешенной суммы, 12 миллиардов токенов из Книги1, что составляет 8%, 55 миллиардов токенов из Книги2, что составляет 8%, и 3 миллиарда токенов из Википедии, что составляет 3%. GPT-3 был обучен сотням миллиардов слов и способен кодировать, среди прочего, на CSS, SQL, Python. Поскольку данные обучения GPT-3 были всеобъемлющими, они не требовали дальнейшего обучения для выполнения различных языковых задач [2]. В настоящее время OpenAI выпустила бета-версию API GPT-3, доступную только по приглашению.

GPT-3 Архитектура

Архитектура GPT-3 состоит из двух основных частей: кодировщика и декодера. Кодировщик принимает предыдущее слово в предложении в качестве входных данных и преобразует его в векторное представление, которое затем проходит через процесс внимания для генерации предсказания следующего слова. Декодер принимает предыдущее слово, а также его векторное представление в качестве входных данных и выводит распределение вероятностей по возможным словам с учетом этих входных данных. GPT-3 API предлагает интерфейс общего назначения «ввод текста - вывод текста», который можно использовать практически для любых языковых задач. С другой стороны, большинство других языковых API-интерфейсов предназначены для единственной цели, такой как классификация настроений или распознавание именованных сущностей. Чтобы использовать API, просто предоставьте ему текстовую подсказку (текстовый ввод или инструкции), и он вернет завершение текста, которое пытается соответствовать предоставленному вами контексту или шаблону. Его можно запрограммировать, написав краткое изложение или несколько примеров того, что вы от него хотите. Его производительность во многом определяется сложностью задачи. Вы можете рассчитывать на более надежный ответ, если у вас есть более конкретный пример. Поскольку данные обучения GPT-3 прекращаются в октябре 2019 года, API может не знать о текущих событиях.

Предоставлено: OpenAI

Основные компоненты GPT-3

GPT-3 API включает три основных компонента: подсказку, завершение и токены. «Приглашение» - это вводимый текст, передаваемый API. «Завершение» - это текст, который API генерирует на основе запроса. Например, если вы дадите API подсказку «Python is a», он вернет завершение «Python - отличный язык программирования, поскольку он очень прост и легок в изучении». с большой вероятностью. По умолчанию API является стохастическим, что означает, что каждый раз, когда вы его вызываете, вы можете получать немного другое завершение, даже если приглашение остается прежним. «Жетоны» можно рассматривать как кусочки слов. API преобразует текст в токены перед его обработкой. Комбинация токенов для текстовой подсказки и завершения, созданного API, должна быть меньше 2048 токенов, что составляет примерно 1500 слов.

API GPT-3 предлагает разные языковые модели / механизмы, которые различаются по возможностям. Известные модели: Давинчи, Кюри, Баббидж и Ада. Давинчи считается самой способной моделью, а Ада - самой быстрой. OpenAI рекомендует использовать davinci для экспериментов с вариантами использования и пробовать другие модели для производства, поскольку они рентабельны. Davinci в основном используется для творческих и аналитических работ. Из-за расширенных возможностей davinci требуется больше вычислительных ресурсов. Следовательно, он стоит дороже за вызов API и работает не так быстро, как другие движки. Кюри очень быстр и отлично справляется с языковым переводом, классификацией и резюмированием. Бэббидж хорош в классификации семантического поиска. Ада предпочтительнее для анализа текста и простой классификации.

Конечная точка API ответов

Answers - это специальная конечная точка для ответов на вопросы, полезная для приложений, которым требуется высокоточная генерация текста на основе источников документов, руководств пользователя и технических документов. Учитывая вопрос, набор документов и некоторые примеры, API генерирует ответ на вопрос на основе информации в наборе документов. Вы можете предоставить ввод либо в виде списка, содержащего до 200 документов, либо в виде предварительно загруженного файла размером до 1 ГБ. Вы можете взаимодействовать с API через HTTP-запросы с любого языка через привязки Python, поддерживаемые OpenAI. API использует ключи API для аутентификации.

Конечная точка Answers выполняет семантический поиск по набору документов. Если вы отправляете запрос, например вопрос на естественном языке или предложение, возвращенные документы будут оцениваться и оцениваться в соответствии с тем, насколько они семантически релевантны запросу. «Документы» могут состоять из параграфов или нескольких страниц. Например, если вы предоставите список документов [«яблоко красное», «морковь - апельсин», «роза - розовое»] и запросите «какой фрукт», вы получите разные оценки сходства для каждого документа. Чем выше оценка сходства, тем семантически документ более похож на запрос. В этом примере «яблоко красное» будет наиболее похоже на запрос. Документы можно передать как часть запроса API с помощью параметра «документы». Вы можете использовать параметр «файл» для загрузки файлов. Документы заранее загружаются в виде файла, обрабатываются и индексируются в автономном режиме один раз. При использовании сохраненных файлов используется двухэтапная процедура поиска, чтобы найти лучший контекст для ответа на вопрос. На первом этапе используется обычный поиск по ключевым словам, чтобы сузить количество документов в предоставленном файле до максимального количества документов «max_rerank» (параметр). Затем выбранные документы повторно ранжируются по оценкам семантического поиска.

Предоставлено: OpenAI

Вот пример фрагмента кода Python для получения ответов путем предоставления списка документов:

import os
import openai
openai.api_key =os.getenv("OPENAI_API_KEY")
doc_list= ["When you deploy Oracle Analytics Cloud, you complete some initial setup steps, and then Oracle takes care of most service management, patching, backup and restore, and other maintenance tasks. You determine the size of your service when you set up the service and you can increase or decrease capacity if your requirements change. Oracle Analytics Cloud offers two sizing options, you can specify the number of Oracle Compute Units (OCPUs) you want to deploy or how many people you expect to use the service."]
response = openai.Answer.create(
 search_model="davinci",
 model="curie",
 question="What are the sizing options offered by Oracle Analytics Cloud?",
 documents=doc_list,
examples_context="Larry Page and Sergey Brin.",
examples=[["Who founded Google?"]],
 max_tokens=30,
 stop=["\n", "<|endoftext|>"],
)
 print(response)

Ответ:

{
  "answers": [
    "You can specify the number of Oracle Compute Units (OCPUs) you want to deploy or how many people you expect to use the service."
  ],
  "completion": "cmpl-2xHoUMBCfmt0MyYvLso3n4PFtpEFM",
  "model": "curie:2020-05-03",
  "object": "answer",
  "search_model": "davinci",
  "selected_documents": [
    {
      "document": 0,
      "text": "When you deploy Oracle Analytics Cloud, you complete some initial setup steps, and then Oracle takes care of most service management, patching, backup and restore, and other maintenance tasks. You determine the size of your service when you set up the service and you can increase or decrease capacity if your requirements change. Oracle Analytics Cloud offers two sizing options, you can specify the number of Oracle Compute Units (OCPUs) you want to deploy or how many people you expect to use the service. "
    } ] }

Случаи применения

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

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

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

Вывод

Известный компьютерный ученый Джеффри Хинтон сказал: «Все, что вам нужно, это много-много данных и много информации о правильном ответе, и вы сможете обучить большую нейронную сеть делать то, что хотите». Именно на это способен OpenAI GPT-3. Чтобы предоставить пользователям правильный ответ, четко понимая контекст, пользовательский опыт будет полезен. Без тонкой настройки GPT-3 может выполнять задачу поиска и отвечать на вопросы с высокой точностью. Это произведет революцию в сфере технической поддержки и поддержки клиентов.

Ссылка

[1] Языковые модели - немногие изучающие, OpenAI, https://arxiv.org/pdf/2005.14165.pdf

[2] https://en.wikipedia.org/wiki/GPT-3