LoRA e QLoRA
A adaptação de baixa classificação (LoRA) e a adaptação quantizada de baixa classificação (QLoRA) são técnicas de treinamento de modelos de IA. Mais especificamente, elas são formas de ajuste fino de parâmetros com eficiência (PEFT), uma técnica de ajuste fino que ganhou popularidade porque é mais eficiente em termos de recursos do que outros métodos de treinamento de Large Language Models (LLMs).
A LoRA e QLoRA oferecem uma maneira mais eficiente de fazer o ajuste fino dos LLMs, mas diferem na manipulação do modelo e no uso do armazenamento para alcançar os resultados pretendidos.
Como a LoRA e a QLoRA diferem do ajuste fino tradicional?
LLMs são modelos complexos compostos de um grande número de parâmetros (alguns podem chegar à casa dos bilhões). Esses parâmetros permitem que o modelo seja treinado com uma certa quantidade de informações. Quanto mais parâmetros, maior é o armazenamento de dados e a capacidade do modelo de forma geral.
O ajuste fino tradicional requer o reajuste (atualização ou regulação) de cada parâmetro individual para atualizar o LLM. Isso pode significar o ajuste fino de bilhões de parâmetros, exigindo muito tempo de computação e dinheiro.
A atualização de cada parâmetro pode levar a um "sobreajuste", termo usado para descrever um modelo de IA que está aprendendo "ruídos" ou dados inúteis, além dos dados gerais de treinamento.
Imagine um professor e sua respectiva sala de aula. A turma estudou matemática o ano todo. Pouco antes da prova, o professor enfatiza a importância da divisão longa. Durante a prova, muitos alunos ficam preocupados demais com as divisões longas e esquecem as principais equações matemáticas de questões que são igualmente importantes. É isso que o sobreajuste causa em um LLM durante o ajuste fino tradicional.
Além dos problemas de sobreajuste, o ajuste fino tradicional também apresenta um gasto significativo com recursos.
A QLoRA e a LoRA são técnicas de ajuste fino que fornecem atalhos para melhorar a eficiência do ajuste fino completo. Em vez de treinar todos os parâmetros, ele divide o modelo em matrizes e treina apenas aqueles necessários para o aprendizado de novas informações.
Relacionando à nossa metáfora, essas técnicas conseguem introduzir novos tópicos eficientemente sem distrair o modelo de outros tópicos do teste.
Red Hat AI
Como funciona a LoRA?
A técnica LoRA usa novos parâmetros para treinar o modelo de IA com novos dados.
Em vez de treinar todo o modelo e todos os pesos pré-treinados, eles são separados ou "congelados" e uma amostra menor de parâmetros é treinada. Essas amostras são chamadas de matrizes de adaptação de "baixa classificação", e é daí que vem a nomenclatura LoRA.
Elas são chamadas assim porque são matrizes com um baixo número de parâmetros e pesos. Após treinados, eles são combinados com os parâmetros originais e atuam como uma matriz única. Com isso, o ajuste fino pode ser feito com muito mais eficiência.
É mais fácil pensar na matriz LoRA como uma linha ou coluna que é adicionada à matriz.
Pense nisto como o parâmetro inteiro que precisa ser treinado:

Treinar todos os pesos do parâmetro exige uma quantidade significativa de tempo, dinheiro e memória. Ao final, você ainda pode precisar fazer mais treinamentos e ter desperdiçado muitos recursos ao longo do caminho.
Esta coluna representa um peso de baixa classificação:

Quando o treinamento dos novos parâmetros de baixa classificação acaba, a "linha" ou "coluna" única é adicionada à matriz original. Isso permite aplicar seu novo treinamento ao parâmetro todo.

