• Blog
  • IA
  • ¿Qué es el fine-tuning de un modelo de IA?

¿Qué es el fine-tuning de un modelo de IA?

15min

En la medida en la que queremos utilizar la Inteligencia Artificial en más y más contextos surge la necesidad de adaptar los modelos de lenguaje natural LLM para que sean capaces de abordar otras actividades para los que no han sido entrenados de manera especializada. Ahí es donde surgen técnicas como la que vamos a explicar en este post, el fine-tuning. Veremos en qué consiste, casos de uso donde puedes aplicar esta técnica y la compararemos con otras alternativas que también deberías considerar como RAG.

Índice

¿Qué es el fine-tuning?

El fine-tuning es el proceso de adaptar un modelo de Inteligencia Artificial previamente entrenado, para que sea capaz de desempeñar correctamente una tarea específica. Para ello se realiza sobre el modelo original un entrenamiento adicional, con datos más especializados que le ofrecen toda la base que necesita conocer para poder abordar con éxito nuevos problemas.

Como sabrás, entrenar un modelo es altamente costoso, ya que implica un coste computacional gigantesco, aparte de contar con grandes volúmenes de datos. Por supuesto, esto no está al alcance de cualquier empresa, ni mucho menos. Es por ello que resultan útiles técnicas como el fine tuning, que nos permite comenzar con un modelo previamente entrenado, al que le suministramos únicamente los datos que debe conocer para esa nueva actividad, haciendo que el coste computacional de ese entrenamiento adicional sea mucho menor.

Este enfoque permite aprovechar la inversión de otras organizaciones en el entrenamiento del modelo para tareas generales como lenguaje, semántica, patrones, evitando partir desde cero cuando queremos especializarlo en casos como atención al cliente, generación de código, análisis legal o tareas médicas. El resultado es un modelo más preciso, consistente y alineado con los objetivos específicos de aquellas necesidades de nuestra empresa u organización.

Quizás, si usas la IA en tu día a día habrás observado que puedes hacer cosas similares mediante la incorporación de skills o agentes especializados. Sin embargo, fine-tuning va varios pasos por delante, ya que le ofreces al modelo todo lo que necesita para conocer un dominio, en lugar de tener que darle instrucciones específicas cada vez. Es decir, gracias a un nuevo entrenamiento con una cantidad de información adicional y el ajuste de pesos, conseguimos que el modelo resultante esté especializado de casa para cualquier tarea relacionada con un nuevo dominio.

Metodologías y aspectos técnicos del fine-tuning LLM

Para entender mejor en qué consiste el fine-tuning vamos a ver a continuación algunas metodologías y aspectos técnicos cuando lo aplicamos sobre un LLM.

Ajuste fino completo (Full Fine-Tuning) frente a métodos eficientes (PEFT)

Primero vamos a ver la diferencia entre dos metodologías. Por un lado tenemos el ajuste fino completo que consiste en actualizar todos los parámetros del modelo durante el entrenamiento.  Este método de entrenamiento ofrece máxima flexibilidad y capacidad de adaptación pero sin embargo su coste es muy elevado en términos de memoria y uso de GPU.

Luego tenemos otro método que se denomina PEFT (Parameter-Efficient Fine-Tuning), que busca modificar solo una pequeña fracción de los parámetros previamente existentes. En otras palabras consiste en introducir componentes adicionales, en lugar de alterar todo el modelo, lo que reduce drásticamente los recursos necesarios.

El impacto de LoRA (Low-Rank Adaptation) y QLoRA en la reducción de costes de cómputo

Cuando queremos hacer PEFT aún podemos ajustar más todavía los costes de recursos con técnicas adicionales como LoRa y QLoRa.

  • LoRA tiene como idea principal el descomponer las actualizaciones de pesos en matrices de bajo rango. Esto en la práctica permite entrenar solo esas matrices en lugar del modelo completo y con ello se reduce significativamente el número de parámetros entrenables, sin perder capacidad de adaptación.
  • QLoRA sigue ese mismo esquema pero va un paso más allá, al combinar la técnica con cuantización. En QLoRA el modelo base se carga en una representación de baja precisión (por ejemplo, 4 bits), mientras que las matrices LoRA se entrenan en mayor precisión. Esto permite realizar fine-tuning de modelos muy grandes en hardware que no tiene tantos recursos, usando menos tiempo.

El papel de los hiperparámetros

Los hipeparámetros son los controles de la configuración del entrenamiento de los modelos. Como quizás sabrás, los parámetros son los pesos y elementos internos que el entrenamiento ajusta automáticamente en el modelo y le permiten gestionar el conocimiento y sus habilidades. Por su parte, los hiperparámetros son configuraciones externas del proceso de entrenamiento. Es decir, no se hallarán dentro del modelo pero sirven para decidir cómo el sistema de tuning cambia los pesos.

Pues bien, en fine-tuning se usan esos hiperparámetros para cambiar los parámetros del modelo de la manera que desees. Para entenderlo mejor vamos a ver algunos ejemplos relevantes de hiperparámetros:

  • Learning rate: determina la magnitud de los ajustes en cada iteración de entrenamiento. tienes que mantener esa medida equilibrada para no destruir el conocimiento previo pero no ralentizar demasiado el aprendizaje.
  • Batch size, que influye en la estabilidad del entrenamiento y en el uso de memoria.
  • Número de epochs: controla cuántas veces el modelo ve los datos con los que se va a entrenar

En fin, que puedes definir cosas que harán que el proceso de entrenamiento acabe construyendo modelos con diferencias sutiles, o a veces grandes.

Fine-tuning vs. RAG

Quizás hayas oído hablar de otra técnica que también puede servir para mejorar las respuestas de los modelos en función de datos que tenemos en nuestra base de conocimiento. Se trata de RAG, que nos ofrece un enfoque bastante diferente que merece la pena entender y diferenciar para saber cuándo aplicar cada una de las técnicas, de modo que consigamos resultados más adecuados a nuestras necesidades específicas.

Diferencias conceptuales entre modificar el conocimiento base y cambiar el comportamiento del modelo

Como hemos dicho, el fine-tuning modifica directamente los pesos del modelo, lo que implica alterar su conocimiento interno o su forma de responder ante las situaciones que se le planteen.

Por otro lado, RAG (Retrieval-Augmented Generation) no cambia el modelo en sí, sino que le proporciona una vía para consultar una gran cantidad de información adicional, pero de manera selectiva. De este modo, el modelo es capaz de consultar datos adicionales, por ejemplo en documentos o API, generando respuestas con lo que ya sabe y la información que obtiene de las fuentes que puede consultar.

En resumen, mientras que fine-tuning cambia el modelo, con RAG podemos hacer que potencialmente su contexto sea mucho mayor, pudiendo acceder a todos los datos que necesitamos pero sin necesidad de entrenarlo de nuevo.

Análisis de costes y recursos de computación

El fine-tuning implica un coste elevado inicial, ya que el proceso de entrenamiento hace que se gasten muchos recursos de computación. RAG, en cambio, evita el coste de entrenamiento del modelo, pero introduce otros costes.

En el caso de fine-tuning  los datos ya estarán en el modelo y podrá utilizarlos de manera continua sin tener que alimentar el contexto para cada interacción.

En el caso de RAG tendremos un coste para convertir los datos (inicialmente en texto) en embeddings, que son datos en bases de datos vectoriales, que el modelo es capaz de procesar de manera muy rápida. Esos datos tendrán impacto también en el almacenamiento y el tiempo necesario para las consultas, ya que el modelo necesitará tiempo para recuperar de manera selectiva los datos que se necesitan cada vez.

Por tanto, ambos sistemas son viables. En uno los costes los tendremos más en el momento de entrenamiento y en otro tendremos un mayor coste por consulta. A corto plazo RAG será siempre ganador en términos de coste, aunque a largo plazo dependiendo del uso que vemos a la solución de Inteligencia Artificial los costes puedan llegar a igualarse o incluso mejorar si usamos fine-tuning.

Gestión del tiempo de actualización de los datos

Pero además de los costes hay otro detalle que tenemos que llevar en consideración y es el tiempo de actualización de los datos. Fine-tuning requiere repetir el proceso de entrenamiento cuando queremos que el modelo acceda a nuevos datos, lo cual puede ser lento y muy costoso.

