Точная настройка с помощью Gemini API

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

На этой странице представлен концептуальный обзор тонкой настройки текстовой модели текстового сервиса Gemini API. Когда вы будете готовы приступить к настройке, попробуйте руководство по тонкой настройке . Если вы хотите получить более общее представление о настройке LLM для конкретных случаев использования, ознакомьтесь с LLM: точная настройка, фильтрация и оперативное проектирование в ускоренном курсе машинного обучения .

Как работает тонкая настройка

Цель тонкой настройки — дальнейшее улучшение производительности модели под вашу конкретную задачу. Точная настройка осуществляется путем предоставления модели набора обучающих данных, содержащего множество примеров выполнения задачи. Для нишевых задач вы можете добиться значительного улучшения производительности модели, настроив ее на небольшом количестве примеров. Этот вид настройки модели иногда называют контролируемой точной настройкой , чтобы отличить его от других видов точной настройки.

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

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

Подготовьте свой набор данных

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

Формат

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

Например, если примеры в вашем наборе данных включают "question:" и "context:" , рабочий трафик также должен быть отформатирован так, чтобы включать "question:" и "context:" в том же порядке, в котором они появляются в примеры наборов данных. Если вы исключите контекст, модель не сможет распознать шаблон, даже если точный вопрос был в примере в наборе данных.

В качестве другого примера приведем данные обучения Python для приложения, которое генерирует следующее число в последовательности:

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

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

Ограничения

Примечание. Наборы данных точной настройки для Gemini 1.5 Flash имеют следующие ограничения:

  • Максимальный размер ввода для каждого примера — 40 000 символов.
  • Максимальный размер вывода для каждого примера — 5000 символов.

Размер обучающих данных

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

Задача Количество примеров в наборе данных
Классификация 100+
Подведение итогов 100-500+
Поиск документов 100+

Загрузите свой набор данных настройки

Данные передаются либо онлайн с помощью API, либо через файлы, загруженные в Google AI Studio.

Чтобы использовать клиентскую библиотеку, предоставьте файл данных при вызове createTunedModel . Ограничение размера файла — 4 МБ. Чтобы начать работу, ознакомьтесь с кратким руководством по тонкой настройке Python .

Чтобы вызвать REST API с помощью cURL, предоставьте примеры обучения в формате JSON в аргументе training_data . Чтобы начать работу, ознакомьтесь с кратким руководством по настройке cURL .

Расширенные настройки настройки

При создании задания настройки вы можете указать следующие дополнительные настройки:

  • Эпохи: полный проход обучения по всему обучающему набору, при котором каждый пример обрабатывался один раз.
  • Размер пакета: набор примеров, используемых в одной итерации обучения. Размер партии определяет количество примеров в партии.
  • Скорость обучения: число с плавающей запятой, которое сообщает алгоритму, насколько сильно корректировать параметры модели на каждой итерации. Например, скорость обучения 0,3 будет корректировать веса и смещения в три раза эффективнее, чем скорость обучения 0,1. Высокие и низкие скорости обучения имеют свои уникальные компромиссы, и их следует корректировать в зависимости от вашего варианта использования.
  • Множитель скорости обучения. Множитель скорости изменяет исходную скорость обучения модели. Значение 1 использует исходную скорость обучения модели. Значения больше 1 увеличивают скорость обучения, а значения от 1 до 0 снижают скорость обучения.

В следующей таблице показаны рекомендуемые конфигурации для точной настройки модели фундамента:

Гиперпараметр Значение по умолчанию Рекомендуемые корректировки
Эпоха 5

Если потери начинают выходить на плато до 5 эпох, используйте меньшее значение.

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

Размер партии 4
Скорость обучения 0,001 Используйте меньшее значение для небольших наборов данных.

Кривая потерь показывает, насколько прогноз модели отклоняется от идеальных прогнозов в обучающих примерах после каждой эпохи. В идеале вам следует прекратить тренировку в самой низкой точке кривой, прямо перед тем, как она выйдет на плато. Например, на графике ниже показано плато кривой потерь примерно на эпохе 4-6, что означает, что вы можете установить параметр Epoch на 4 и при этом получить ту же производительность.

Линейный график, показывающий кривую потерь для модели. Между первой и второй эпохами линия резко возрастает, затем резко снижается почти до 0 и выравнивается после трех эпох.

Проверьте статус задания настройки

Вы можете проверить статус вашего задания по настройке в Google AI Studio на вкладке «Моя библиотека» или с помощью свойства metadata настроенной модели в API Gemini.

Устранение ошибок

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

Аутентификация

Настройка с использованием API и клиентской библиотеки требует аутентификации. Вы можете настроить аутентификацию, используя либо ключ API (рекомендуется), либо учетные данные OAuth. Документацию по настройке ключа API см. в разделе Настройка ключа API .

Если вы видите ошибку 'PermissionDenied: 403 Request had insufficient authentication scopes' , возможно, вам необходимо настроить аутентификацию пользователя с использованием учетных данных OAuth. Чтобы настроить учетные данные OAuth для Python, посетите наше руководство по настройке OAuth .

Отмененные модели

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

Ограничения настроенных моделей

Примечание. Настроенные модели имеют следующие ограничения:

  • Ограничение ввода настроенной модели Gemini 1.5 Flash составляет 40 000 символов.
  • Режим JSON не поддерживается настроенными моделями.
  • Поддерживается только ввод текста.

Что дальше

Начните работу с уроков по тонкой настройке: