İ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 yapma işleminde aşağıdaki sınırlamalar geçerlidir:

  • Ö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 ayarlamanız ve API anahtarınızı yapılandırmanız gerekir.

Ayarlanmış modelleri listeleme

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

import google.generativeai as genai

for model_info in genai.list_tuned_models():
    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.

import google.generativeai as genai

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

Dönem sayısı, toplu boyut ve öğrenme hızı için en uygun değerler, veri kümenize ve kullanım alanınızdaki diğer kısıtlamalara 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.

Bir modelin ayarlanması önemli ölçüde zaman alabileceğinden bu API, ayarın tamamlanmasını beklemez. Bunun yerine, ayarlama işinin durumunu kontrol etmenize veya tamamlanmasını bekleyip sonucu kontrol etmenize olanak tanıyan bir google.api_core.operation.Operation nesnesi döndürür.

Ayarlanmış modeliniz hemen ayarlanmış modeller listesine eklenir ancak model ayarlanırken durumu "oluşturuluyor" olarak ayarlanır.

Ayarlama işleminin ilerleme durumunu kontrol etme

wait_bar() yöntemini kullanarak ayarlama işleminin ilerleme durumunu kontrol edebilirsiniz:

for status in operation.wait_bar():
    time.sleep(10)

Ayrıca, toplam ayar adımı sayısını kontrol etmek için operation.metadata'ü, işlemin durumunu yenilemek için de operation.update()'ü kullanabilirsiniz.

cancel() yöntemini kullanarak ayarlama işinizi dilediğiniz zaman iptal edebilirsiniz.

operation.cancel()

Modeli deneyin

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

import google.generativeai as genai

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

Açıklamayı güncelleme

genai.update_tuned_model yöntemini kullanarak ayarlanmış modelinizin açıklamasını istediğiniz zaman güncelleyebilirsiniz.

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

Modeli silme

Artık ihtiyaç duymadığınız modelleri silerek ayarlanmış model listenizi temizleyebilirsiniz. Bir modeli silmek için tunedModels.delete yöntemini kullanın. İptal ettiğiniz ayarlama işlerinin performansı tahmin edilemez olabileceğinden bunları silebilirsiniz.

genai.delete_tuned_model("tunedModels/my-increment-model")