Leerpad
Tot voor kort was fine-tunen van GPT-4o alleen mogelijk met tekst. Nu kunnen we met de nieuwste OpenAI-fine-tuning-API GPT-4o ook met afbeeldingen aanpassen. Dit betekent dat we GPT-4o’s mogelijkheden kunnen afstemmen op onze usecase.
Deze update opent nieuwe mogelijkheden—denk aan het fine-tunen van GPT-4o voor accuratere visuele zoekopdrachten, objectdetectie of zelfs medische beeldanalyse.
In deze tutorial geef ik stapsgewijze uitleg over het fine-tunen van GPT-4o met afbeeldingen. We gaan het model specifiek fine-tunen om Georgisch-orthodoxe kerken correct te identificeren.
Prijzen voor visueel fine-tunen van GPT-4o
OpenAI biedt tot en met 31 oktober dagelijks één miljoen gratis tokens aan om het GPT-4o-model met afbeeldingen te fine-tunen. Een mooie kans om de mogelijkheden van visueel fine-tunen met GPT-4o te verkennen.
Na 31 oktober worden de trainingskosten pay-as-you-go: $25 per miljoen tokens. Daarnaast betaal je inferentiekosten voor elke input ($3,75 per miljoen tokens) en output ($15 per miljoen tokens).
Let op: deze informatie is actueel per 10 oktober. Raadpleeg daarom OpenAI’s prijspagina voor de meest recente details over prijzen en beschikbaarheid.
De visuele uitdaging van GPT-4o
Laten we naar het interessante deel gaan. Hoe doen we visueel fine-tunen voor GPT-4o in de praktijk?
We beginnen met het beoordelen hoe goed GPT-4o deze Georgische kerk herkent:

Gevraagd naar de afbeelding dacht het model dat dit de St. Nicolaaskerk in Georgië was, terwijl het in werkelijkheid de Kutaisi Holy Annunciation-tempel is.
Er is dus duidelijk ruimte voor verbetering—en daar komt fine-tunen om de hoek kijken.
Het JSONL-bestand voorbereiden
We moeten eerst onze trainingsdataset voorbereiden om met fine-tunen te beginnen. Volgens de officiële documentatie hebben we een JSONL-bestand nodig met de volgende structuur:
{
"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
Voor de leesbaarheid en de ruimte heb ik alleen een fragment van mijn trainings-JSONL met twee items opgenomen; de andere trainingsvoorbeelden voeg je elk op een aparte regel toe.
Let op dat we minimaal 10 voorbeelden nodig hebben om het fine-tunen uit te voeren. Elke regel is een zelfstandig JSON-object met een messages-array.
Let ook op dat JSONL geen opmerkingen ondersteunt, dus heb ik voor de gids comments na // toegevoegd. Verwijder deze vóór het trainen.
Je kunt een gewone teksteditor zoals Kladblok gebruiken, of—als je met veel voorbeelden werkt—is het handig om het maken van dit bestand te automatiseren met een script. Zodra je JSONL-bestand klaar is, kun je beginnen met het fine-tuneproces.
GPT-4o fine-tunen met afbeeldingen
Nu het JSONL-bestand klaar is, moeten we inloggen op ons OpenAI-dashboard en de optie Create kiezen:

In het menu dat verschijnt:
- Kies het model
gpt-4o-2024-08-06. - Upload het trainings-JSONL-bestand.
- Je kunt de hyperparameters instellen of alles op auto laten.
Zodra we de job aanmaken, start het fine-tunen automatisch:

Mijn fine-tuning liep ongeveer 20 minuten (het aantal epochs werd automatisch op 9 gezet). Afhankelijk van de datasetgrootte en modelcomplexiteit kan dit variëren, maar je krijgt een melding zodra het klaar is.
Het gefinetunede GPT-4o-model testen
Als je klaar bent, kun je de gefinetunede agent benaderen via de API of de Playground.
Voor de eenvoud gebruik ik de Playground voor het testen. Laten we kijken of het model de kerk nu wél correct kan identificeren:

Zoals je ziet identificeerde de gefinetunede agent (rechts) de kerk correct, ook al stond die foto niet in de trainingsset. Het reguliere model (links) zit er nog steeds naast!
Conclusie
In deze tutorial hebben we het proces verkend van het fine-tunen van GPT-4o met afbeeldingen.
We begonnen met het uitlichten van de eerste beperkingen van het model bij het herkennen van een specifiek type kerk. Om dit aan te pakken, hebben we een JSONL-bestand voorbereid met beeld-tekstparen voor training. Vervolgens hebben we de fine-tuning-API van OpenAI gebruikt om een aangepast model te maken.
Tot slot hebben we het gefinetunede model getest en zagen we een verbeterde nauwkeurigheid bij het identificeren van de kerk.
Hoewel dit voorbeeld focuste op een specifieke usecase, zijn de onderliggende principes en technieken toepasbaar op een breed scala aan beeldgerelateerde taken. Dat laat het potentieel zien van de visuele fine-tuningmogelijkheden van GPT-4o. Ik raad aan om de usecases in het aankondigingsartikel van OpenAI te lezen.
Wil je meer leren over werken met de producten van OpenAI? Dan raad ik deze bronnen aan:

