Con la llegada de la era de los modelos de lenguaje gigantes (LLM), la demanda de 'fine-tuning' con mis propios datos ha crecido explosivamente. Sin embargo, entrenar completamente un modelo con miles de millones de parámetros requiere costes y recursos computacionales inmensos.
La tecnología clave que ha surgido para resolver este problema es LoRA (Adaptación de Bajo Rango). Hoy, explicaré qué es LoRA y por qué es eficiente, junto con sus principios técnicos.
1. ¿Qué es LoRA (Adaptación de Bajo Rango)?
LoRA es una técnica propuesta por un equipo de investigación de Microsoft en 2021, que en lugar de actualizar todos los parámetros de un modelo grande, aprende solo dos pequeñas matrices de 'bajo rango' para adaptar el modelo.
Mientras que el 'Full Fine-tuning' requería ajustar todos los pesos del modelo, se puede entender que LoRA congela (Freeze) los pesos existentes y solo aprende pequeños cambios en las partes que realmente necesitan modificación.
En términos de analogía:
Cuando necesitas modificar el contenido de un grueso libro de texto (modelo base), no necesitas borrar todas las páginas y reescribir, sino que solo escribes las modificaciones importantes en un post-it (adaptador LoRA) y lo pegas en el libro.
2. Principios de funcionamiento (Profundización técnica)
El núcleo de LoRA se encuentra en la descomposición de matrices (Matrix Decomposition).
Cuando llamamos $W$ a la matriz de pesos de un modelo de deep learning, el fine-tuning es el proceso de aprender el cambio de pesos $\Delta W$.
$$W_{nuevo} = W + \Delta W$$
LoRA no aprende el $\Delta W$ como una matriz extremadamente grande, sino que lo expresa como el producto de dos pequeñas matrices de bajo rango $A$ y $B$.
$$\Delta W = B \times A$$
Si la dimensión original es $d$ y el rango es $r$, en lugar de aprender una enorme matriz de $d \times d$, solo se necesita aprender matrices mucho más pequeñas de $d \times r$ y $r \times d$. (Usualmente, $r$ es un número mucho más pequeño que $d$. Ej: $r=8, 16$, etc.)
Como resultado, el número de parámetros que se deben aprender se puede reducir hasta un nivel de 1/10,000 en comparación con el método original.
3. Principales ventajas de LoRA
1) Eficiencia abrumadora en memoria
No es necesario cargar todos los parámetros en memoria, por lo que ahora es posible realizar fine-tuning de modelos grandes en tarjetas gráficas de consumidor (como RTX 3090, 4090) en lugar de costosas GPUs A100. Esto reduce radicalmente el uso de VRAM.
2) Ahorro de espacio de almacenamiento
Un modelo con Full Fine-tuning puede ocupar decenas de GB, mientras que los archivos de pesos (adaptadores) aprendidos con LoRA suelen estar en el rango de varios MB a cientos de MB. Por lo tanto, se pueden operar diferentes servicios simplemente intercambiando varias versiones del adaptador LoRA sobre un modelo base.
3) Mantenimiento del rendimiento
A pesar de que la cantidad de parámetros a aprender se reduce drásticamente, el rendimiento se mantiene casi igual o comparable al de un fine-tuning completo (Full Fine-tuning).
4) Sin latencia en la inferencia (No Inference Latency)
Una vez completado el aprendizaje, al sumar el valor calculado de $B \times A$ al peso original $W$ (Merge), se estructura de manera idéntica al modelo original, por lo que no se ralentiza la velocidad de inferencia.
4. Ejemplos de aplicación real
Supongamos que un usuario quiere crear un chatbot que hable en 'jerga pirata'.
-
Método convencional: Entrenar todo Llama 3 (modelo de 8B) con datos piratas. -> Generando un resultado de más de 16GB, con un tiempo de entrenamiento prolongado.
-
Método LoRA: Fijar los pesos de Llama 3. Solo aprender el adaptador de LoRA con datos piratas. -> Generar un archivo de adaptador de aproximadamente 50MB.
-
Despliegue: Solo cargar el modelo original Llama 3 + el archivo de 50MB para proporcionar el servicio.
5. Conclusión
LoRA es una tecnología que ha reducido drásticamente la barrera de entrada para los modelos de lenguaje gigantes. Ahora, desarrolladores individuales o pequeñas y medianas empresas pueden ajustar modelos de IA de alto rendimiento utilizando sus propios datos especializados.
Si estás considerando el desarrollo eficiente de modelos de IA, es razonable priorizar técnicas como LoRA en lugar de un aprendizaje completo sin condiciones.

No hay comentarios.