No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Fine-tuning de modelo de OpenAI

14/24
Recursos

El proceso de personalización de modelos de inteligencia artificial está en boga, y por una buena razón. Adaptar un modelo a las necesidades específicas de un proyecto puede significar la diferencia entre un asistente digital que apenas funcione y uno que parezca casi humano. En esta ocasión, te guiaré en cómo hacer "fine tuning" a los modelos de OpenAI utilizando los datos en formato JSONL. No te preocupes, es un proceso menos complejo de lo que suena.

Personaliza tu modelo de IA con fine tuning

Cuando hablamos de "fine tuning", nos referimos a afinar un modelo preentrenado para que se especialice en tareas específicas. Imagina que es como ajustar las cuerdas de una guitarra para que suene a la perfección en tu próxima canción.

¿Por qué es importante el fine tuning?

El "fine tuning" es crucial porque permite que el modelo se ajuste a las particularidades del lenguaje y las tareas específicas para las que lo queremos utilizar. Es el paso final que puede dar a tu modelo ese toque especial que lo distingue.

¿Qué modelos de OpenAI se pueden personalizar con fine tuning?

Aquí es importante recordar algo crucial: No todos los modelos son maleables a nuestros caprichos. Solo ADA, Babbage, Curie y DaVinci de OpenAI están listos para pasar por este proceso de personalización.

Paso a paso: Realizando el fine tuning

El proceso inicia con un comando proporcionado en la documentación de OpenAI, que pegaremos en la terminal:

  1. Primero, localizas el comando para "fine tuning" en la documentación de OpenAI.
  2. Copia el comando en tu terminal.
  3. Modifica el segmento donde seleccionas tu archivo en formato JSONL reemplazando data_yourfile.jsonl.
  4. Sustituye -m con el modelo que quieras personalizar, por ejemplo, davinci.

Una vez que ejecutes el comando, deberás esperar un poco. La paciencia es una virtud, especialmente cuando estás a la espera de que una máquina aprenda de más de 2,000 ejemplos de entrenamiento.

Problemas comunes: Conexión a Internet y desconexiones

Uno de los problemas más comunes es la desconexión durante el proceso, esto puede ocurrir por la conexión a Internet. Si esto pasa, OpenAI te proveerá un nuevo comando que podrás ejecutar para reanudar sin problemas.

Supervisión del progreso y costos

Después de unos minutos, podrás ver los resultados del "fine tuning", incluyendo el nombre del modelo y el costo asociado a este proceso. Si te encuentras en la posición número cero de la lista de espera, quiere decir que ha terminado el "fine tuning".

Últimos pasos: Uso y evaluación del modelo personalizado

Finalmente, después de completar el "fine tuning", es momento de utilizar y evaluar el modelo. Cabe destacar, este paso es crucial para entender cómo el modelo se comporta con los datos y tareas específicos para los que ha sido entrenado.

Recordemos que este es un proceso iterativo, y la evaluación nos puede llevar a realizar ajustes adicionales para alcanzar el nivel deseado de personalización. Como un artesano que refina su obra, el "fine tuning" es un arte que requiere precisión y cuidado. Continúa experimentando y aprendiendo, ya que cada ajuste te acercará más a ese modelo de inteligencia artificial a medida que tanto deseas.

Aportes 13

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sabían que?
Ada: Nombrado en honor a Ada Lovelace, una matemática y escritora del siglo XIX, considerada la primera programadora de la historia. El modelo “Ada” destaca por su enfoque en la precisión y la lógica en el procesamiento del lenguaje natural.

Curie: Inspirado en Marie Curie, la famosa física y química del siglo XIX y XX. El modelo “Curie” se destaca por su capacidad para descubrir patrones y generar respuestas creativas y científicamente precisas.

Babbage: Homenaje a Charles Babbage, un matemático e ingeniero del siglo XIX, conocido como el “padre de las computadoras”. El modelo “Babbage” se enfoca en el procesamiento eficiente y la capacidad de realizar cálculos complejos.

DaVinci: En honor a Leonardo da Vinci, un genio renacentista con talentos en arte, ciencia y muchas otras disciplinas. El modelo “DaVinci” es una obra maestra en el procesamiento del lenguaje, con habilidades excepcionales en creatividad, resolución de problemas y comprensión contextual.

Para no asustarse con los precios:

  • El dataset que utiliza la profe tiene unas 1200 entradas con un costo de fine-tuning utilizando el modelo davinci (el cual es el más caro) de $27 dólares.

  • El dataset que pasaron en los recursos es más chico, tiene 200 entradas (una sexta parte), por lo que podríamos suponer un costo de $27/6 ~= $4,5 dólares.

  • Y si además cambiamos el modelo a ada, el cual tiene un precio 75 veces más barato que davinci, por lo tanto podríamos suponer un costo de $4,5 dólares / 75 ~= $0.06 dólares.

