Programma
Fino a poco tempo fa, il fine-tuning di GPT-4o era possibile solo con il testo. Ora, con la più recente API di OpenAI per il fine-tuning, possiamo personalizzare GPT-4o anche con le immagini. Questo significa che possiamo adattare le capacità di GPT-4o al nostro caso d’uso.
Questo aggiornamento apre nuove possibilità: immagina di fare fine-tuning su GPT-4o per ricerche visive più accurate, rilevamento di oggetti o persino analisi di immagini mediche.
In questo tutorial ti guiderò passo dopo passo nel fine-tuning di GPT-4o con le immagini. In particolare, ottimizzeremo il modello per identificare correttamente le chiese ortodosse georgiane.
Prezzi del fine-tuning visivo di GPT-4o
OpenAI offre un milione di token gratuiti al giorno fino al 31 ottobre per fare fine-tuning del modello GPT-4o con immagini: un’ottima occasione per esplorare le capacità del fine-tuning visivo di GPT-4o.
Dopo il 31 ottobre, i costi di training passeranno a un modello a consumo, con un prezzo di 25 $ per milione di token. Inoltre, ci saranno costi di inferenza per ogni input (3,75 $ per milione di token) e output (15 $ per milione di token).
È importante notare che queste informazioni sono aggiornate al 10 ottobre; assicurati quindi di consultare la pagina dei prezzi di OpenAI per i dettagli più recenti su prezzi e disponibilità.
La sfida visiva di GPT-4o
Passiamo alla parte interessante. Come si fa concretamente il fine-tuning visivo per GPT-4o?
Cominciamo valutando quanto bene GPT-4o riconosce questa chiesa georgiana:

Alla domanda, il modello ha pensato che l’immagine raffigurasse la chiesa di San Nicola in Georgia, mentre in realtà si tratta del tempio dell’Annunciazione di Kutaisi.
È chiaro che c’è margine di miglioramento, ed è qui che entra in gioco il fine-tuning.
Prepara il file JSONL
Per iniziare con il fine-tuning, dobbiamo prima preparare il dataset di training. Secondo la documentazione ufficiale, ci serve un file JSONL strutturato così:
{
"messages": [
{
"role": "system",
"content": "You are an assistant that identifies Georgian orthodox churches."
},
{
"role": "user",
"content": "What is this church called?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Khareba_church.jpg"
}
}
]
},
{
"role": "assistant",
"content": "Kutaisi Holy Annunciation temple"
}
]
}
//second example
{
"messages": [
{
"role": "system",
"content": "You are an assistant that identifies Georgian orthodox churches."
},
{
"role": "user",
"content": "What is this church called?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/en/a/af/Holy_Trinity_Cathedral_of_Tbilisi.jpg"
}
}
]
},
{
"role": "assistant",
"content": "Holy trinity cathedral"
}
]
}
//other examples below
Per leggibilità e spazio, ho incluso solo un estratto del mio JSONL di training con due voci; gli altri esempi di training andrebbero aggiunti su una riga separata.
Nota che servono almeno 10 esempi per eseguire il fine-tuning. Ogni riga rappresenta un oggetto JSON indipendente con un array di messages.
Nota anche che JSONL non supporta i commenti, quindi ho deciso di aggiungerli dopo // per la guida. Assicurati di rimuoverli prima del training.
Puoi usare un normale editor di testo come Notepad oppure, se stai lavorando con molti esempi, conviene automatizzare la creazione di questo file con uno script. Una volta pronto il file JSONL, puoi iniziare il processo di fine-tuning.
Fine-tuning di GPT-4o con le immagini
Ora che il JSONL è pronto, dobbiamo accedere alla nostra dashboard di OpenAI e scegliere l’opzione Create:

Nel menu che si apre:
- Scegli il modello
gpt-4o-2024-08-06. - Carica il file JSONL di training.
- Puoi anche impostare gli iperparametri o lasciare tutto su auto.
Una volta creato il job, il fine-tuning dovrebbe partire automaticamente:

La mia procedura di fine-tuning ha richiesto circa 20 minuti (il numero di epoche è stato impostato automaticamente a 9). In base alla dimensione del dataset e alla complessità del modello, i tempi possono variare, ma riceverai una notifica quando sarà completo.
Test del modello GPT-4o ottimizzato
Una volta terminato, puoi accedere all’agente ottimizzato tramite l’API o il Playground.
Per semplicità, userò il Playground per i test. Vediamo se questa volta il modello riesce a identificare correttamente la chiesa:

Come puoi vedere, l’agente ottimizzato (a destra) ha identificato correttamente la chiesa, anche se quell’immagine non era presente nel dataset di training. Il modello standard (a sinistra), invece, sbaglia ancora!
Conclusione
In questo tutorial abbiamo esplorato il processo di fine-tuning di GPT-4o con le immagini.
Siamo partiti evidenziando le limitazioni iniziali del modello nell’identificare un tipo specifico di chiesa. Per affrontare il problema, abbiamo preparato un file JSONL contenente coppie immagine-testo per il training. Abbiamo poi utilizzato l’API di fine-tuning di OpenAI per creare un modello personalizzato.
Infine, abbiamo testato il modello ottimizzato e osservato una maggiore accuratezza nell’identificazione della chiesa.
Sebbene questo esempio sia incentrato su un caso d’uso specifico, i principi e le tecniche alla base possono essere applicati a un’ampia gamma di attività legate alle immagini, dimostrando il potenziale del fine-tuning visivo di GPT-4o. Ti consiglio di leggere i casi d’uso nell’articolo di annuncio di OpenAI.
Per saperne di più su come lavorare con i prodotti di OpenAI, ti suggerisco queste risorse:


