blank
4
Sep

¿Qué es eso de “finetunear” una IA? ¿De qué me puede servir? Y ¿Cómo hacerlo?

La IA seguirá siendo tema transversal en OpenExpo Europe y en toda la esfera tecnológica, por bastante tiempo. En nuestro caso cobran, por razones obvias, un especial protagonismo los modelos LLMs e IAs de código abierto. Estos, entre muchas ventajas (también tienen inconvenientes) te permiten “finetunearlos”. ¿Y qué demonios es eso?. ¿Qué me va a aportar?. Y, si me sirve, para algo, ¿cómo lo hago?. Pues de esto va nuestra entrada de hoy en el blog de OpenExpo.

Finetunear” (leído faintunear) es una españolización, simpática diría yo, del término inglés finetuning (ajuste fino).

El finetuning de modelos de Inteligencia Artificial nos deja personalizar modelos preentrenados para que funcionen mejor en las tareas específicas a los que los vayamos a dedicar. Aunque, hasta hace muy poquito, esta técnica estaba asociaba a grandes proyectos, hoy en día (y es que esto va que se las pela) cualquier usuario doméstico puede hacer finetuning en su propio equipo gracias a potentes herramientas open source y recursos al alcance de la mano, muchos de ellos gratuitos.

A lo largo de estas líneas te vamos a dejar una guía práctica sobre cómo realizar finetuning en local, sin complicarte mucho con detalles técnicos, y te explicaremos las ventajas que te puede aportar, tanto en tus proyectos personales, como profesionales.

¿Qué es eso de “finetunear” una IA?.¿De qué me puede servir? Y ¿Cómo hacerlo?

Ventajas del finetuning para usuarios individuales

Antes de entrar en los detalles de cómo hacerlo, es importante conocer en que te puede ayudar el finetuning y si ofrece algo que te aporte, especialmente si eres usuario doméstico. Podŕiamos citar, a bote pronto, al menos cuatro grandes razones, o grupos de razones:

Ahorro de tiempo y recursos: Entrenar un modelo desde cero es muy costoso y lento y si estás empezando en IA, mejor olvídate. Por ello, con el finetuning, puedes aprovechar modelos ya preentrenados y simplemente ajustarlos a tus necesidades más específicas. Con esto reduces más que considerablemente el tiempo y, sobre todo y ante todo, los recursos que se requieren.

Personalización para tareas específicas: Con este proceso, del que hablamos, puedes adaptar un modelo general a tareas muy concretas, como la clasificación de tus propias imágenes, la creación de chatbots especializados por y para ti o tus clientes. la generación de textos con un estilo personalizado… (y todos los ejemplos de personalización que ahora mismo te rondan la cabeza).

Accesibilidad: Gracias a las plataformas open source como Ollama o Hugging Face, por citar las más conocidas, cualquier persona puede acceder a modelos de IA muy avanzados sin necesidad de grandes infraestructuras, sólo con una conexión a internet y un pc en casa.

Flexibilidad: “Finetunear” (ya sabes, finetuning) te permite que un mismo modelo preentrenado lo puedas adaptar a diferentes tipos de tareas, por lo que puedes ajustar un solo modelo para diversos proyectos sin tener que buscar nuevas soluciones desde cero, una y otra vez.

¿Qué es eso de “finetunear” una IA?.¿De qué me puede servir? Y ¿Cómo hacerlo?

¿Qué necesitas para hacer finetuning en local?

Bueno ¿crees que te puede resultar útil?. Pues vamos a ello. Lo primero, algunos requisitos básicos.

Si quieres hacer finetuning en tu propio equipo, te enumeramos a continuación, los elementos esenciales que te van a hacer falta:

1. Un equipo con buena GPU: Sí, es cierto que algunos modelos ligeros pueden entrenarse con CPU, pero una buena una GPU dedicada es el camino más eficiente para acelerar el proceso de entrenamiento. Este elemento de hardware vale un dinerito y no son baratas precisamente. Pero, eso si, probablemente sea lo único que cueste del proceso ( … supongo que tienes ordenador, claro).

2. Software IA: Frameworks, muy conocidos, como PyTorch o TensorFlow son las opciones más comunes a la hora de “finetunear”, aunque hay más. Estos dos citados ofrecen potentes herramientas de entrenamiento de modelos.

