İnce ayar eğiticisi

Bu eğitim, Gemini API ayar hizmetini kullanmaya başlamanıza yardımcı olacaktır. Python SDK veya REST API kullanarak curl değerine ayarlayın. Örneklerde, arka plandaki metin modelinin nasıl ayarlanacağı gösterilmektedir Gemini API metin oluşturma hizmeti.

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

Sınırlamalar

Bir modelde ince ayar yapmadan önce, aşağıdaki sınırlamaların farkında olmanız gerekir:

Veri kümelerini hassas ayarlama

Gemini 1.5 Flash için veri kümelerinde ince ayar yapmak için 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ış 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.

# Sending a page_size is optional
curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels?page_size=5 \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${access_token}" \
    -H "x-goog-user-project: ${project_id}" > tuned_models.json

jq .tunedModels[].name < tuned_models.json

# Send the nextPageToken to get the next page.
page_token=$(jq .nextPageToken < tuned_models.json | tr -d '"')

if [[ "$page_token" != "null"" ]]; then
curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels?page_size=5\&page_token=${page_token}?key=$GOOGLE_API_KEY \
    -H "Content-Type: application/json"  > tuned_models2.json
jq .tunedModels[].name < tuned_models.json
fi

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.

curl -X POST "https://generativelanguage.googleapis.com/v1beta/tunedModels?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '
      {
        "display_name": "number generator model",
        "base_model": "models/gemini-1.5-flash-001-tuning",
        "tuning_task": {
          "hyperparameters": {
            "batch_size": 2,
            "learning_rate": 0.001,
            "epoch_count":5,
          },
          "training_data": {
            "examples": {
              "examples": [
                {
                    "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",
                }
              ]
            }
          }
        }
      }' | tee tunemodel.json

# Check the operation for status updates during training.
# Note: you can only check the operation on v1/
operation=$(cat tunemodel.json | jq ".name" | tr -d '"')
tuning_done=false

while [[ "$tuning_done" != "true" ]];
do
  sleep 5
  curl -X GET "https://generativelanguage.googleapis.com/v1/${operation}?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
     2> /dev/null > tuning_operation.json

  complete=$(jq .metadata.completedPercent < tuning_operation.json)
  tput cuu1
  tput el
  echo "Tuning...${complete}%"
  tuning_done=$(jq .done < tuning_operation.json)
done

# Or get the TunedModel and check it's state. The model is ready to use if the state is active.
modelname=$(cat tunemodel.json | jq ".metadata.tunedModel" | tr -d '"')
curl -X GET  https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' > tuned_model.json

cat tuned_model.json | jq ".state"

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. Şu konu hakkında daha fazla bilgi edinmek için: daha fazla bilgi için Gelişmiş ayar ayarları ve Hiperparametreler.

Hassaslaştırılmış modeliniz, hassaslaştırılmış modeller listesine hemen eklenir, ancak durum "oluşturma" olarak ayarlandığında otomatik olarak devreye girer.

Modeli deneyin

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

curl -X POST https://generativelanguage.googleapis.com/v1beta/$modelname:generateContent?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -d '{
        "contents": [{
        "parts": [{
          "text": "LXIII"
          }]
        }]
        }' 2> /dev/null

Modeli silin

Artık ihtiyaç duymadığınız modelleri silerek hassaslaştırılmış model listenizi temizleyebilirsiniz. tunedModels.delete yöntemini kullanarak modeli silebilirsiniz. Ayarlama işlerini iptal ettiyseniz bunları nasıl performansları öngörülemez olabilir.

curl -X DELETE https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json'