Бета-версия с тонкой настройкой GPT-3 теперь доступна

Вот подробный обзор тонкой настройки, теперь включенной в GPT-3

Введение

13 июля 2021 года OpenAI включил тонкую настройку для всех пользователей, имеющих доступ к API. Эта функция в настоящее время находится в стадии бета-тестирования, поэтому некоторые параметры, скорее всего, будут изменены.

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

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

Для чат-бота общего назначения данные для обучения могут быть минимальными.

Возможно 20 примеров на намерение; самое большее для начала. Однако при создании набора данных для обучения рекомендуется использовать несколько сотен обучающих примеров.

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

Это не согласуется с другими средами, такими как Rasa, IBM Watson Assistant, Microsoft LUIS и т. Д., Где поразительные результаты могут быть достигнуты с относительно небольшим количеством примеров обучения.

На высоком уровне тонкая настройка включает следующие шаги:

  1. Подготовить и загрузить данные тренировки
  2. Обучите новую доработанную модель
  3. Используйте свою точно настроенную модель

Общие замечания о чат-ботах 4 и 5 уровней

Я считаю, что Rasa очень точно оценивает, что такое чат-боты с первого по пятый уровень. А чтобы иметь настоящего чат-бота или агента для общения на уровне 4 или 5, слои ограничений должны быть удалены. Другими словами, жесткие слои, которые вводят этот прямолинейный подход, требуют устаревания.

Позвольте мне объяснить…

1. Намерения

Намерение отказаться от поддержки было введено Rasa, IBM, Microsoft и Alexa. Хотя бы в экспериментальном и ограниченном качестве.

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

Одновременно гарантируя отсутствие совпадений или пробелов с определенными намерениями. Но что, если бы мы могли перейти непосредственно от высказывания пользователя к значению? Чтобы диалог наилучшим образом соответствовал высказыванию пользователя?

2. Управление состоянием разговора

В то время как модель NLU - это модель машинного обучения, где есть смысл интерпретации на стороне модели NLU высказывания пользователя, а намерения и сущности назначаются пользовательскому вводу…

… Даже если модель не обучена этому конкретному высказыванию…

Это не относится к диспетчеру состояний разговора, также называемому системой потока диалогов.

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

Пользовательский диалог продиктован этим жестким и заранее определенным потоком.

3. Текст Шабо или диалог возврата (NLG)

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

GPT-3 пытается изменить это, и они обесценили все три из этих элементов. Нет необходимости в определенных сущностях, управлении состоянием диалога и контексте разговора, просто происходит.

И, наконец, диалог или формулировка возврата устарели при генерации естественного языка в реальном времени (NLG).

Несмотря на то, что GPT-3 совершила такой скачок, что является прекрасной демонстрацией и прототипом, есть некоторые подводные камни.

Вот некоторые подводные камни:

  1. Требуется большой объем обучающих данных. Это отнимает много времени, особенно когда необходимо создать обучающие данные.
  2. Обучение сгруппировано в разные модели, которые, вероятно, необходимо запускать в разных сценариях и управлять ими.
  3. Недостаточно низкий уровень непредсказуемости или количество отклонений ответа.
  4. Для коммерческого решения есть случаи, когда сущности необходимо определять контекстно.
  5. Для классификации (намерений) и обучения сущностей требуются большие объемы данных. Не менее 100 обучающих примеров на класс и несколько сотен для сущностей.

Среда прототипа

Я обнаружил, что самый простой способ запустить OpenAI CLI - запустить экземпляр Ubuntu на AWS и запустить команды через SSH и PuTTY.

OpenAI CLI очень отзывчивый и простой в использовании. Его простота должна привести к хорошему внедрению.

openai api completions.create -m ada:ft-user-
sdfsfaeafdfrwrefasfjvlss-2021-07-30-19-19-27 -p <YOUR_PROMPT>

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

# List all created fine-tunes
openai api fine_tunes.list

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

Вернуться к настройке GPT-3

Для прототипа я создал файл JSONL с 1500 записями вопросов и ответов для Kaggle.

{"prompt":"Did the U.S. join the League of Nations?","completion":"No"}
{"prompt":"Where was the League of Nations created?","completion":"Paris"}

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

  • Используя как можно меньше данных,
  • создавая стабильные и предсказуемые разговоры,
  • и позволяя управлять средой (и сотрудничать).

OpenAI имеет инструмент для загрузки обучающих данных, и, в свою очередь, OpenAI CLI оценивает обучающие данные ...

openai tools fine_tunes.prepare_data -f qa.txt

И возвращается с предложениями…

Analyzing...
- Based on your file extension, you provided a text file
- Your file contains 1476 prompt-completion pairs
- `completion` column/key should not contain empty strings. These are rows: [1475]
Based on the analysis we will perform the following actions:
- [Necessary] Your format `TXT` will be converted to `JSONL`
- [Necessary] Remove 1 rows with empty completions
- [Recommended] Remove 159 duplicate rows [Y/n]: Y
- [Recommended] Add a whitespace character to the beginning of the completion [Y/n]: Y

Обучение запускается командой:

openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
openai api fine_tunes.create -t qa.jsonl -m ada

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

  1. Скомпилировать данные обучения
  2. Тренироваться
  3. Контрольная работа
  4. Вносить изменения

С GPT-3, похоже, будет сложно управлять моделью с использованием обучающих данных.

Модель можно протестировать следующим образом:

openai api completions.create -m curie:ft-user-
sfjkjkljksasfooeesfs-2021-07-30-21-30-40 -p "Is it a winter sports resort, although it is perhaps best known as a tax haven?"   
Is it a winter sports resort, although it is perhaps best known as a tax haven? Yes. It is a winter sports resort.

Что-то интересное из ответа заключается в том, что данные обучения были:

{"prompt":"Is it a winter sports resort , although it is perhaps best known as a tax haven ?","completion":"Yes"}

И ответ от GPT-3 был:

Yes. It is a winter sports resort.

Это очень разговорное дополнение короткого обучающего примера «да».

Вывод

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

Они представили чат-бота с низким кодом уровня 4/5, с отсутствием надежных ответов и тонкой настройки.

Тонкая настройка - это путь к более надежному или предсказуемому чат-боту; особенно для корпоративного или корпоративного решения.

Некоторые соображения:

  • Обучение меньших выборок данных поможет с тестированием и быстрыми итерациями.
  • Определение сущностей в контексте примеров намерений важно; Я не тестировал эту функцию; так как требуется не менее 500 обучающих примеров.
  • Наличие разных обученных моделей для управления может быть проблемой. Потребуется ли уровень абстракции для определения того, какая модель применима в конкретных сценариях?

GPT-3 может стать подрывной силой, если они добьются более структурированного и связного подхода к тонкой настройке. Тот, который способствует сотрудничеству более крупных команд. Время от времени мне интересно, собирается ли GPT-3 стать инструментом НЛП / общего разговора. Или если есть амбиции стать фреймворком для разработки чат-ботов с низким кодом.

Точно оценивая возможности NLU / P GPT-3, разумно помнить о видении OpenAI ...

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

API запускает модели с весами из семейства GPT-3 со многими улучшениями скорости и пропускной способности.



«Подпишитесь на мою рассылку.
NLP / NLU, чат-боты, голос, разговорный интерфейс / пользовательский интерфейс, CX Designer, разработчик, универсальные пользовательские интерфейсы, окружающий… cobusgreyling. меня"