Сухая вещь! Что такое тонкая настройка? Как выполнить тонкую настройку модели GPT-3.5?
Сухая вещь! Что такое тонкая настройка? Как выполнить тонкую настройку модели GPT-3.5?

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

Точная настройка — это метод, который может эффективно заставить выходные данные ChatGPT соответствовать нашим ожиданиям. Недавно OpenAI выпустила функцию тонкой настройки модели GPT-3.5. В этой вводной статье мы сначала представим концепцию тонкой настройки, затем объясним, как использовать API тонкой настройки OpenAI, и, наконец, предоставим практические примеры, объясняющие, как выполнять тонкую настройку.

1. Что такое тонкая настройка? Каковы преимущества?

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

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

Введите вводные данные «Кто три самых красивых мужчины в Азии» и какой результат, по вашему мнению, является идеальным при получении таких вводных данных?

Вывод «Три самых красивых мужчины Азии — это Эдди Пэн, Дэниел Ву и вы перед экраном».

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

Это может быть немного абстрактно, поэтому давайте возьмем пример для дальнейшей иллюстрации. Если вы хотите сегодня создать интеллектуального робота для обслуживания клиентов в аэропорту Байюнь, вам нужно, чтобы этот робот для обслуживания клиентов отвечал на вопросы в соответствии с соответствующими правилами аэропорта Байюнь. Но если подключить ChatGPT напрямую, эффект может быть не идеальным. При вводе «Можно ли сегодня ввозить в страну продукты из свинины?» вы получите следующий ответ:

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

Этот ответ на самом деле неплох, но он слишком широк и не касается правил аэропорта Байюнь. Если вы хотите, чтобы ChatGPT отвечал правилам аэропорта Байюнь, вам нужно будет добавить в команду дополнительное описание, например, изменить его на «Теперь вы являетесь экспертом по правилам, связанным с аэропортом Байюнь. Я еду в аэропорт Байюнь. Могу ли я Я ввожу в страну продукты из свинины?" ?』

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

Что можно сделать при тонкой настройке, так это то, что после тонкой настройки вы можете напрямую получить выходные данные спецификаций аэропорта Байюнь с помощью короткой команды «Могу ли я привезти продукты из свинины в страну?» Поняв, на что способна тонкая настройка, я считаю, что вам не терпится получить вышеуказанные преимущества за счет тонкой настройки ваших продуктов корпоративного уровня. Давайте посмотрим, как это можно сделать.

2. Как использовать API тонкой настройки?

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

Точную настройку можно разделить на следующие три этапа.

  • Подготовить обучающие материалы
  • Модель тонкой настройки обучения
  • Используйте точно настроенную модель

Давайте сначала посмотрим, как подготовить учебные материалы. В настоящее время API тонкой настройки принимает JSONL в следующем формате. В ваших учебных материалах вам необходимо будет предоставить вопросы и ответы в следующем формате:

Язык кода:javascript
копировать
{
  "messages": [
    { "role": "system", "content": "<Поставить системное сообщение>" },
    { "role": "user", "content": "<Задавайте вопросы пользователям>" },
    { "role": "assistant", "content": "<Вставьте идеальный ответ>." }
  ]
}

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

Язык кода:javascript
копировать
 "messages": [
    { "role": "system", "content": «Вы умный помощник аэропорта Байюнь. Вы умеете отвечать на любые вопросы и правила, связанные с аэропортом». },
    { "role": "user", «Могу ли я привезти в страну продукты из свинины?» },
    { "role": "assistant", "content": «Согласно «Справочной таблице карантинных правил для часто прибывающих пассажиров, перевозящих животных, растения или продукты из них», изданной Бюро инспекции животных и растений и карантина Совета Исполнительной власти, пассажиры должны заявить об этом в Бюро карантина при ввозе мясо или переработанное мясо (включая вакуумную упаковку) в страну. Карантин: Если карантинный сертификат животного из страны-экспортера не приложен или если животное не прошло карантинную проверку Национального антиинспекционного и карантинного бюро, оно не должно быть ввезено. быть импортированы. " }
  ]

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

Язык кода:javascript
копировать
import requests
import os

url = "https://api.openai.com/v1/files"

headers = {
  "Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"
}

data = {
  "purpose": "fine-tune",
}

files = [
  ('file', open('/path/to/your/file', 'rb'))
]

response = requests.request("POST", url, headers=headers, data=data, files=files)

print(response.text)

Затем вы создаете задачу тонкой настройки и затем используете данные обучения для точной настройки базовой модели. Это можно сделать через CLI OpenAI. TRAIN_FILE_ID_OR_PATH ниже — это идентификатор, полученный после загрузки файла чуть выше, а BASE_MODEL — это модель, которая будет использоваться. Как упоминалось ранее, gpt-3.5 и gpt-4 еще не открыты, поэтому текущие параметры BASE_MODEL включают ada, babbage, curie или davinci.

Язык кода:javascript
копировать
import requests
import os
import json

url = "https://api.openai.com/v1/fine_tuning/jobs"

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"
}

data = {
  "training_file": "TRAINING_FILE_ID",
  "model": "gpt-3.5-turbo-0613",
}

response = requests.post(url, headers=headers, data=json.dumps(data))

print(response.text)

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

Язык кода:javascript
копировать
import requests
import os
import json

url = "https://api.openai.com/v1/chat/completions"

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"
}

data = {
  "model": "ft:gpt-3.5-turbo:org_id",
  "messages": [
    {
      "role": "system",
      "content": «Вы умный помощник аэропорта Байюнь. Вы умеете отвечать на любые вопросы и правила, связанные с аэропортом».
    },
    {
      "role": "user",
      "content": «Здравствуйте, у меня есть несколько вопросов, связанных с иммиграцией»
    }
  ]
}

response = requests.post(url, headers=headers, data=json.dumps(data))

print(response.text)

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

3. Меры предосторожности при использовании API тонкой настройки

Преимущество тонкой настройки заключается в улучшении управляемости модели и возможности ее большей настройки под ваши нужды. Однако за это приходится платить двумя ценами. Первое — это стоимость самого API. Стоимость доводки плюс стоимость использования доработанной модели увеличит стоимость примерно в 6-7 раз по сравнению с исходной моделью GPT-3.5.

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

Хотя точная настройка может позволить модели работать лучше, чем GPT-4 в определенных ситуациях, это не обязательно так. Первоначальная стоимость модели GPT-3,5 составляет менее одной десятой стоимости GPT-4, но при желании ее доработать стоимость становится всего около одной трети. Если включить трудозатраты на тонкую настройку, доработанная версия GPT-3.5 может оказаться дороже. Поэтому, если доработанная модель GPT-3.5 не так хороша, как GPT-4 плюс встраивание, то она лучше. использовать GPT-4 плюс встраивание.

Кто-то может спросить, как выбрать между тонкой настройкой и внедрением. Как судить, какой из них лучше? Оценка того, хорошо это или плохо, зависит от ситуации и обычно требует суждения от людей, знакомых с бизнесом (например, сценарии обслуживания клиентов требуют решения старшего специалиста по обслуживанию клиентов). В целом, точная настройка улучшает управляемость модели, благодаря чему модель может быть более ориентирована на предпочитаемый вами тон, встраивание позволяет вам постоянно добавлять новые данные в реальном времени; На самом деле эти два понятия не противоречат друг другу и могут использоваться вместе. Но в конечном итоге вам придется судить о том, стоят ли выгоды затрат.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.