İnce ayar eğiticisi

Bu eğitim, curl kullanarak Python SDK'sını veya REST API'yi kullanarak Gemini API ayarlama hizmetini kullanmaya başlamanıza yardımcı olacaktır. Örneklerde, Gemini API metin oluşturma hizmetinin arkasındaki metin modelinin nasıl ayarlanacağı gösterilmektedir.

ai.google.dev adresinde görüntüleme Colab not defteri denemesi Not defterini GitHub'da görüntüleme

Sınırlamalar

Bir modeli ayarlamadan önce aşağıdaki sınırlamalara dikkat etmeniz gerekir:

Veri kümelerini hassas ayarlama

Gemini 1.5 Flash için veri kümelerinde ince ayar yapmayla ilgili aşağıdaki sınırlamalar vardır:

  • Örnek başına maksimum giriş boyutu 40.000 karakterdir.
  • Örnek başına maksimum çıkış boyutu 5.000 karakterdir.
  • Yalnızca giriş-çıkış çifti örnekleri desteklenir. Sohbet tarzında çoklu turlu görüşmeler desteklenmez.

Ayarlanmış modeller

Ayarlanmış modellerde aşağıdaki sınırlamalar vardır:

  • Ayarlanmış bir Gemini 1.5 Flash modelinin giriş sınırı 40.000 karakterdir.
  • JSON modu, ayarlanmış modellerde desteklenmez.
  • Yalnızca metin girişi desteklenir.

Başlamadan önce: Projenizi ve API anahtarınızı oluşturun

Gemini API'yi çağırmadan önce projenizi oluşturmanız ve API anahtarınızı yapılandırmanız gerekir.

Ayarlanmış modelleri listeleme

Mevcut ayarlanmış modellerinizi tunedModels.list yöntemiyle kontrol edebilirsiniz.

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)

Ayarlanmış bir model oluşturma

Ayarlanmış bir model oluşturmak için veri kümenizi tunedModels.create yönteminde modele iletmeniz gerekir.

Bu örnekte, bir modeli sıradaki sonraki sayıyı oluşturacak şekilde ayarlayacaksınız. Örneğin, giriş 1 ise model 2 değerini döndürmelidir. Giriş one hundred ise çıkış one hundred one olmalıdır.

# 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)

Dönem sayısı, toplu boyut ve öğrenme hızı için en uygun değerler, veri kümenize ve kullanım alanınızı diğer kısıtlamalarına bağlıdır. Bu değerler hakkında daha fazla bilgi edinmek için Gelişmiş ayar ayarları ve Hiperparametreler başlıklı makaleleri inceleyin.

Modeli deneyin

tunedModels.generateContent yöntemini kullanarak performansını test etmek için ayarlanmış modelin adını belirtebilirsiniz.

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

Uygulanmadı

Bazı özellikler (ilerleme raporlama, açıklamayı güncelleme ve ayarlanmış modelleri silme) yeni SDK'ya henüz uygulanmamıştır.