Как сделать тонкую настройку больших языковых моделей с помощью ваших собственных данных
Языковые модели GPT от OpenAI - это здорово, но иногда ответ, который вы получаете от чат-ботов вроде ChatGPT, не всегда совпадает с вашими ожиданиями. Это все равно что заказать бургер, а вместо него получить салат - не очень приятно.
Еще больше полезностей - в моем телеграм-канале про нейросети и канале про генерацию изображений Миджорниум.
Подобные проблемы можно решить, добавив более конкретные инструкции в текстовый промпт, который вы отправляете чатботу. Например, если вы хотите, чтобы ИИ ответил саркастически, вам нужно добавить в конце промпта что-то вроде «ответь с сарказмом».
Но давайте будем реалистами: у кого есть время нянчиться с ИИ, постоянно давая ему указания?
А что если вместо того, чтобы постоянно просить ИИ отвечать определенным образом, вы можете обучить его, приведя несколько примеров, чтобы он понял, как выполнять задачу? Это называется тонкой настройкой.
BrainAidBot - телеграм-бот на базе Chat GPT-4 Omni, который включает модули Midjourney, Dall-e и Stable Diffusion. В нём предусмотрены различные роли, такие как генерация промптов и логотипов, что может значительно упростить задачи по созданию контента.
Модули Midjourney, SDXL, Stable Diffusion Image Core и SD 3 позволяют выполнять сложную генерацию изображений, поэтому он прекрасно подходит для тех, кто стремится к высоким стандартам качества.
Генератор DALLE 3 поддерживает русский текст и создает HD-контент, что обеспечивает дополнительную гибкость в работе. Кроме этого, бот умеет транскрибировать текст, что может быть полезно для более разнообразных нужд.
Что такое тонкая настройка?
Тонкая настройка языковой модели, или LLM fine-tuning, - это процесс взятия предварительно обученной большой языковой модели (LLM) и ее дальнейшего обучения на определенном наборе данных, чтобы адаптировать ее для решения более специализированных задач или использования в конкретной области.
В этой статье я покажу вам, как можно обучить модель ИИ на собственных данных. Давайте начнем.
1. Начните работу с OpenAI Playground
Перейдите на сайт OpenAI, создайте аккаунт и откройте панель управления игровой площадкой.
Сразу предупреждаю, что использование игровой площадки для использования функций OpenAI не бесплатно. При регистрации вы получите бесплатный кредит в размере $5, которого должно хватить для тестирования некоторых функций, включая тонкую настройку.
Следите за оставшимися кредитами на странице профиля и на вкладке Billing. Также вы можете привязать кредитную карту, чтобы не беспокоиться о кредитных лимитах. Следите за статистикой использования на вкладке Usage панели Org.
Теперь, когда ваш аккаунт OpenAI настроен, мы можем приступить к подготовке данных для обучения.
2. Подготовка данных для обучения
Сейчас вы не можете просто загрузить любой файл в качестве обучающих данных для обучения модели. OpenAI требует, чтобы вы преобразовали их в формат JSONL, как показано ниже:
Сколько примеров вам нужно?
На самом деле для обучения требуется не менее 10 примеров. Однако рекомендуется собрать больше данных, чтобы добиться заметного улучшения результатов. Вот что говорит OpenAI:
Я рекомендую начать с 50 хорошо проработанных примеров и посмотреть, показывает ли модель признаки улучшения после тонкой настройки. В некоторых случаях этого может быть достаточно, но даже если модель еще не достигла производственного качества, явные улучшения являются хорошим признаком того, что предоставление большего количества данных будет продолжать улучшать модель. Отсутствие улучшений говорит о том, что вам, возможно, следует пересмотреть постановку задачи для модели или реструктурировать данные, прежде чем масштабировать модель за пределы ограниченного набора примеров.
Знаю, знаю, это звучит как утомительная задача, особенно если выполнять ее вручную. Поэтому лучше использовать инструменты или ИИ, чтобы автоматизировать этот процесс. Эффективность - это главное.
Сначала я создал файл Google Sheets и в первом столбце добавил примеры тем, а во втором - примеры результатов.
Откройте ChatGPT, загрузите файл Google Sheets и попросите ИИ преобразовать его в JSONL-файл, используя приведенный ниже промпт:
Нажмите Enter, и ChatGPT сможет преобразовать данные в нечто подобное:
Отлично, теперь мы готовы отправить этот файл в модель тонкой настройки.
3. Создание задания для тонкой настройки
Вернитесь на панель инструментов OpenAI playground и перейдите на вкладку « Fine-tuning». Нажмите на кнопку «+Create», чтобы начать создание задания тонкой настройки.
Выберите модель в списке базовых моделей.
- GPT-3.5-turbo-0125 (рекомендуется)
- GPT-3.5-turbo-1106
- GPT-3.5-turbo-0613
- Babbage-002
- DaVinci-002
Также вы можете произвести тонкую настройку модели, что удобно, если вы получили дополнительные данные и не хотите повторять предыдущие шаги обучения.
Задайте ей имя, установите другие настройки по умолчанию и нажмите кнопку Create (Создать).
В зависимости от размера вашего JSON-файла обучение может занять как несколько минут, так и несколько часов. Вы можете следить за прогрессом в правой части панели управления.
По окончании обучения вы также получите такое письмо.
Отлично. Теперь нам нужно протестировать новую модель, чтобы убедиться, что она работает так, как ожидалось.
4. Тестирование точно настроенной модели
Последний шаг - тестирование доработанной модели. Нажмите на кнопку Playground в правом нижнем углу, и вы будете перенаправлены на экран с двумя экземплярами чата.
Слева - экземпляр чата с базовой моделью GPT, например GPT-3.5-turbo, а справа - экземпляр чата с вашей точно настроенной моделью. Убедитесь, что в левой части выбрана та же модель, которую вы использовали при тонкой настройке.
Просто отправьте запрос, и вы заметите, что ответы на него отличаются. Результат справа должен больше соответствовать тренировочным данным, которые вы использовали для обучения модели.
Обратите внимание, что вы можете использовать эту настроенную модель для работы с вашими веб-приложениями, обращаясь к ним через API. Я не буду объяснять, как это сделать в этой статье, но если вам интересна эта тема, пожалуйста, напишите об этом в комментариях.
Несмотря на то, что эта тема может показаться немного технической, она стоит того, чтобы в нее вникнуть. Знания о таких методах ИИ, как тонкая настройка, могут быть очень полезны, даже если вы не являетесь экспертом.
Только подумайте - вы можете предложить свои навыки другим компаниям и заработать на этом серьезные деньги. Представьте, что вы обучаете модель на основе их данных и создаете индивидуальный чат-бот, который все знает об их бизнесе.
Кроме того, когда вы освоите тонкую настройку, вы сможете использовать эти навыки для создания собственных веб-приложений. Итак, удачи вам на пути к изучению генеративного ИИ.
Еще больше полезностей - в моем телеграм-канале про нейросети и канале про генерацию изображений Миджорниум.
Источник статьи на английском - здесь.
Комментарий удалён автором поста
Ну и комменты у вас конечно
Спасибо за статью!
Если мы для дообучения модели использовали 10 документов, а затем один из них потерял актуальность, мы же не сможем вытащить его из памяти, надо будет модель заново переучивать на 9 документах, я правильно понял?
Модель обучается в облаке или локально, на своем пк?
Спасибо за статью. Но gpt-3.5-turbo-0613 сейчас на 34-м месте в LLM Arena, а рекомендованная 0125 вообще на 42-м. Если и файнтьюнить, то скорее на Llama 3 8b или 70b (в зависимости от железа).