Questo tutorial ti aiuterà a iniziare a utilizzare il servizio di ottimizzazione dell'API Gemini con l'SDK Python o con l'API REST utilizzando curl. Gli esempi mostrano come ottimizzare il modello di testo alla base del servizio di generazione di testo dell'API Gemini.
Prima di iniziare
Prima di chiamare l'API Gemini, assicurati di avere installato l'SDK che preferisci e di avere configurato e pronto all'uso una chiave API Gemini.
![]() |
![]() |
![]() |
Limitazioni
Prima di ottimizzare un modello, tieni presente le seguenti limitazioni:
Set di dati di ottimizzazione fine
La definizione fine dei set di dati per Gemini 1.5 Flash presenta le seguenti limitazioni:
- La dimensione massima dell'input per esempio è 40.000 caratteri.
- La dimensione massima dell'output per esempio è di 5000 caratteri.
- Sono supportati solo esempi di coppie input-output. Le conversazioni con più turni in stile chat non sono supportate.
Modelli ottimizzati
I modelli ottimizzati presentano le seguenti limitazioni:
- Il limite di input di un modello Gemini 1.5 Flash ottimizzato è 40.000 caratteri.
- La modalità JSON non è supportata con i modelli ottimizzati.
- È supportato solo l'inserimento di testo.
Elenco dei modelli ottimizzati
Puoi controllare i modelli ottimizzati esistenti con il metodo
tunedModels.list
.
from google import genai
from google.genai import types
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable
for model_info in client.models.list():
print(model_info.name)
Crea un modello ottimizzato
Per creare un modello ottimizzato, devi passare il dataset al
modello nel metodo tunedModels.create
.
Per questo esempio, ottimizzerai un modello per generare il numero successivo nella sequenza. Ad esempio, se l'input è 1
, il modello deve produrre 2
. Se l'input è one hundred
, l'output dovrebbe essere one hundred one
.
# 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.5-flash-001-tuning',
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)
I valori ottimali per il numero di epoche, la dimensione del batch e il tasso di apprendimento dipendono dal set di dati e da altri vincoli del caso d'uso. Per scoprire di più su questi valori, consulta le impostazioni di ottimizzazione avanzata e gli iperparametri.
Prova il modello
Puoi utilizzare il metodo
tunedModels.generateContent
e specificare il nome del modello ottimizzato per testarne le prestazioni.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
Non implementata
Alcune funzionalità (report sullo stato di avanzamento, aggiornamento della descrizione ed eliminazione dei modelli ottimizzati) non sono ancora state implementate nel nuovo SDK.