3. Modelos preentrenados: Para hacer finetuning, necesitas un modelo preentrenado que va ser punto de partida. Más abajo te indicamos, al menos tres sitios, dónde encontrar bastantes.

4. Conjunto de datos específico: ¡ojo a esto! Y prepara bien tus datasets pues para ajustar el modelo a tus necesidades y que sea lo más efectivo posible, necesitarás datos que reflejen bien la tarea que quieres que tu modelo “finetuneado” realice. Estos datos deben estar bien etiquetados y organizados.

¿Qué es eso de “finetunear” una IA?.¿De qué me puede servir? Y ¿Cómo hacerlo?

Dónde descargar modelos preentrenados

Afortunadamente, de nuevo, el código abierto viene a nuestro rescate y tienes a disposición varias plataformas open source que ofrecen una gran variedad (en cantidad y calidad) de modelos preentrenados , listos para que los descargues y hagas finetuning en local. Citaremos sólo tres, como ejemplo, y dejamos a nuestra amable lectora o lector buscar la amplia oferta de la red:

Ollama: Una buenísima plataforma para descargar estos modelos de lenguaje preentrenados que puedes usar, luego, localmente. Ollama se ha ganado de la fama de muy fácil de usar y tener una tremenda optimización cara a equipos personales.

Hugging Face: Esta plataforma es, igualmente, muy pero que muy popular, especialmente para modelos de procesamiento de lenguaje natural (NLP), como GPT y BERT. Ofrecen una amplia variedad de modelos para diferentes tareas bajo licencias abiertas.

Kaggle o tfhub.dev: Es un repositorio TensorFlow repositorio repleto también de modelos preentrenados que puedes usar para tareas de visión por computadora, procesamiento de lenguaje natural y bueno…tu mismo o misma. Echa un vistazo.

Pasos generales para hacer finetuning

Y con todos los ingredientes en la mesa, vamos a la madre del cordero. No vamos a entrar en detalle concretos de código, pues hay miles de tutos en la red , pero te queremos ofrecer una visión clara de cada fase.

1. Descarga un modelo preentrenado: Pues ya lo decíamaos antes y te indicábamos de dónde .Lo primerito es descargar un modelo ya entrenado en un gran conjunto de datos.

2. Prepara tus datos: Si deseas que el modelo haga algo específico, como clasificar imágenes o analizar el sentimiento de textos… o allá tu imaginación y usos, necesitarás un conjunto de datos que refleje esa tarea. Eso si, insistimos, los datos deben estar bien organizados y etiquetados.

3. Configura el entorno de entrenamiento: Elige un framework con el que te sientas cómoda o cómodo (quizás con el tiempo vayas cambiando a medida que los conoces) como PyTorch o TensorFlow y carga el modelo elegido. Tendrás configurar algún que otro parámetro, como el tamaño del lote y el número de épocas, que determinan cuántas veces el modelo se ajustará a los nuevos datos.

4. Entrena el modelo (Finetuning): Esto es “finetunear” propiamente dicho, vamos que es el paso clave, donde ajustas el modelo a los nuevos datos específicos. Tu modelo aprenderá de este nuevo conjunto de datos, afinando (ajuste fino) los parámetros que se entrenaron en el conjunto de datos original.

5. Evalúa y ajusta: Y ya, una vez que el finetuning ha finalizado, evalúa el rendimiento del modelo. Puede ser necesario, y hasta recomendable, hacer más ajustes finos o entrenarlo por más tiempo. Por “finetuneo” que no quede.

6. Guarda y utiliza el modelo: Después de entrenar tu modelo toca algo obvio, a saber, guardarlo y usarlo en cualquier proyecto de tu interés. En mi experiencia, si has descargado el modelo desde Ollama, el proceso de integración con otros proyectos suele ser sencillo. Te animamos a que nos dejes tu experiencia con otras plataformas en los comentarios, en este blog de OpenExpo Europe.

Esta overview sobre “finetuneado” de modelos IA hemos querido orientarla a usuarios individuales, pero las técnicas de finetuning son igualmente aplicables (a otras escalas, por supuesto) para proyectos muy grandes que están en boca de todas y todos a diario y que seguramente usas cotidianamente.

O sea que esto de “finetunear”, además de divertido es una técnica accesible que permite a cualquier persona, desde usuarios domésticos hasta grandes organizaciones, adaptar modelos de IA a tareas específicas.