Mejores prácticas generales
El fine tuning funciona mejor con más ejemplos de alta calidad. Para afinar un modelo que funciona mejor idealmente deben ser examinados por humanos. A partir de ahí, el rendimiento tiende a aumentar linealmente con cada duplicación del número de ejemplos. Aumentar el número de ejemplos suele ser la forma mejor y más fiable de mejorar el performance.

Los clasificadores son los modelos más fáciles para comenzar. Para los problemas de clasificación, se deberia usar ada, que generalmente tiende a funcionar solo un poco peor que los modelos más capaces una vez ajustados, mientras que es significativamente más rápido y más barato.

Si está ajustando un conjunto de datos preexistente en lugar de escribir indicaciones desde cero, asegúrense de revisar manualmente sus datos para datos inexactos.
Fuente:https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset

Por si alguien desea entrenar con el modelo gpt-3.5-turbo los comandos de esta clase ya no funcionan, voy a averiguar como hacerlo y actualizo este post

Hola, me quedé en la parte de:

openai api fine_tunes.create -t data_prepared.jsonl -m ada

Y me arroja como resultado el siguiente error:

openai api: error: argument {chat.completions.create,images.generate,images.edit,images.create_variation,audio.transcriptions.create,audio.translations.create,files.create,files.retrieve,files.delete,files.list,models.list,models.retrieve,models.delete,completions.create}: invalid choice: ‘fine_tunes.create’ (choose from ‘chat.completions.create’, ‘images.generate’, ‘images.edit’, ‘images.create_variation’, ‘audio.transcriptions.create’, ‘audio.translations.create’, ‘files.create’, ‘files.retrieve’, ‘files.delete’, ‘files.list’, ‘models.list’, ‘models.retrieve’, ‘models.delete’, ‘completions.create’)

Ayuda, por favor.

¿Qué pasa con la información con la que se entrena el modelo, pasa a propiedad de OpenAI o sigue siendo privada? ¿Se puede entrenar el modelo de datos sensibles de una empresa?
El comando `openai api fine_tunes.create ...` se encuentra deprecado. Link: <https://platform.openai.com/docs/guides/legacy-fine-tuning/create-a-fine-tuned-model> Nuevos pasos para fine tunning <https://openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates> Por lo que vi en la guia no usan mas un cliente por consola, sino que su documentacion ahora esta en Python. Dejo los comandos a continuacion, espero les sirvan :) `pip install openai` ```python # 1. Import openai from openai import OpenAI # Lee la key de $OPEN_API_KEY client = OpenAI() # 2. Upload a training file response_upload = client.files.create( file=open("data_prepared.jsonl", "rb"), purpose="fine-tune" ) fine_tune_id = response_upload.id print(response_upload) # 3. Create a fine-tuned model response_train = client.fine_tuning.jobs.create( training_file=fine_tune_id, model="davinci-002" # Cost: $0.0020 / 1K tokens ) fine_tunning_job_id = response_train.id print(response_train) # 4. Esperar, yo me arme el siguiente comando, para ejecutar cada unos minutos y revisar current_status = client.fine_tuning.jobs.retrieve(fine_tunning_job_id) print(f" id: {current_status.id} \n status: {current_status.status} \n created_at: {current_status.created_at} \n trained_tokens: {current_status.trained_tokens}") """ Si investigan la documentacion que deje mas arriba, openai explica como cancelar o eliminar jobs. El costo total de entrenar en davinci-002 me salio $0.23 dolares """ ```
openai api fine_tunes.get -i [Id_modelo]

Te da una perspectiva mas amplia de lo que esta pasando con tu entrenamiento. Si les pasa como a mi que entrenando con curie, se demora muchísimo. (30 min +)

¿Realizar el fine-tuning hace consumo de mis créditos en OpenAI?
¿Cómo puedo hacer fine tuning pero cargando archivos o texto de libros creados por mi organización cómo guías? o diciendo integra a tu base de conocimiento lo siguiente: y coloco el contenido de mis guías.
Si olvidaron la configuración del APIKEY, pueden usar en su terminal el siguiente comando: export OPENAI\_API\_KEY=\<your secret key>
A alguien más le pasa que con la nueva versión de Platzi no aparecen los recursos?

Llevo dos horas intentando y no avanza

Stream interrupted (client disconnected).
To resume the stream, run:
openai api fine_tunes.follow -i ft-SAXHdL7uUeOEXWYt11eI777X

Se supone que tengo un internet simétrico de 300 Mbps

que triste historia la mía