LoRA vs QLoRA: que método de fine-tuning devo usar?

Tradução automática

Este artigo foi traduzido automaticamente a partir da versão original em inglês.

LoRA treina pequenas matrizes de adaptação e mantém congelados os pesos pré-treinados. QLoRA aplica essa abordagem a um modelo base armazenado com precisão de 4 bits. Comece com LoRA se o modelo base couber na memória com margem; considere QLoRA se os seus pesos congelados consumirem demasiada memória de treino.

Ambos os métodos continuam a precisar de memória para as ativações, os gradientes dos adaptadores e o estado do otimizador. Lotes maiores e sequências mais longas aumentam a memória das ativações e dos buffers temporários. Numa configuração fixa de adaptadores, os tamanhos dos gradientes e do estado do otimizador dependem dos parâmetros treináveis.

A diferença está nos pesos base

LoRA representa uma atualização dos pesos através de duas matrizes pequenas em vez de treinar toda a matriz de pesos. Se o peso original tiver dimensões d × k, um adaptador de posto r treina matrizes de r × k e d × r. O posto determina o tamanho do adaptador; não fornece uma medida universal da dificuldade da tarefa.

OpçãoBase congeladaParte treinávelPrincipal compromisso
LoRAGeralmente BF16 ou FP16Adaptadores de baixo postoMaior alocação de memória para os pesos base
QLoRAPesos quantizados a 4 bitsAdaptadores de baixo posto, com aritmética de maior precisãoMenos memória para os pesos base, com trabalho de desquantização

O artigo original de LoRA descreve pesos congelados e atualizações treináveis de baixo posto. Após o treino, um adaptador pode ser fundido com pesos base compatíveis, evitando uma operação separada do adaptador durante a inferência. A implementação quantizada e a fusão exigem suporte das ferramentas escolhidas.

O artigo de QLoRA utilizou NF4, uma representação de 4 bits concebida para pesos com distribuição normal, além de quantização dupla e otimizadores paginados. Na configuração testada, realizou fine-tuning de um modelo de 65B parâmetros numa única GPU de 48 GB. Esse resultado não garante que outro modelo, comprimento de sequência ou configuração de treino caiba da mesma forma na memória.

Compare uma execução de treino controlada

Mantenha constantes o checkpoint base, os exemplos, os módulos visados pelos adaptadores, o posto, o comprimento das sequências e o conjunto de avaliação. Registe o pico de memória, o tempo de treino e a qualidade na tarefa em exemplos reservados para avaliação. Se QLoRA poupar memória mas tornar a execução mais lenta, decida se usar menos GPUs compensa esse tempo.

Teste também o artefacto real de inferência. A qualidade do adaptador medida com as ferramentas de treino pode variar após a fusão ou uma quantização adicional.

A secção sobre LoRA e QLoRA do Guia de engenharia de LLM explica a atualização dos parâmetros e as suas implicações para o hardware.