Тонкая настройка с помощью языкового API OpenAI

И как это позволяет вам использовать GPT-3

Введение

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

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

Все тесты проводились с использованием интерфейса командной строки OpenAI (Интерфейс командной строки).

В некоторых случаях можно использовать cURL, код Playground или Python. Тем не менее, интерфейс командной строки OpenAI обеспечивает наилучшую структуру процесса обучения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробнее о языковом API, тонкой настройке и использовании 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, в свою очередь, оценивает данные обучения…

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-
fdfefsfrssasfooeesfs-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.

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

Заключение

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

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

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

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

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

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

Языковой API OpenAI, использующий GPT-3, может стать разрушительной силой, как только будет достигнут более структурированный и целостный подход к тонкой настройке. Подход, способствующий сотрудничеству больших команд.

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

При точной оценке возможностей NLU/P GPT-3 целесообразно помнить о видении OpenAI…

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

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



«Подпишитесь на мою рассылку.
НЛП/НЛУ, Чат-боты, Голос, Разговорный UI/UX, CX Designer, Разработчик, Вездесущие пользовательские интерфейсы, Ambient…кобусгрейлинг. мне"