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.
# 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ı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.
Ayarlanmış modeliniz hemen ayarlanmış modeller listesine eklenir ancak model ayarlanırken durumu "oluşturuluyor" olarak ayarlanır.
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 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.
curl -X DELETE https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json'