Sin embargo, con RAG podemos incorporar información nueva de forma casi inmediata, simplemente actualizando la base de conocimiento y haciendo un proceso de convertir esos datos en bases de datos vectoriales, que no es muy costoso ni en tiempo ni en dinero. Por tanto, si los datos que vas a manejar cambian con frecuencia te interesa mucho más acudir a soluciones basadas en RAG.

Tasas de alucinación en entornos de producción

La Inteligencia Artificial está siempre sujeta a la alucinación de los modelos. Por supuesto, si el modelo presenta un fine-tuning correcto podemos reducir las alucinaciones. Pero siempre el riesgo está más patente.

Por su parte, los sistemas RAG tienden a reducir las alucinaciones de manera sensible, al basarse en información recuperada en cada interacción. Por supuesto, también depende de la calidad del sistema de recuperación, pero sí que potencialmente las alucinaciones se disminuyen mucho.

Criterios de arquitectura para elegir un enfoque híbrido combinando el ajuste fino y RAG

Como podrás imaginarte a veces la mejor solución es combinar ambos enfoques. Por un lado, utilizar fine-tuning para definir el estilo, tono y comportamiento del modelo, una única vez. Y aplicar RAG para proporcionar información actualizada y específica, que puedes manejar prácticamente en tiempo real.

Este enfoque permite aprovechar lo mejor de ambos mundos y suele dar lugar a soluciones más capaces de adaptarse a los objetivos del sistema con mayor flexibilidad a la hora de gestionar el conocimiento.

Casos de uso empresariales del fine-tuning de un modelo de IA

Seguro que al leer este artículo habrás podido comenzar a apreciar algunas aplicaciones y casos de uso que podrías realizar mediante la técnica de fine-tuning. Sea así o no, vamos a ver ahora algunos ejemplos en el contexto empresarial.

Desarrollo de agentes de atención al cliente adaptados a la jerga y políticas internas corporativas

Con un modelo LLM generalista puede implementar un agente de atención al cliente pero si quieres que esté adaptado a las necesidades y costumbres de la empresa, puedes utilizar fine-tuning para conseguirlo con unos resultados excelentes.

Gracias al nuevo entrenamiento del modelo tu asistente conversacional podrá conocer perfectamente las características de tu empresa y sus productos y servicios. Pero no solo eso, puedes conseguir que responda utilizando el tono, terminología y normas específicas dictadas durante el entrenamiento. Por ejemplo, podrías entrenarlo con históricos de tickets resueltos en tu departamento de atención al cliente, aprendiendo tanto las soluciones como el estilo de comunicación del equipo humano.

Automatización de la programación mediante el entrenamiento con estándares y repositorios de código propios

Con fine-tuning puedes conseguir que los modelos orientados a código se adapten perfectamente a las convenciones, patrones y arquitectura de un equipo de desarrollo, sin que tengas que repetir una y otra vez las mismas cosas.

Esto es ideal si tienes que generar código siguiendo estándares internos propios o si tienes que alinearte con unas tecnologías que no son las más frecuentes, incluso frameworks propios de la empresa que un modelo en particular no puede conocer.

Análisis masivo y estructuración de documentos legales, contratos y marcos regulatorios complejos

En el ámbito legal, el fine-tuning permite adaptar modelos para interpretar lenguaje propio de esta disciplina y comunicarse de esa misma manera, haciendo que los modelos sean mucho más útiles en tareas como la extracción de cláusulas, clasificación de documentos o identificación de riesgos.

Especialización en diagnóstico y redacción de informes médicos con terminología hiperespecífica

En el sector sanitario también puede beneficiarse del fine-tuning, ya que su terminología también es extremadamente específica y los modelos generalmente no la conocen con el nivel de detalle que necesitas para trabajar con ellos. Podrías entrenar el modelo para que realice un uso preciso de vocabulario médico o que genere informes tal como tú necesitas.

Generación automatizada de contenido de marketing digital alineado estrictamente con la voz de la marca

El fine-tuning también puede servir cuando quieres que el contenido y el tono de las campañas sea estrictamente el que tu marca requiere. Esto lo puedes aplicar a muchas áreas como los copys de los sitios web, el contenido para las redes sociales o las campañas por email.

Riesgos técnicos y cómo evitar los errores más comunes en el fine-tuning

