¿Qué es LoRA (adaptación de bajo rango)?

Autor

Joshua Noble

Data Scientist

¿Qué es LoRA?

La adaptación de bajo rango (LoRA) es una técnica utilizada para adaptar los modelos de machine learning a nuevos contextos. Puede adaptar modelos de gran tamaño a usos específicos añadiendo piezas ligeras al modelo original en lugar de cambiar todo el modelo. Un científico de datos puede ampliar rápidamente las formas en que se puede utilizar un modelo en lugar de exigirle que construya un modelo completamente nuevo.

La técnica fue publicada originalmente por Edward Hu, Yelong Shen y colaboradores en su artículo LoRA: Low-Rank Adaptation Of Large Language Models 1. En el artículo, demostraron que los modelos reducidos y reentrenados utilizando LoRA superaron a los modelos base en una variedad de tareas de referencia. El rendimiento del modelo podría mejorarse sin necesidad de un fine-tuning completo y utilizando un número significativamente menor de parámetros del modelo entrenables.

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Qué hace LoRA?

Los modelos de machine learning de gran tamaño y complejos, como los que se utilizan para los modelos de lenguaje de gran tamaño (LLM) como ChatGPT, requieren mucho tiempo y numerosos recursos para configurarse. Pueden tener billones de parámetros que se establecen en valores específicos. Una vez completado este proceso, el modelo puede ser potente y preciso en general, pero no necesariamente está afinado para llevar a cabo tareas específicas.

Conseguir que un modelo funcione en contextos específicos puede requerir una gran cantidad de reentrenamiento, cambiando todos sus parámetros. Con la cantidad de parámetros en tales modelos, este reentrenamiento es costoso y requiere mucho tiempo. LoRA proporciona una forma rápida de adaptar el modelo sin volver a entrenarlo.

Por ejemplo, un ajuste completo del modelo GPT-3 requiere entrenar 175 mil millones de parámetros debido al tamaño de su conjunto de datos de entrenamiento. Con LoRA, los parámetros entrenables para GPT-3 se pueden reducir a aproximadamente 18 millones de parámetros, lo que reduce los requisitos de memoria de la GPU en aproximadamente dos tercios.

LoRA no es el único método eficiente de ajuste fino. Una variante de LoRA es la cuantificación LoRA (QLoRA), una técnica de fine-tuning que combina una técnica informática de alta precisión con un método de almacenamiento de baja precisión. Esto ayuda a mantener el tamaño del modelo pequeño y, al mismo tiempo, garantiza que el modelo siga siendo muy eficaz y preciso.

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Cómo funciona LoRA

En lugar de volver a entrenar todo el modelo, LoRA congela los pesos y parámetros originales del modelo tal como están. Luego, además de este modelo original, agrega una adición ligera llamada matriz de bajo rango, que luego se aplica a nuevas entradas para obtener resultados específicos para el contexto. La matriz de rango bajo se ajusta a las ponderaciones del modelo original para que las salidas coincidan con el caso de uso deseado.

LoRA aprovecha el concepto de matrices de rango inferior para hacer que el proceso de entrenamiento del modelo sea extremadamente eficiente y rápido. Tradicionalmente, el fine-tuning de los LLM requiere ajustar todo el modelo. LoRA se centra en modificar un subconjunto más pequeño de parámetros (matrices de rango inferior) para reducir la sobrecarga computacional y de memoria.

El diagrama muestra cómo LoRA actualiza las matrices A y B para realizar un seguimiento de los cambios en las ponderaciones preentrenadas mediante el uso de matrices más pequeñas de rango r. Una vez completado el entrenamiento de LoRA, las ponderaciones más pequeñas se fusionan en una nueva matriz de ponderaciones, sin necesidad de modificar las ponderaciones originales del modelo preentrenado.

Una imagen que muestra cómo la adaptación de bajo rango reduce el tamaño del modelo

LoRA se basa en el entendimiento de que los modelos de gran tamaño poseen inherentemente una estructura de baja dimensión. Al aprovechar matrices más pequeñas, que se denominan matrices de bajo rango, LoRA adapta estos modelos de manera efectiva. Este método se centra en el concepto básico de que los cambios significativos en el modelo pueden representarse con menos parámetros, lo que hace que el proceso de adaptación sea más eficiente.

Las matrices son una parte importante del funcionamiento de los modelos de machine learning y las redes neuronales. Las matrices de rango bajo son más pequeñas y tienen muchos menos valores que las matrices más grandes o de rango superior. No ocupan mucha memoria y requieren menos pasos para sumar o multiplicar, lo que hace que los ordenadores los procesen más rápido.