Agora o modelo de IA pode operar com os pesos recém-ajustados.
Treinar o peso de baixa classificação requer menos tempo, memória e custos. Após a amostra ser treinada, ela poderá aplicar o que aprendeu na matriz maior sem ocupar memória extra.
Benefícios da LoRA
LoRA é uma técnica que permite fazer o ajuste fino do modelo com menos tempo, esforço e recursos. Os benefícios incluem:
- Menos parâmetros precisam ser treinados.
- Menor risco de sobreajuste.
- Treinamento mais rápido.
- Menos memória usada.
- Ajustes flexíveis (o treinamento pode ser aplicado a algumas partes do modelo, e não a outras).
Como funciona a QLoRA?
A QLoRA é uma extensão da LoRA. É uma técnica parecida, mas com uma vantagem adicional: menos memória.
O "Q" em "QLoRA" significa "quantizada". Neste contexto, quantizar o modelo significa comprimir parâmetros muito complexos e precisos (muitos números decimais e muita memória) em um parâmetro menor e mais conciso (menos decimais e menos memória).
O objetivo é ajustar uma parte do modelo usando o armazenamento e a memória de apenas uma unidade de processamento gráfico (GPU). Isso é feito com o uso de um NormalFloat (NF4) de 4 bits, um novo tipo de dado que consegue quantizar as matrizes usando ainda menos memória que a LoRA. Ao comprimir o parâmetro em dados menores e mais gerenciáveis, a área de ocupação de memória necessária pode ser até quatro vezes menor do que o tamanho original.
Depois que o modelo é quantizado, fica muito mais fácil fazer o ajuste fino.
Pense neste exemplo como os parâmetros do modelo original:

Dentro dos 12 parâmetros, 3 são verdes, 6 são azuis, 2 são amarelos e 1 é rosa. Quando o modelo é quantizado, ele é transformado em uma representação compacta do modelo anterior.

Após a quantização, ficamos com uma amostra de 1 verde, 2 azuis e 1 amarelo.
Durante a quantização, existe o risco de alguns dados serem tão pequenos que acabam perdidos na compactação. Por exemplo, o parâmetro rosa não aparece porque era uma fração tão pequena que não representava dados suficientes para serem transferidos para a versão compactada.
Neste exemplo, compactamos os parâmetros de 12 para 4. Mas, na realidade, bilhões de parâmetros estão sendo compactados em um número finito que pode ser ajustado em apenas uma GPU.
Idealmente, dados perdidos podem ser recuperados pelo parâmetro original quando a matriz recém-treinada é adicionada de volta às matrizes originais, sem perder a precisão ou exatidão. Mas isso não é algo garantido.
Essa técnica combina computação de alto desempenho com armazenamento de memória de baixa manutenção, mantendo o modelo extremamente preciso mesmo trabalhando com recursos limitados.
Benefícios da QLoRA
QLoRA é uma técnica que dá ênfase a requisitos de memória de baixa manutenção. Assim como a LoRA, ela prioriza a eficiência que permite um processo de treinamento de ajuste fino mais rápido e fácil. Os benefícios incluem:
- Menos memória que a LoRA.
- Prevenção contra dados de sobreajuste.
- Altos níveis de precisão.
- Ajuste de modelos rápido e lightweight.
Quanta precisão perdemos ao quantizar LLMs? Saiba o que acontece quando 500 mil LLMs quantizados são avaliados.
Qual é a diferença entre a LoRA e a QLoRA?
A LoRA pode ser usada por si só como uma técnica eficiente de ajuste fino. A QLoRA é uma extensão que adiciona camadas de técnicas para aumentar a eficiência além da LoRA. A QLoRA usa um espaço muito menor de armazenamento.
Se você não consegue decidir qual técnica é melhor para suas necessidades, pense no volume de armazenamento e recursos de que você dispõe. Se seu armazenamento for limitado, a QLoRA será mais fácil de executar.
Como a Red Hat pode ajudar
O Red Hat® AI é um portfólio de soluções e serviços que pode ajudar sua empresa em qualquer etapa da jornada de IA, não importa se você está no início ou com tudo pronto para escalar na nuvem híbrida.
Com modelos pequenos e para fins específicos, além de técnicas de personalização flexíveis, ele oferece flexibilidade para desenvolver e implantar em qualquer lugar.