El fine-tuning no es un proceso sencillo. En realidad se requieren conocimientos técnicos amplios para realizarlo de manera adecuada, por lo que es necesario tener en cuenta algunas consideraciones para evitar errores comunes.

El problema del Olvido Catastrófico (Catastrophic Forgetting) y cómo proteger las capacidades base de la IA

El olvido catastrófico se refiere a la pérdida del conocimiento por parte del modelo en el proceso de re-entrenamiento. Esto puede ocurrir cuando intentas realizar ajustes finos agresivos o con datasets muy sesgados. Existen técnicas para mitigarlo como el uso de tasas de aprendizaje bajas o la mezcla de datos generales con datos específicos. También suele ayudar bastante la aplicación de técnicas como PEFT en lugar de fine-tuning completo.

Sobreajuste (Overfitting)

El sobreajuste es un problema particular que ocurre cuando el modelo aprende demasiado bien tu dataset, memorizando los datos que le has entregado en lugar de encontrar las guías generales que hay detrás de ellos.   Cuando entrenas un modelo de IA quieres que, a partir de ejemplos, aprenda reglas o patrones que luego pueda aplicar a otros datos nuevos. Pero a veces no ocurre eso y el modelo lo que hace es memorizar los ejemplos sin ver los patrones. De este modo, cuando le pasas problemas nuevos baja mucho su rendimiento porque simplemente recuerda datos concretos pero no los conceptos que hay tras de ellos.

Para mitigar este problema tienes que separar claramente entrenamiento, validación y test, y monitorizar siempre métricas en validación. Cuando la validación ya no progresa es mejor parar el entrenamiento. También conviene mantener el control del número de epochs y evitar tasas de aprendizaje agresivas que empujen al modelo a pegarse demasiado a los datos.

Fuga de datos (Data Leakage) entre los conjuntos de entrenamiento, validación y prueba

La fuga de datos ocurre cuando información del conjunto de prueba se filtra en el entrenamiento, lo que lleva a que se invaliden las métricas de evaluación. Es por ello que se deben separar rigurosamente los datasets y evitar duplicados o datos derivados entre conjuntos.

Alineación y seguridad mediante DPO (Direct Preference Optimization)

DPO es una técnica de entrenamiento que permite alinear modelos con preferencias humanas, sin necesidad de un modelo de recompensa explícito. Para ello lo que hace es comparar pares de respuestas y optimizar el modelo para preferir aquellas consideradas mejores. Con eso se consigue una mayor estabilidad en el entrenamiento y una menor complejidad, a la vez que se optimiza la seguridad y el control del comportamiento.

Preguntas frecuentes sobre el ajuste fino de IA

Acabaremos con algunas preguntas que probablemente te estés haciendo en estos momentos.

¿Cuánto cuesta realmente hacer el fine-tuning de un LLM en la actualidad?

Esa es una buena pregunta y, como muchas veces pasa, la respuesta es «depende». Esto es porque el coste es muy variable en función de la técnica utilizada y el tamaño del modelo. Pero, para ser un poco más concretos, si utilizas técnicas como LoRA o QLoRA es posible entrenar modelos grandes en GPU de consumo con costes relativamente bajos (tan solo decenas o cientos de euros). Ahora bien, si estás haciendo un fine-tuning más pesado en un modelo muy grande el presupuesto se puede disparar a miles de euros.

¿Puede el fine-tuning erradicar por completo las alucinaciones de una IA?

¡Que va! En realidad esto no se puede erradicar del todo, ya que es algo inherente a los modelos generativos. Para mitigar esta situación  puedes usar otras técnicas como RAG, que aporta un contexto verificable. También puedes entrenarlo para que realice una validación adicional de las respuestas y ampliar restricciones en generación.

¿Cuál es la cantidad mínima de datos o ejemplos necesarios para notar resultados?

No hay una cantidad mínima de datos que debas utilizar para hacer fine-tuning. Todo depende de lo que necesites. De todos modos, por mojarnos un poco, con unos cientos de ejemplos bien curados ya se pueden observar mejoras en el entrenamiento de los modelos. Por supuesto, si tienes miles de ejemplos los resultados mejorarán. Pero en todo caso conviene mencionar que la calidad de los datos es más importante que la cantidad.

Fernando Fuentes

Productos relacionados: