Modelos y plataformas de IA
LoRA, QLoRA y QA-LoRA: Adaptabilidad Eficiente en Modelos de Lenguaje Grande a travÃĐs de la FactorizaciÃģn de Matrices de Bajo Rango
Los Modelos de Lenguaje Grande (LLM) han creado un nicho Único, ofreciendo capacidades sin precedentes para entender y generar texto similar al humano. El poder de los LLM se puede rastrear hasta su enorme tamaÃąo, que a menudo tiene billones de parÃĄmetros. Mientras que esta escala grande alimenta su rendimiento, tambiÃĐn genera desafÃos, especialmente cuando se trata de adaptar el modelo para tareas o dominios especÃficos. Los mÃĐtodos convencionales de gestiÃģn de LLM, como el ajuste fino de todos los parÃĄmetros, presentan una carga computacional y financiera pesada, lo que supone una barrera significativa para su adopciÃģn generalizada en aplicaciones del mundo real.
En un artÃculo anterior, exploramos el ajuste fino de los Modelos de Lenguaje Grande (LLM) para adaptarlos a requisitos especÃficos. Analizamos varias metodologÃas de ajuste fino, como el Ajuste Fino Basado en Instrucciones, el Ajuste Fino de Una Tarea y el Ajuste Fino Eficiente de ParÃĄmetros (PEFT), cada una con su enfoque Único para optimizar los LLM para tareas distintas. Central a la discusiÃģn fue la arquitectura del transformador, la columna vertebral de los LLM, y los desafÃos que plantean las demandas computacionales y de memoria de manejar una gran cantidad de parÃĄmetros durante el ajuste fino.
La imagen anterior representa la escala de varios modelos de lenguaje grande, ordenados por su nÚmero de parÃĄmetros. Notablemente: PaLM, BLOOM, etc.
Este aÃąo, ha habido avances que han llevado a modelos aÚn mÃĄs grandes. Sin embargo, ajustar estos modelos gigantes y de cÃģdigo abierto en sistemas estÃĄndar es inviable sin tÃĐcnicas de optimizaciÃģn especializadas.
Entonces, entra en escena la AdaptaciÃģn de Bajo Rango (LoRA) que fue introducida por Microsoft (MSFT ) en este documento, con el objetivo de mitigar estos desafÃos y hacer que los LLM sean mÃĄs accesibles y adaptables.
La esencia de LoRA radica en su enfoque hacia la adaptaciÃģn del modelo sin profundizar en las complejidades de volver a entrenar todo el modelo. A diferencia del ajuste fino tradicional, donde cada parÃĄmetro estÃĄ sujeto a cambios, LoRA adopta una ruta mÃĄs inteligente. Congela los pesos del modelo preentrenado e introduce matrices de descomposiciÃģn de rango trainable en cada capa de la arquitectura del Transformador. Este enfoque reduce drÃĄsticamente la cantidad de parÃĄmetros trainable, asegurando un proceso de adaptaciÃģn mÃĄs eficiente.
La EvoluciÃģn de las Estrategias de Ajuste de LLM
Al reflexionar sobre el viaje del ajuste de LLM, se puede identificar varias estrategias empleadas por los practicantes a lo largo de los aÃąos. Inicialmente, el enfoque estaba en el ajuste fino de los modelos preentrenados, una estrategia que implica una alteraciÃģn completa de los parÃĄmetros del modelo para adaptarse a la tarea especÃfica en cuestiÃģn. Sin embargo, a medida que los modelos crecieron en tamaÃąo y complejidad, tambiÃĐn lo hicieron las demandas computacionales de este enfoque.
La siguiente estrategia que ganÃģ popularidad fue el ajuste fino de subconjuntos, una versiÃģn mÃĄs restringida de su predecesor. AquÃ, solo un subconjunto de los parÃĄmetros del modelo se ajusta, reduciendo la carga computacional en cierta medida. A pesar de sus mÃĐritos, el ajuste fino de subconjuntos todavÃa no pudo mantener el ritmo de crecimiento en el tamaÃąo de los LLM.
A medida que los practicantes se aventuraron a explorar vÃas mÃĄs eficientes, el ajuste fino completo emergiÃģ como un enfoque riguroso pero gratificante.
IntroducciÃģn a LoRA
El rango de una matriz nos da una visiÃģn de las dimensiones creadas por sus columnas, determinado por el nÚmero de filas o columnas Únicas que tiene.
- Matriz de Rango Completo: Su rango coincide con el nÚmero menor entre sus filas o columnas.
- Matriz de Bajo Rango: Con un rango notablemente menor que ambos su cuenta de filas y columnas, captura menos caracterÃsticas.
Ahora, los grandes modelos captan una comprensiÃģn amplia de su dominio, como el lenguaje en los modelos de lenguaje. Pero, ajustarlos para tareas especÃficas a menudo solo necesita resaltar una pequeÃąa parte de estas comprensiones. Aquà es donde LoRA brilla. Sugiere que la matriz que muestra estos ajustes de pesos puede ser una matriz de bajo rango, capturando asà menos caracterÃsticas.
LoRA limita inteligentemente el rango de esta matriz de actualizaciÃģn dividiÃĐndola en dos matrices de rango mÃĄs pequeÃąas. AsÃ, en lugar de alterar toda la matriz de pesos, solo cambia una parte de ella, haciendo que la tarea de ajuste fino sea mÃĄs eficiente.
Aplicando LoRA a los Transformadores
LoRA ayuda a minimizar la carga de entrenamiento en las redes neuronales centrÃĄndose en matrices de pesos especÃficas. Bajo la arquitectura del Transformador, ciertas matrices de pesos estÃĄn vinculadas con el mecanismo de autoatenciÃģn, a saber, Wq, Wk, Wv y Wo, ademÃĄs de dos mÃĄs en el mÃģdulo de PerceptrÃģn Multicapa (MLP).
Â
ExplicaciÃģn MatemÃĄtica detrÃĄs de LoRA
Desglosemos las matemÃĄticas detrÃĄs de LoRA:
- Matriz de Pesos Preentrenada :
- Comienza con una matriz de pesos preentrenada de dimensiones . Esto significa que la matriz tiene filas y columnas.
- DescomposiciÃģn de Bajo Rango:
- En lugar de actualizar directamente la matriz completa , que puede ser computacionalmente costoso, el mÃĐtodo propone un enfoque de descomposiciÃģn de bajo rango.
- La actualizaciÃģn a puede ser representada como el producto de dos matrices: y .
- tiene dimensiones
- tiene dimensiones
- El punto clave aquà es que el rango es mucho menor que ambos y , lo que permite una representaciÃģn mÃĄs computacionalmente eficiente.
- Entrenamiento:
- Durante el proceso de entrenamiento, permanece sin cambios. Esto se refiere a âcongelarâ los pesos.
- Por otro lado, y son los parÃĄmetros trainable. Esto significa que, durante el entrenamiento, se realizan ajustes a las matrices y para mejorar el rendimiento del modelo.
- MultiplicaciÃģn y AdiciÃģn:
- Ambas y la actualizaciÃģn (que es el producto de y ) se multiplican por la misma entrada (denotada como ).
- Las salidas de estas multiplicaciones se suman.
- Este proceso se resume en la ecuaciÃģn: AquÃ, representa la salida final despuÃĐs de aplicar las actualizaciones a la entrada .
En resumen, este mÃĐtodo permite una forma mÃĄs eficiente de actualizar una gran matriz de pesos representando las actualizaciones mediante una descomposiciÃģn de bajo rango, lo que puede ser beneficioso en tÃĐrminos de eficiencia computacional y uso de memoria.
InicializaciÃģn y Escalado:
Cuando se entrenan modelos, cÃģmo se inicializan los parÃĄmetros puede afectar significativamente la eficiencia y efectividad del proceso de aprendizaje. En el contexto de nuestra actualizaciÃģn de la matriz de pesos utilizando y :
- InicializaciÃģn de las Matrices y :
- Matriz : Esta matriz se inicializa con valores Gaussianos aleatorios, tambiÃĐn conocidos como distribuciÃģn normal. La razÃģn detrÃĄs del uso de la inicializaciÃģn Gaussiana es romper la simetrÃa: diferentes neuronas en la misma capa aprenderÃĄn diferentes caracterÃsticas cuando tengan pesos iniciales diferentes.
- Matriz : Esta matriz se inicializa con ceros. Al hacerlo, la actualizaciÃģn comienza como cero al comienzo del entrenamiento. Esto asegura que no haya un cambio abrupto en el comportamiento del modelo al principio, permitiendo que el modelo se adapte gradualmente a medida que aprende valores adecuados durante el entrenamiento.
- Escalado de la Salida de :
- DespuÃĐs de computar la actualizaciÃģn , su salida se escala por un factor de donde es una constante. Al escalar, se controla la magnitud de las actualizaciones.
- El escalado es especialmente crucial cuando el rango cambia. Por ejemplo, si decide aumentar el rango para mayor precisiÃģn (a costa de la computaciÃģn), el escalado asegura que no necesite ajustar muchos otros hiperparÃĄmetros en el proceso. Proporciona un nivel de estabilidad al modelo.
Impacto PrÃĄctico de LoRA
LoRA ha demostrado su potencial para ajustar los LLM a estilos artÃsticos especÃficos de manera eficiente por parte de la comunidad de IA. Esto se destacÃģ en la adaptaciÃģn de un modelo para imitar el estilo artÃstico de Greg Rutkowski.
Como se destacÃģ en el documento con GPT-3 175B como ejemplo. Tener instancias individuales de modelos ajustados con 175B de parÃĄmetros cada uno es bastante costoso. Pero, con LoRA, los parÃĄmetros trainable disminuyen 10,000 veces, y el uso de memoria de la GPU se reduce a un tercio.
La metodologÃa LoRA no solo representa un avance significativo hacia hacer que los LLM sean mÃĄs accesibles, sino que tambiÃĐn subraya el potencial de cerrar la brecha entre los avances teÃģricos y las aplicaciones prÃĄcticas en el dominio de la IA. Al aliviar los obstÃĄculos computacionales y fomentar un proceso de adaptaciÃģn de modelos mÃĄs eficiente, LoRA estÃĄ en posiciÃģn de desempeÃąar un papel fundamental en la adopciÃģn y despliegue mÃĄs amplio de los LLM en escenarios del mundo real.
QLoRA (Cuantizado)
Mientras que LoRA es un juego cambiadro en la reducciÃģn de las necesidades de almacenamiento, todavÃa requiere una GPU potente para cargar el modelo para el entrenamiento. Aquà es donde QLoRA, o LoRA Cuantizado, entra en escena, combinando LoRA con la CuantizaciÃģn para un enfoque mÃĄs inteligente.
Normalmente, los parÃĄmetros de peso se almacenan en un formato de 32 bits (FP32), lo que significa que cada elemento en la matriz ocupa 32 bits de espacio. Imagina si pudiÃĐramos comprimir la misma informaciÃģn en solo 8 o incluso 4 bits. Esa es la idea central detrÃĄs de QLoRA. La cuantizaciÃģn se refiere al proceso de mapear valores continuos e infinitos a un conjunto mÃĄs pequeÃąo de valores finitos y discretos. En el contexto de los LLM, se refiere al proceso de convertir los pesos del modelo de tipos de datos de mayor precisiÃģn a tipos de menor precisiÃģn.
Aquà estÃĄ una explicaciÃģn mÃĄs simple de QLoRA:
- CuantizaciÃģn Inicial: Primero, el Modelo de Lenguaje Grande (LLM) se cuantiza a 4 bits, reduciendo significativamente la huella de memoria.
- Entrenamiento LoRA: Luego, se realiza el entrenamiento LoRA, pero en la precisiÃģn estÃĄndar de 32 bits (FP32).
Ahora, es posible que se pregunte, Âŋpor quÃĐ volver a 32 bits para el entrenamiento despuÃĐs de reducir a 4 bits? Bueno, para entrenar de manera efectiva los adaptadores LoRA en FP32, los pesos del modelo tambiÃĐn deben revertir a FP32. Este cambio de ida y vuelta se realiza de manera inteligente y paso a paso para evitar abrumar la memoria de la GPU.
LoRA encuentra su aplicaciÃģn prÃĄctica en la biblioteca de Ajuste Fino Eficiente de ParÃĄmetros (PEFT) de Hugging Face, simplificando su utilizaciÃģn. Para aquellos que buscan utilizar QLoRA, estÃĄ disponible a travÃĐs de una combinaciÃģn de las bibliotecas bitsandbytes y PEFT. AdemÃĄs, la biblioteca de Aprendizaje de Refuerzo de Transformadores (TRL) de HuggingFace facilita el ajuste fino supervisado con soporte integrado para LoRA. Juntas, estas tres bibliotecas proporcionan la herramienta esencial para ajustar un modelo preentrenado seleccionado, permitiendo la generaciÃģn de descripciones de productos persuasivas y coherentes cuando se proporcionan instrucciones de atributos especÃficas.
DespuÃĐs del ajuste fino de QLoRA, los pesos deben revertir a un formato de alta precisiÃģn, lo que puede llevar a una pÃĐrdida de precisiÃģn y carece de optimizaciÃģn para acelerar el proceso.
Una soluciÃģn propuesta es agrupar la matriz de pesos en segmentos mÃĄs pequeÃąos y aplicar la cuantizaciÃģn y la adaptaciÃģn de bajo rango a cada grupo individualmente. Un nuevo mÃĐtodo, llamado QA-LoRA, intenta combinar los beneficios de la cuantizaciÃģn y la adaptaciÃģn de bajo rango mientras mantiene el proceso eficiente y el modelo efectivo para las tareas deseadas.
ConclusiÃģn
En este artÃculo, tocamos los desafÃos que plantean sus enormes dimensiones de parÃĄmetros. Exploramos prÃĄcticas de ajuste fino tradicionales y sus demandas computacionales y financieras asociadas. La esencia de LoRA radica en su capacidad para modificar modelos preentrenados sin volver a entrenarlos por completo, reduciendo asà los parÃĄmetros trainable y haciendo que el proceso de adaptaciÃģn sea mÃĄs rentable.
TambiÃĐn exploramos brevemente QLoRA (LoRA Cuantizado), una combinaciÃģn de LoRA y CuantizaciÃģn que reduce la huella de memoria del modelo mientras retiene la precisiÃģn esencial para el entrenamiento. Con estas tÃĐcnicas avanzadas, los practicantes ahora cuentan con bibliotecas robustas que facilitan la adopciÃģn y despliegue mÃĄs sencillo de los LLM en una amplia gama de escenarios del mundo real.
Estas estrategias estÃĄn diseÃąadas para equilibrar la capacidad de hacer que los LLM sean adaptables para tareas especÃficas y asegurar que los procesos de ajuste fino y despliegue no sean demasiado exigentes en tÃĐrminos de cÃĄlculo y recursos de almacenamiento.




















