¿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 grandes a usos específicos agregando 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 documento, demostraron que los modelos reducidos y reentrenados con LoRA superaron a los modelos base en una variedad de tareas de puntos de referencia. El rendimiento del modelo podría mejorarse sin necesidad de un ajuste completo y mediante el uso de un número significativamente menor de parámetros del modelo entrenables.

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados 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! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 grandes y complejos, como los que se utilizan para los modelos de lenguaje grandes (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 que se completa este proceso, el modelo puede ser poderoso y preciso en general, pero no necesariamente está ajustado para llevar a cabo tareas específicas.

Lograr 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 GPU en aproximadamente dos tercios.

LoRA no es el único método eficiente de ajuste. Una variante de LoRA es la cuantificación LoRA (QLoRA), una técnica de ajuste 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 pequeño el tamaño del modelo y, al mismo tiempo, garantiza que el modelo siga teniendo un alto rendimiento y precisión.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de 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 revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Cómo funciona LoRA

En lugar de volver a entrenar todo el modelo, LoRA congela las ponderaciones 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 rango bajo, 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 los resultados 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 ajuste 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 previamente entrenadas mediante el uso de matrices más pequeñas de rango r. Una vez que se completa 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 previamente entrenado.

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

LoRA se basa en el entendimiento de que los modelos grandes poseen inherentemente una estructura de baja dimensión. Al aprovechar matrices más pequeñas, que se denominan matrices de rango bajo, LoRA adapta estos modelos de manera efectiva. Este método se centra en el concepto de que los cambios significativos en el modelo se pueden representar 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 las computadoras los procesen más rápido.

Una matriz de rango alto se puede descomponer en dos matrices de rango bajo, 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 agrega matrices de rango bajo al modelo de machine learning original congelado. Las matrices de rango bajo se actualizan a través del descenso del gradiente durante el ajuste, 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 agrega a las ponderaciones del modelo base para obtener el modelo final ajustado. Este proceso altera las salidas que produce el modelo con una potencia informática 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 el requisito de memoria de GPU para el proceso de entrenamiento, que es otro desafío importante cuando se trata de ajustar o entrenar modelos grandes.

Para implementar el ajuste de LoRA con HuggingFace mediante Python y PyTorch, los desarrolladores pueden usar la biblioteca de ajuste de parámetros eficientes (PEFT) para inyectar los adaptadores LoRA en el modelo y usarlos 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 de 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.

Beneficios de LoRA

Una de las ventajas clave de LoRA es que un modelo base se puede compartir y utilizar para crear muchos módulos pequeños de LoRA para nuevas tareas. El modelo compartido está congelado, lo que permite a los usuarios cambiar de tarea reemplazando las matrices de ponderación de LoRA. En lugar de necesitar dos modelos diferentes, se puede utilizar un solo modelo en diferentes tareas y, al mismo tiempo, conservar las ganancias de rendimiento del ajuste.

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 requiere optimizar solo las matrices de rango bajo mucho más pequeñas.

El diseño lineal de LoRA permite a los científicos de datos fusionar las matrices entrenables con las ponderaciones del modelo preentrenadas congeladas cuando se despliega, 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

Si bien LoRA proporciona una reducción significativa en la cantidad 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. Debido a 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 aprendizaje profundo 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, robustez 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 en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

Reinvente los flujos de trabajo y las operaciones críticas mediante la incorporación de IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Conozca los servicios de IA
Dé el siguiente paso

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

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

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