Тонкая настройка модели Gemma

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

Выберите фреймворк

Модели Gemma совместимы с различными фреймворками для настройки ИИ. Каждый фреймворк обладает различными преимуществами и, как правило, ограничен определённым форматом модели. Ниже приведены руководства по настройке моделей Gemma с различными фреймворками:

Убедитесь, что предполагаемый формат модели развертывания, например формат Keras, Safetensors или GGUF, поддерживается выбранной вами платформой в качестве выходных данных.

Собирать данные

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

training_data = [
  {"input_text": "Part number for A4 brake caliper", "output_text": "4M0615107BS"},
  {"input_text": "Part number for Beetle fuel pump", "output_text": "6A127026H"},
  {"input_text": "Part number for Camaro cylinder head", "output_text": "12711770"},
]

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

Как правило, для настройки задачи следует начать с небольшого набора данных, корректировать параметры обучения и добавлять данные, пока не будет достигнута производительность, соответствующая вашим потребностям. Некоторые из наших примеров приложений показывают, что можно влиять на поведение модели Gemma, используя всего 20 пар «подсказка-ответ». Подробнее см. в статьях «Создание ИИ-помощника для деловой электронной почты с помощью Gemma» и «Задачи на разговорных языках с помощью Gemma» .

Настройте и протестируйте модель

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

Параметрически эффективная настройка

При тонкой настройке модели с открытыми весами, такой как Gemma, у вас есть возможность настроить все параметры модели или использовать менее ресурсоемкий метод эффективной настройки параметров, который обновляет подмножество из них. Подход с полной настройкой означает, что по мере применения данных настройки вы рассчитываете новые веса для всех параметров модели. Этот подход требует больших вычислительных ресурсов и памяти, поскольку вы выполняете эти вычисления для миллиардов параметров. Использование менее ресурсоемких подходов к настройке, называемых параметрически эффективной тонкой настройкой (PEFT) , включая такие методы, как настройка с помощью адаптера низкого ранга (LoRA), может дать схожие результаты с меньшими вычислительными ресурсами. Подробную информацию о том, как выполнить настройку с меньшими ресурсами с помощью LoRA, см. в разделах Тонкая настройка моделей Gemma в Keras с использованием LoRA и Тонкая настройка моделей Gemma в Hugging Face .

Тестирование настроенных моделей

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

  • Тесты на успешность : Требует, чтобы настроенная модель всегда могла успешно функционировать.
  • Тесты на провал : запросы на то, чтобы настроенная модель всегда была неспособна выполняться или явно отказывалась выполняться по запросу.
  • Граничные тесты : требования, согласно которым настроенная модель должна быть способна выполнять действия, если она попадает в определенные границы или набор границ приемлемого выходного поведения.

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

Развертывание модели

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

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