Ky udhëzues do t'ju ndihmojë të filloni me shërbimin e akordimit të Gemini API duke përdorur ose Python SDK ose REST API duke përdorur curl . Shembujt tregojnë se si të akordohet modeli i tekstit pas shërbimit të gjenerimit të tekstit API Gemini.
Kufizimet
Para se të akordoni një model, duhet të jeni të vetëdijshëm për kufizimet e mëposhtme:
Rregullimi i imët i të dhënave
Rregullimi i saktë i grupeve të të dhënave për Gemini 1.5 Flash kanë kufizimet e mëposhtme:
- Madhësia maksimale e hyrjes për shembull është 40,000 karaktere.
- Madhësia maksimale e daljes për shembull është 5000 karaktere.
- Mbështeten vetëm shembujt e çifteve hyrje-dalje. Bisedat me shumë kthesa të stilit të bisedës nuk mbështeten.
Modele të akorduara
Modelet e akorduara kanë kufizimet e mëposhtme:
- Kufiri i hyrjes së një modeli të akorduar Gemini 1.5 Flash është 40,000 karaktere.
- Modaliteti JSON nuk mbështetet me modelet e sintonizuara.
- Mbështetet vetëm futja e tekstit.
Përpara se të filloni: Vendosni projektin tuaj dhe çelësin API
Përpara se të telefononi Gemini API, duhet të konfiguroni projektin tuaj dhe të konfiguroni çelësin tuaj API.
Zgjero për të parë se si të konfigurosh projektin dhe çelësin API
Merrni dhe sigurojeni çelësin tuaj API
Ju duhet një çelës API për të thirrur Gemini API. Nëse nuk e keni tashmë një të tillë, krijoni një çelës në Google AI Studio.
Rekomandohet fuqimisht që të mos kontrolloni një çelës API në sistemin tuaj të kontrollit të versionit.
Ky udhëzues supozon se ju po përdorni çelësin tuaj API si një variabël mjedisi.
Listoni modelet e akorduara
Ju mund të kontrolloni modelet tuaja ekzistuese të akorduara me metodën tunedModels.list
.
# 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=$GEMINI_API_KEY \
-H "Content-Type: application/json" > tuned_models2.json
jq .tunedModels[].name < tuned_models.json
fi
Krijo një model të akorduar
Për të krijuar një model të sintonizuar, duhet t'i kaloni të dhënat tuaja modelit në metodën tunedModels.create
.
Për këtë shembull, ju do të sintonizoni një model për të gjeneruar numrin tjetër në sekuencë. Për shembull, nëse hyrja është 1
, modeli duhet të nxjerrë 2
. Nëse hyrja është one hundred
, dalja duhet të jetë one hundred one
.
curl -X POST "https://generativelanguage.googleapis.com/v1beta/tunedModels?key=$GEMINI_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=$GEMINI_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=$GEMINI_API_KEY \
-H 'Content-Type: application/json' > tuned_model.json
cat tuned_model.json | jq ".state"
Vlerat optimale për numërimin e epokave, madhësinë e grupit dhe shkallën e të mësuarit varen nga grupi juaj i të dhënave dhe kufizimet e tjera të rastit tuaj të përdorimit. Për të mësuar më shumë rreth këtyre vlerave, shihni Cilësimet e akordimit të avancuar dhe Hiperparametrat .
Modeli juaj i akorduar shtohet menjëherë në listën e modeleve të akorduar, por gjendja e tij vendoset në "krijim" ndërsa modeli akordohet.
Provoni modelin
Ju mund të përdorni metodën tunedModels.generateContent
dhe të specifikoni emrin e modelit të sintonizuar për të testuar performancën e tij.
curl -X POST https://generativelanguage.googleapis.com/v1beta/$modelname:generateContent?key=$GEMINI_API_KEY \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts": [{
"text": "LXIII"
}]
}]
}' 2> /dev/null
Fshi modelin
Ju mund të pastroni listën tuaj të modeleve të akorduara duke fshirë modelet që nuk ju nevojiten më. Përdorni metodën tunedModels.delete
për të fshirë një model. Nëse keni anuluar ndonjë punë akordimi, mund të dëshironi t'i fshini ato pasi performanca e tyre mund të jetë e paparashikueshme.
curl -X DELETE https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GEMINI_API_KEY \
-H 'Content-Type: application/json'