Programa
Hasta hace poco, el ajuste fino GPT-4o sólo era posible con texto. Ahora, con OpenAIde OpenAI ajuste fino podemos personalizar GPT-4o también con imágenes. Esto significa que podemos adaptar las capacidades de GPT-4o a nuestro caso de uso.
Esta actualización abre nuevas posibilidades: imagina afinar la GPT-4o para realizar búsquedas visuales más precisas, detectar objetos o incluso analizar imágenes médicas.
En este tutorial, te guiaré paso a paso para ajustar GPT-4o con imágenes. Concretamente, afinaremos el modelo para identificar correctamente las iglesias ortodoxas georgianas.
GPT-4o Ajuste Visual de Precios
OpenAI está ofreciendo un millón de tokens gratuitos al día hasta el 31 de octubre para afinar el modelo GPT-4o con imágenes, lo que constituye una buena oportunidad para explorar las capacidades de afinamiento visual de GPT-4o.
Después del 31 de octubre, los costes de formación pasarán a un modelo de pago por uso, con una tarifa de 25 $ por millón de tokens. Además, se incurrirá en costes de inferencia por cada entrada (3,75 $ por millón de fichas) y salida (15 $ por millón de fichas).
Es importante tener en cuenta que esta información es exacta a fecha de 10 de octubre, así que asegúrate de consultar la página de precios de OpenAI para conocer los detalles más actualizados sobre precios y disponibilidad.
Reto del Problema Visual de GPT-4o
Pasemos a la parte interesante. ¿Cómo hacemos realmente el ajuste visual para GPT-4o?
Empecemos por evaluar lo bien que GPT-4o reconoce a esta iglesia georgiana:
Cuando se le preguntó, la modelo pensó que la imagen era de la iglesia de San Nicolás de Georgia, cuando en realidad se trata del templo de la Santa Anunciación de Kutaisi.
Está claro que se puede mejorar, y aquí es donde entra en juego el ajuste fino.
Prepara el archivo JSONL
Primero tenemos que preparar nuestro conjunto de datos de entrenamiento para empezar con el ajuste fino. Según la documentación oficial, necesitamos un archivo JSONL estructurado así:
{
"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
En aras de la legibilidad y el espacio, sólo he incluido un fragmento de mi JSONL de entrenamiento con dos entradas; los demás ejemplos de entrenamiento deben añadirse en una línea aparte.
Ten en cuenta que necesitamos al menos 10 ejemplos para realizar el ajuste fino. Cada línea representa un objeto JSON independiente con una matriz messages
.
Ten en cuenta también que JSONL no admite comentarios, así que decidí añadir comentarios después de //
por el bien de la guía. Asegúrate de quitártelos antes de entrenar.
Puedes utilizar un editor de texto normal como el Bloc de notas, o si trabajas con muchos ejemplos, es buena idea automatizar la creación de este archivo utilizando un script. Una vez que tu archivo JSONL esté listo, puedes empezar el proceso de ajuste.
Desarrollar aplicaciones de IA
Ajuste fino del GPT-4o con imágenes
Ahora, con el JSONL listo, tenemos que iniciar sesión en nuestro panel de OpenAI y elegir la opción Crear crear:
En el menú que aparece
- Elige el modelo
gpt-4o-2024-08-06
. - Sube el archivo JSONL de entrenamiento.
- También puedes configurar los hiperparámetros o dejarlo todo en auto.
Una vez creado el trabajo, el ajuste debería iniciarse automáticamente:
Mi rutina de ajuste me llevó aproximadamente 20 minutos (el número de épocas se fijó automáticamente en 9). Dependiendo del tamaño del conjunto de datos y de la complejidad del modelo, esto podría variar, pero se te notificará una vez se haya completado.
Prueba del modelo GPT-4o afinado
Una vez que hayas terminado, puedes acceder al agente ajustado a través de la API o del Playground.
Para simplificar, utilizaré el Playground para las pruebas. Veamos si esta vez el modelo puede identificar correctamente la iglesia:
Como puedes ver, el agente afinado (a la derecha) identificó correctamente la iglesia, aunque esa imagen no estaba en el conjunto de datos de entrenamiento. El modelo normal (a la izquierda) ¡sigue equivocándose!
Conclusión
En este tutorial, exploramos el proceso de ajuste fino de GPT-4o con imágenes.
Empezamos destacando las limitaciones iniciales del modelo a la hora de identificar un tipo concreto de iglesia. Para solucionarlo, preparamos un archivo JSONL que contenía pares imagen-texto para el entrenamiento. A continuación, utilizamos la API de ajuste de OpenAI para crear un modelo personalizado.
Por último, probamos el modelo afinado y observamos su mayor precisión en la identificación de la iglesia.
Aunque este ejemplo se centraba en un caso de uso concreto, los principios y técnicas subyacentes pueden aplicarse a una amplia gama de tareas relacionadas con la imagen, lo que demuestra el potencial de las capacidades de ajuste visual de GPT-4o. Recomiendo leer los casos de uso en el artículo de anuncio de OpenAI de OpenAI.
Para saber más sobre cómo trabajar con los productos de OpenAI, te recomiendo estos recursos: