Как сделать тонкую настройку больших языковых моделей с помощью ваших собственных данных

Как сделать тонкую настройку  больших языковых моделей с помощью ваших собственных данных

Языковые модели 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, как показано ниже:

{"messages": [{"role": "system", "content": "Article Intro is a chatbot that generates human written introduction for articles"}, {"role": "user", "content": "Write an introduction for an article with title Scarlet Johansson Is Not Happy With OpenAI Using Her Voice For ChatGPT"}, {"role": "assistant", "content": "OpenAI is nothing without its drama.\n\nIt\u2019s been a week full of exciting announcements and shocking resignations in OpenAI. Days after the GPT-4o release, Jan Leike, the super alignment lead, and executive, announced his resignation. It doesn't end there as the actress of the 2014 hit film \u201cHer\u201d, Scarlet Johansson, who voiced the character of Samantha, has expressed anger over the ChatGPT\u2019s chatbot voice that \u201csounded so eerily similar\u201d to hers."}]} {"messages": [{"role": "system", "content": "Article Intro is a chatbot that generates human written introduction for articles"}, {"role": "user", "content": "Write an introduction for an article with title Is Prompt Engineering Dead?"}, {"role": "assistant", "content": "Remember when prompt engineering for AI chatbots was a huge buzz, hundreds of courses sprouted like mushrooms on the internet? Some even considered it a profession and called themselves prompt engineers.\n\nAlthough I never called myself a prompt engineer, I was one of those wannabe cool guys who downloaded a bunch of prompt engineering guides to get the most out of popular language and image models like ChatGPT and Stable Diffusion.\n\nSome examples of these guides are:\n\n\u201cA Guide To Better Prompt Engineering\u201d\n\u201cPrompt Engineering Tips For Stable Diffusion\u201d\nWhat I didn\u2019t know back then was how fast these AI models can evolve. In just a few months, prompts for language and image models have become driven by natural language and are no longer bound to specific rules.\n\nToday, one of the leading AI companies, Anthropic, is taking prompt engineering to a new level by letting you generate production-ready prompts simply by describing what you want to achieve."}]} {"messages": [{"role": "system", "content": "Article Intro is a chatbot that generates human written introduction for articles"}, {"role": "user", "content": "Write an introduction for an article with title ChatGPT Now Supports Interactive Tables And Charts Directly From Google Drive"}, {"role": "assistant", "content": "Less than a week after announcing GPT-4o, OpenAI has unveiled another cool feature. This new capability not only allows direct file uploads from Google Drive and Microsoft OneDrive but also enables users to work with interactive charts and tables.\n\nTo be clear, file support isn\u2019t new in ChatGPT. However, the ability to add files directly from other sources is new. This eliminates the need to download files to a user\u2019s desktop before uploading them to ChatGPT."}]} {"messages": [{"role": "system", "content": "Article Intro is a chatbot that generates human written introduction for articles"}, {"role": "user", "content": "Write an introduction for an article with title Google Imagen 3 VS Midjourney V6"}, {"role": "assistant", "content": "At the Google IO 2024 event, Google announced a slew of brand-new products and huge AI updates. One of the major announcements was the brand new version of its text-to-image AI tool, Imagen 3.\n\nBased on what they showcased during the announcement, there has been a significant improvement in visual quality. Imagen 3 has reached a level where it can easily compete with Midjourney v6.\n\nBut how do these two AI image generators compare side by side?\n\nLet\u2019s dive in and find out."}]}

Сколько примеров вам нужно?

На самом деле для обучения требуется не менее 10 примеров. Однако рекомендуется собрать больше данных, чтобы добиться заметного улучшения результатов. Вот что говорит OpenAI:

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

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

Сначала я создал файл Google Sheets и в первом столбце добавил примеры тем, а во втором - примеры результатов.

Как сделать тонкую настройку  больших языковых моделей с помощью ваших собственных данных

Откройте ChatGPT, загрузите файл Google Sheets и попросите ИИ преобразовать его в JSONL-файл, используя приведенный ниже промпт:

