Adaptación de bajo rango ( LoRA ) ajuste fino
El ajuste fino de adaptación de bajo rango ( LoRA ) adapta un modelo base para una tarea cambiando los pesos de un subconjunto representativo de los parámetros del modelo, llamados adaptadores de bajo rango, en lugar de los pesos del modelo base durante el ajuste. En el momento de la inferencia, las ponderaciones de los adaptadores ajustados se añaden a las ponderaciones del modelo base para generar una salida ajustada a una tarea.
Funcionamiento de la adaptación de bajo rango ( LoRA )
La adaptación de bajo rango ( LoRA ) es una técnica de ajuste fino eficiente de parámetros (PEFT) que añade un subconjunto de parámetros al modelo base congelado y actualiza el subconjunto durante el experimento de ajuste, sin modificar los parámetros del modelo base. Cuando se infiere el modelo base ajustado, las nuevas ponderaciones de los parámetros del subconjunto se añaden a las ponderaciones de los parámetros del modelo base para generar un resultado personalizado para una tarea.
La creación del subconjunto de parámetros es un proceso matemático. Recuerde que la red neuronal de un modelo de cimentación se compone de capas, cada una con una compleja matriz de parámetros. Estos parámetros tienen valores de ponderación que se fijan cuando se entrena inicialmente el modelo de cimentación. El subconjunto de parámetros que se utilizan para el ajuste de LoRA se obtiene aplicando la descomposición de rangos a las ponderaciones del modelo base de fundamentos. El rango de una matriz indica el número de vectores de la matriz que son linealmente independientes entre sí. La descomposición de rangos, también conocida como descomposición matricial, es un método matemático que utiliza esta información de rango para representar la matriz original en dos matrices más pequeñas que, al multiplicarse, forman una matriz del mismo tamaño que la matriz original. Con este método, las dos matrices más pequeñas capturan conjuntamente patrones y relaciones clave de la matriz mayor, pero con menos parámetros. Las matrices más pequeñas producidas se denominan matrices de bajo rango o adaptadores de bajo rango.
Durante un experimento de ajuste de LoRA, se ajustan los valores de peso de los parámetros del subconjunto, los adaptadores de bajo rango. Como los adaptadores tienen menos parámetros, el experimento de ajuste es más rápido y necesita menos recursos para almacenar y computar los cambios. Aunque las matrices del adaptador carecen de parte de la información de las matrices del modelo base, el método de ajuste LoRA es eficaz porque LoRA explota el hecho de que los modelos de cimentación grandes suelen utilizar muchos más parámetros de los necesarios para una tarea.
El resultado de un experimento de ajuste fino de LoRA es un conjunto de adaptadores que contienen nuevos pesos. Cuando estos adaptadores sintonizados se multiplican, forman una matriz que tiene el mismo tamaño que la matriz del modelo base. En el momento de la inferencia, las nuevas ponderaciones del producto de los adaptadores se añaden directamente a las ponderaciones del modelo base para generar la salida ajustada.
Puede configurar los parámetros del experimento de ajuste LoRA, como las capas del modelo base de cimentación a las que apuntar y el rango a utilizar al descomponer las matrices del modelo base. Para más detalles, consulte Parámetros para el ajuste de los modelos de cimentación.
Al desplegar el activo de adaptador, debe desplegar el activo en un espacio de despliegue en el que también esté desplegado el modelo base. Puede utilizar el método de ajuste fino LoRA en watsonx.ai para ajustar sólo los modelos de cimentación no cuantificados.
Las ventajas de utilizar la técnica de ajuste fino LoRA incluyen:
- Los adaptadores más pequeños y entrenables utilizados por la técnica LoRA requieren menos recursos de almacenamiento y computacionales durante el ajuste.
- Los ajustes de los adaptadores se aplican en el momento de la inferencia sin afectar a la longitud de la ventana de contexto ni a la velocidad de las respuestas del modelo.
- Puede desplegar un modelo de base y utilizar el modelo con diferentes adaptadores para personalizar las salidas para diferentes tareas.
Flujo de trabajo de ajuste fino de la adaptación de bajo rango ( LoRA )
Durante el experimento de ajuste fino LoRA, las ponderaciones de los parámetros de un subconjunto representativo de los parámetros del modelo, denominados adaptadores de bajo rango, se ajustan repetidamente para que las predicciones del modelo base ajustado puedan mejorar con el tiempo.
El siguiente diagrama ilustra los pasos que tienen lugar durante la ejecución de un experimento de ajuste fino en LoRA.
Las partes del flujo del experimento que puede configurar aparecen resaltadas con un icono de usuario . Estos puntos de decisión se corresponden con los parámetros de ajuste del experimento que usted controla. Consulte Parámetros para ajustar los modelos de cimentación.
El diagrama muestra los siguientes pasos del experimento:
El experimento lee los datos de entrenamiento, los tokeniza y los convierte en lotes.
El tamaño de los lotes está determinado por el parámetro de tamaño de lote.
Se diseñan adaptadores de bajo rango, que son un subconjunto representativo de los parámetros del modelo base. Los pesos iniciales de los adaptadores de bajo rango se aplican a las capas del modelo que especifiques en el parámetro target_modules, y se calculan en función del valor que especifiques para el parámetro rank.
Envía la entrada de los ejemplos del lote a los adaptadores de LoRA y, a continuación, al modelo base para procesar y generar la salida.
Compara la salida del modelo con la salida de los datos de entrenamiento que corresponden a la entrada de datos de entrenamiento que se envió. A continuación, calcula el gradiente de pérdida, que es la diferencia entre la salida prevista y la salida real a partir de los datos de entrenamiento.
El experimento ajusta las ponderaciones de los parámetros del adaptador LoRA en función de la pérdida calculada del modelo. El momento en que se produce este ajuste depende de cómo esté configurado el parámetro Pasos de acumulación.
Los ajustes se aplican a las ponderaciones de los parámetros de los adaptadores de LoRA. El grado en que se modifican las ponderaciones se controla mediante una combinación de los valores de los parámetros de tasa de aprendizaje, alfa y abandono.
La entrada del siguiente ejemplo en los datos de entrenamiento se envía al adaptador LoRA como entrada. El adaptador aplica los últimos cambios de peso y los añade a los pesos del modelo de cimentación base para ajustarlos a la tarea.
El proceso se repite hasta que se procesan todos los ejemplos de todos los lotes.
Todo el conjunto de lotes se procesa de nuevo tantas veces como se especifique en el parámetro Número de épocas.
Más información LoRA
- IBM.com: ¿Qué es LoRA (adaptación de bajo rango)?
- LoRA trabajo de investigación
- Parámetros para ajustar los modelos de cimentación
Tema principal: Métodos de ajuste de los modelos de cimentación