Questo tutorial ti aiuterà a iniziare a utilizzare il servizio di ottimizzazione dell'API Gemini con l'SDK Python o 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.
![]() |
![]() |
![]() |
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.
Prima di iniziare: configura il progetto e la chiave API
Prima di chiamare l'API Gemini, devi configurare il progetto e la chiave API.
Elenco dei modelli ottimizzati
Puoi controllare i modelli ottimizzati esistenti con il metodo
tunedModels.list
.
from google import genai
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 set di dati 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.0-pro-001',
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 conteggio delle 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.