QLoRA: Ajuste eficiente de modelos de lenguaje cuantizados
QLoRA: Efficient Finetuning of Quantized LLMs
May 23, 2023
Autores: Tim Dettmers, Artidoro Pagnoni, Ari Holtzman, Luke Zettlemoyer
cs.AI
Resumen
Presentamos QLoRA, un enfoque eficiente de ajuste fino que reduce el uso de memoria lo suficiente como para ajustar un modelo de 65B parámetros en una sola GPU de 48GB, manteniendo el rendimiento completo de tareas de ajuste fino en 16 bits. QLoRA propaga los gradientes a través de un modelo de lenguaje preentrenado cuantizado en 4 bits y congelado hacia Adaptadores de Bajo Rango (LoRA). Nuestra mejor familia de modelos, que denominamos Guanaco, supera a todos los modelos lanzados públicamente en el benchmark Vicuna, alcanzando el 99.3% del rendimiento de ChatGPT mientras solo requiere 24 horas de ajuste fino en una sola GPU. QLoRA introduce varias innovaciones para ahorrar memoria sin sacrificar rendimiento: (a) NormalFloat de 4 bits (NF4), un nuevo tipo de datos teóricamente óptimo para pesos distribuidos normalmente, (b) cuantización doble para reducir la huella de memoria promedio al cuantizar las constantes de cuantización, y (c) optimizadores paginados para gestionar picos de memoria. Utilizamos QLoRA para ajustar más de 1,000 modelos, proporcionando un análisis detallado del seguimiento de instrucciones y el rendimiento de chatbots en 8 conjuntos de datos de instrucciones, múltiples tipos de modelos (LLaMA, T5) y escalas de modelos que serían inviables de ejecutar con ajuste fino regular (por ejemplo, modelos de 33B y 65B parámetros). Nuestros resultados muestran que el ajuste fino con QLoRA en un pequeño conjunto de datos de alta calidad produce resultados de vanguardia, incluso utilizando modelos más pequeños que los anteriores SoTA. Proporcionamos un análisis detallado del rendimiento de chatbots basado en evaluaciones tanto humanas como de GPT-4, demostrando que las evaluaciones de GPT-4 son una alternativa económica y razonable a la evaluación humana. Además, encontramos que los benchmarks actuales de chatbots no son confiables para evaluar con precisión los niveles de rendimiento de los chatbots. Un análisis selectivo (lemon-picked) muestra dónde falla Guanaco en comparación con ChatGPT. Publicamos todos nuestros modelos y código, incluyendo kernels CUDA para entrenamiento en 4 bits.
English
We present QLoRA, an efficient finetuning approach that reduces memory usage
enough to finetune a 65B parameter model on a single 48GB GPU while preserving
full 16-bit finetuning task performance. QLoRA backpropagates gradients through
a frozen, 4-bit quantized pretrained language model into Low Rank
Adapters~(LoRA). Our best model family, which we name Guanaco, outperforms all
previous openly released models on the Vicuna benchmark, reaching 99.3% of the
performance level of ChatGPT while only requiring 24 hours of finetuning on a
single GPU. QLoRA introduces a number of innovations to save memory without
sacrificing performance: (a) 4-bit NormalFloat (NF4), a new data type that is
information theoretically optimal for normally distributed weights (b) double
quantization to reduce the average memory footprint by quantizing the
quantization constants, and (c) paged optimziers to manage memory spikes. We
use QLoRA to finetune more than 1,000 models, providing a detailed analysis of
instruction following and chatbot performance across 8 instruction datasets,
multiple model types (LLaMA, T5), and model scales that would be infeasible to
run with regular finetuning (e.g. 33B and 65B parameter models). Our results
show that QLoRA finetuning on a small high-quality dataset leads to
state-of-the-art results, even when using smaller models than the previous
SoTA. We provide a detailed analysis of chatbot performance based on both human
and GPT-4 evaluations showing that GPT-4 evaluations are a cheap and reasonable
alternative to human evaluation. Furthermore, we find that current chatbot
benchmarks are not trustworthy to accurately evaluate the performance levels of
chatbots. A lemon-picked analysis demonstrates where Guanaco fails compared to
ChatGPT. We release all of our models and code, including CUDA kernels for
4-bit training.