Convert the content to a .jsonl file for fine-tuning. Follow this format {"messages": [{"role": "system", "content": "Article Intro is a chatbot that generates human written introduction for articles"}, {"role": "user", "content": "Write an introduction for an article with the title [column 1]"}, {"role": "assistant", "content": "[column 2]"}]}
Как сделать тонкую настройку  больших языковых моделей с помощью ваших собственных данных

Нажмите Enter, и ChatGPT сможет преобразовать данные в нечто подобное:

{'messages': [{'role': 'system', 'content': 'Article Intro is a chatbot that generates human written introduction for articles'}, {'role': 'user', 'content': 'Write an introduction for an article with the title Scarlet Johansson Is Not Happy With OpenAI Using Her Voice For ChatGPT'}, {'role': 'assistant', 'content': "OpenAI is nothing without its drama.\n\nIt’s been a week full of exciting announcements and shocking resignations in OpenAI. Days after the GPT-4o release, Jan Leike, the super alignment lead, and executive, announced his resignation. It doesn't end there as the actress of the 2014 hit film “Her”, Scarlet Johansson, who voiced the character of Samantha, has expressed anger over the ChatGPT’s chatbot voice that “sounded so eerily similar” to hers."}]} {'messages': [{'role': 'system', 'content': 'Article Intro is a chatbot that generates human written introduction for articles'}, {'role': 'user', 'content': 'Write an introduction for an article with the title Is Prompt Engineering Dead?'}, {'role': 'assistant', 'content': 'Remember when prompt engineering for AI chatbots was a huge buzz, hundreds of courses sprouted like mushrooms on the internet? Some even considered it a profession and called themselves prompt engineers.\n\nAlthough I never called myself a prompt engineer, I was one of those wannabe cool guys who downloaded a bunch of prompt engineering guides to get the most out of popular language and image models like ChatGPT and Stable Diffusion.\n\nSome examples of these guides are:\n\n“A Guide To Better Prompt Engineering”\n“Prompt Engineering Tips For Stable Diffusion”\nWhat I didn’t know back then was how fast these AI models can evolve. In just a few months, prompts for language and image models have become driven by natural language and are no longer bound to specific rules.\n\nToday, one of the leading AI companies, Anthropic, is taking prompt engineering to a new level by letting you generate production-ready prompts simply by describing what you want to achieve.'}]} {'messages': [{'role': 'system', 'content': 'Article Intro is a chatbot that generates human written introduction for articles'}, {'role': 'user', 'content': 'Write an introduction for an article with the title ChatGPT Now Supports Interactive Tables And Charts Directly From Google Drive'}, {'role': 'assistant', 'content': 'Less than a week after announcing GPT-4o, OpenAI has unveiled another cool feature. This new capability not only allows direct file uploads from Google Drive and Microsoft OneDrive but also enables users to work with interactive charts and tables.\n\nTo be clear, file support isn’t new in ChatGPT. However, the ability to add files directly from other sources is new. This eliminates the need to download files to a user’s desktop before uploading them to 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. Я не буду объяснять, как это сделать в этой статье, но если вам интересна эта тема, пожалуйста, напишите об этом в комментариях.

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

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

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

Еще больше полезностей - в моем телеграм-канале про нейросети и канале про генерацию изображений Миджорниум.

Источник статьи на английском - здесь.

33
4 комментария
Комментарий удалён автором поста

Ну и комменты у вас конечно

Ответить

Спасибо за статью!
Если мы для дообучения модели использовали 10 документов, а затем один из них потерял актуальность, мы же не сможем вытащить его из памяти, надо будет модель заново переучивать на 9 документах, я правильно понял?
Модель обучается в облаке или локально, на своем пк?

Ответить

Спасибо за статью. Но gpt-3.5-turbo-0613 сейчас на 34-м месте в LLM Arena, а рекомендованная 0125 вообще на 42-м. Если и файнтьюнить, то скорее на Llama 3 8b или 70b (в зависимости от железа).

Ответить