Una matriz de alto rango se puede descomponer en dos matrices de bajo rango, una matriz de 4 x 4 se puede descomponer en una matriz de 4 x 1 y una matriz de 1 x 4.

Una imagen que muestra cómo una matriz de 4 por 4 se puede reducir a una matriz de 1 por 4 y 4 por 1

LoRA añade matrices de bajo rango al modelo de machine learning original congelado. Las matrices de bajo rango se actualizan mediante el descenso del gradiente durante el fine-tuning, sin modificar las ponderaciones del modelo base. Estas matrices contienen nuevas ponderaciones para aplicar al modelo al generar resultados. La matriz de cambio multiplicada se añade a las ponderaciones del modelo base para obtener el modelo final afinado. Este proceso altera las salidas que produce el modelo con una potencia de cálculo y un tiempo de entrenamiento mínimos.

En esencia, LoRA mantiene el modelo original sin cambios y agrega partes pequeñas y cambiables a cada capa del modelo. Esto reduce significativamente los parámetros entrenables del modelo y los requisitos de memoria de la GPU para el proceso de entrenamiento, lo que supone otro reto importante a la hora de ajustar o entrenar modelos grandes.

Para implementar el fine-tuning de LoRA con HuggingFace utilizando Python y PyTorch, los desarrolladores pueden utilizar la biblioteca de fine-tuning de parámetros eficientes (PEFT) para inyectar los adaptadores LoRA en el modelo y utilizarlos como matrices de actualización. Esta biblioteca está disponible gratuitamente a través de HuggingFace o GitHub. Esta biblioteca proporciona formas de configurar los parámetros LoRA para su modelo. Algunos de los parámetros más utilizados son:

r: el rango de las matrices de actualización, expresado en int. La descomposición de rango inferior da como resultado matrices de actualización más pequeñas con menos parámetros entrenables.

target_modules: los módulos (por ejemplo, bloques de atención) para aplicar las matrices de actualización de LoRA.

lora_alpha: factor de escala LoRA.

Ventajas de LoRA

Una de las principales ventajas de LoRA es que un modelo base puede compartirse y utilizarse para crear muchos módulos LoRA pequeños para nuevas tareas. El modelo compartido está congelado, lo que permite a los usuarios cambiar de tarea reemplazando las matrices de peso de LoRA. En lugar de necesitar dos modelos diferentes, se puede utilizar un único modelo en diferentes tareas y, al mismo tiempo, conservar las ganancias de rendimiento del fine-tuning.

LoRA hace que el entrenamiento sea más eficiente y reduce la barrera de entrada del hardware porque los usuarios no necesitan calcular los gradientes ni mantener los estados del optimizador para la mayoría de los parámetros. En cambio, el proceso solo requiere optimizar las matrices de rango bajo, que son mucho más pequeñas.

El diseño lineal de LoRA permite a los científicos de datos fusionar las matrices entrenables con los pesos de modelo preentrenados congelados cuando se implementa, sin introducir latencia de inferencia en comparación con un modelo totalmente ajustado por construcción.

LoRA se puede combinar con otras técnicas para mejorar el rendimiento del modelo, como el ajuste de prefijos, lo que lo hace flexible.

Compensaciones

Aunque LoRA proporciona una reducción significativa en el número de parámetros entrenables, también hay una compensación. El proceso crea pérdida de información durante la descomposición de la matriz. Dado que LoRA reduce la matriz de peso completo en componentes más pequeños, se pueden perder algunos detalles en el proceso. Esto es comparable al sobreajuste del modelo. Sin embargo, en el caso de los LLM, la pérdida suele ser mínima porque los modelos de deep learning están muy sobreparametrizados, lo que significa que contienen más parámetros de los necesarios para la tarea. "Sobreparametrizado" significa que estos modelos suelen ser más grandes de lo que necesitan para los datos de entrenamiento. No todos los parámetros son estrictamente importantes. Hay redundancia, solidez y resiliencia dentro de los parámetros. Eliminar esta resiliencia puede hacer que los modelos sean menos precisos, por lo que el rango de las matrices de actualización se puede ajustar como parte del proceso LoRA.

Soluciones relacionadas
Modelos fundacionales

Explore la biblioteca de modelos fundacionales de IBM en la cartera de watsonx para escalar la IA generativa para su negocio con confianza.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
De el siguiente paso

Explore la biblioteca de modelos fundacionales de IBM en la cartera de IBM watsonx para escalar la IA generativa para su negocio con confianza.

Descubra watsonx.ai Explore los modelos de IA de IBM Granite
Notas a pie de página

1. Hu, Edward, et al. LoRA: Low-Rank Adaptation of Large Language Models. 2021.