QA-LoRA: ajuste un modelo de lenguaje grande cuantificado en su GPU

Ajuste fino consciente de la cuantificación

Ilustración del autor — Realizada con imágenes de Pixabay (1,2)

Los modelos de lenguajes grandes (LLM) de última generación están preentrenados con miles de millones de parámetros. Si bien los LLM previamente capacitados pueden realizar muchas tareas, pueden mejorar mucho una vez que se perfeccionan.

Gracias a LoRA, los costes de ajuste se pueden reducir drásticamente. LoRA agrega tensores de bajo rango, es decir, una pequeña cantidad de parámetros (millones), además de los parámetros originales congelados. Durante el ajuste fino solo se entrenan los parámetros de los tensores agregados.

LoRA todavía requiere que el modelo esté cargado en la memoria. Para reducir el costo de la memoria y acelerar el ajuste fino, un nuevo enfoque propone un ajuste fino de LoRA (QA-LoRA) con reconocimiento de cuantificación.

En este artículo, explico QA-LoRA y reviso su desempeño en comparación con trabajos anteriores (especialmente QLoRA). También muestro cómo usar QA-LoRA para ajustar su propio LoRA con reconocimiento de cuantificación para Llama 2.

Ajustar LoRA además de un LLM cuantificado es algo que ya se puede hacer con QLoRA. En mis artículos anteriores, lo usé muchas veces para ajustar LLM, por ejemplo, Llama 2 y GPT-NeoX, en mi computadora de escritorio o usando la instancia gratuita de Google Colab.

Antes de profundizar en QA-LoRA, es interesante entender cuáles son los límites actuales de QLoRA.

La cuantización NormalFloat4 (NF4)

Los algoritmos de cuantificación LLM generalmente cuantifican parámetros con una precisión de 4 bits utilizando el tipo de datos INT4. La computación con este tipo de datos está cada vez más optimizada con las GPU más recientes.

QLoRA no usa INT4 por defecto sino otro tipo de datos llamado NormalFloat4 (NF4). Puedes verlo como un número flotante comprimido. Según los autores de QLoRA, NF4 es superior a INT4. Los LLM cuantificados con NF4 logran una menor perplejidad.

Sin embargo, el cálculo de NF4 no es óptimo para una inferencia rápida. Esta es una de las razones del porque…