Это руководство поможет вам начать работу со службой настройки Gemini API с помощью Python SDK или REST API с помощью Curl . В примерах показано, как настроить текстовую модель службы генерации текста Gemini API.
Посмотреть на ai.google.dev | Попробуйте блокнот Colab | Посмотреть блокнот на GitHub |
Ограничения
Перед настройкой модели следует знать о следующих ограничениях:
Точная настройка наборов данных
Наборы данных тонкой настройки для Gemini 1.5 Flash имеют следующие ограничения:
- Максимальный размер ввода для каждого примера — 40 000 символов.
- Максимальный размер вывода для каждого примера — 5000 символов.
- Поддерживаются только примеры пар ввода-вывода. Многоходовые разговоры в стиле чата не поддерживаются.
Тюнингованные модели
Тюнингованные модели имеют следующие ограничения:
- Ограничение ввода настроенной модели Gemini 1.5 Flash составляет 40 000 символов.
- Режим JSON не поддерживается настроенными моделями.
- Поддерживается только ввод текста.
Настройка аутентификации
API Gemini позволяет настраивать модели на основе ваших собственных данных. Поскольку это ваши данные и ваши настроенные модели, требуется более строгий контроль доступа, чем могут обеспечить ключи API. Прежде чем вы сможете запустить это руководство, вам необходимо настроить OAuth для вашего проекта . Однако для использования настроенной модели вам не нужны учетные данные OAuth. После настройки модели с помощью OAuth вы можете получить к ней доступ с помощью ключа API.
Список настроенных моделей
Вы можете проверить существующие настроенные модели с помощью метода genai.list_tuned_models
.
for model_info in genai.list_tuned_models():
print(model_info.name)
Создайте настроенную модель
Чтобы создать настроенную модель, вам необходимо передать свой набор данных в модель в методе genai.create_tuned_model
. Вы можете сделать это, напрямую определив входные и выходные значения в вызове или импортировав их из файла в фрейм данных для передачи методу.
В этом примере вы настроите модель для генерации следующего числа в последовательности. Например, если входное значение равно 1
, модель должна вывести 2
. Если на входе one hundred
, на выходе должно быть one hundred one
.
import time
base_model = "models/gemini-1.5-flash-001-tuning"
training_data = [
{"text_input": "1", "output": "2"},
# ... more examples ...
# ...
{"text_input": "seven", "output": "eight"},
]
operation = genai.create_tuned_model(
# You can use a tuned model here too. Set `source_model="tunedModels/..."`
display_name="increment",
source_model=base_model,
epoch_count=20,
batch_size=4,
learning_rate=0.001,
training_data=training_data,
)
for status in operation.wait_bar():
time.sleep(10)
result = operation.result()
print(result)
# # You can plot the loss curve with:
# snapshots = pd.DataFrame(result.tuning_task.snapshots)
# sns.lineplot(data=snapshots, x='epoch', y='mean_loss')
model = genai.GenerativeModel(model_name=result.name)
result = model.generate_content("III")
print(result.text) # IV
Оптимальные значения количества эпох, размера пакета и скорости обучения зависят от вашего набора данных и других ограничений вашего варианта использования. Дополнительные сведения об этих значениях см. в разделе Расширенные настройки настройки и гиперпараметры .
Поскольку настройка модели может занять значительное время, этот API не ждет завершения настройки. Вместо этого он возвращает объект google.api_core.operation.Operation
, который позволяет вам проверить статус задания настройки или дождаться его завершения и проверить результат.
Ваша настроенная модель немедленно добавляется в список настроенных моделей, но на время настройки модели ее состояние устанавливается на «создание».
Проверьте прогресс настройки
Вы можете проверить ход операции настройки с помощью метода wait_bar()
:
for status in operation.wait_bar():
time.sleep(10)
Вы также можете использовать operation.metadata
для проверки общего количества шагов настройки и operation.update()
для обновления статуса операции.
Вы можете отменить задание по настройке в любое время, используя метод cancel()
.
operation.cancel()
Попробуйте модель
Вы можете использовать метод genai.generate_text
и указать имя настроенной модели, чтобы проверить ее производительность.
model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text) # "IV"
Обновить описание
Вы можете обновить описание настроенной модели в любое время, используя метод genai.update_tuned_model
.
genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})
Удалить модель
Вы можете очистить список настроенных моделей, удалив модели, которые вам больше не нужны. Используйте метод genai.delete_tuned_model
для удаления модели. Если вы отменили какие-либо задания по настройке, возможно, вы захотите удалить их, поскольку их производительность может быть непредсказуемой.
genai.delete_tuned_model("tunedModels/my-increment-model")