Учебное пособие по тонкой настройке

Это руководство поможет вам начать работу со службой настройки 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.

Прежде чем вызывать API Gemini, вам необходимо настроить проект и ключ API.

Список настроенных моделей

Вы можете проверить существующие настроенные модели с помощью метода tunedModels.list .

from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable

for model_info in client.models.list():
    print(model_info.name)

Создайте настроенную модель

Чтобы создать настроенную модель, вам необходимо передать набор данных в модель в методе tunedModels.create .

В этом примере вы настроите модель для генерации следующего числа в последовательности. Например, если входное значение равно 1 , модель должна вывести 2 . Если на входе one hundred , на выходе должно быть one hundred one .

# create tuning model
training_dataset =  [
    ["1", "2"],
    ["3", "4"],
    ["-3", "-2"],
    ["twenty two", "twenty three"],
    ["two hundred", "two hundred one"],
    ["ninety nine", "one hundred"],
    ["8", "9"],
    ["-98", "-97"],
    ["1,000", "1,001"],
    ["10,100,000", "10,100,001"],
    ["thirteen", "fourteen"],
    ["eighty", "eighty one"],
    ["one", "two"],
    ["three", "four"],
    ["seven", "eight"],
]
training_dataset=types.TuningDataset(
        examples=[
            types.TuningExample(
                text_input=i,
                output=o,
            )
            for i,o in training_dataset
        ],
    )
tuning_job = client.tunings.tune(
    base_model='models/gemini-1.0-pro-001',
    training_dataset=training_dataset,
    config=types.CreateTuningJobConfig(
        epoch_count= 5,
        batch_size=4,
        learning_rate=0.001,
        tuned_model_display_name="test tuned model"
    )
)

# generate content with the tuned model
response = client.models.generate_content(
    model=tuning_job.tuned_model.model,
    contents='III',
)

print(response.text)

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

Попробуйте модель

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

response = client.models.generate_content(
    model=tuning_job.tuned_model.model,
    contents='III'
)

Не реализовано

Некоторые функции (отчеты о ходе работы, обновление описания и удаление настроенных моделей) еще не реализованы в новом SDK.