O que é LoRA (adaptação de baixa classificação)?

Autora

Joshua Noble

Data Scientist

O que é LoRA?

A adaptação de baixa classificação (LoRA) é uma técnica usada para adaptar modelos de aprendizado de máquina a novos contextos. Ela pode adaptar modelos grandes a usos específicos, adicionando peças leves ao modelo original em vez de alterar todo o modelo. Um cientista de dados pode expandir rapidamente as maneiras pelas quais um modelo pode ser usado, em vez de exigir que construam um modelo totalmente novo.

A técnica foi originalmente publicada por Edward Hu, Yelong Shen e colaboradores em seu artigo LoRA: Low-Rank Adaptation Of Large Language Models 1. No artigo, eles mostraram que os modelos reduzidos e retreinados usando a LoRA superaram os modelos de base em uma variedade de tarefas de benchmark. O desempenho do modelo pode ser melhorado sem a necessidade de um ajuste fino completo e usando um número significativamente menor de parâmetros de modelo treináveis.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

O que a LoRA faz?

Modelos de aprendizado de máquina grandes e complexos, como aqueles usados para grandes modelos de linguagem (LLMs), como o ChatGPT, exigem muito tempo e muitos recursos para serem configurados. Eles podem ter trilhões de parâmetros definidos com valores específicos. Quando esse processo estiver concluído, o modelo pode ser poderoso e preciso em geral, mas não necessariamente recebeu ajuste fino para realizar tarefas específicas.

Fazer um modelo funcionar em contextos específicos pode exigir muito retreinamento, alterando todos os seus parâmetros. Com o número de parâmetros em tais modelos, esse retreinamento é caro e demorado. A LoRA oferece uma maneira rápida de adaptar o modelo sem retreiná-lo.

Por exemplo, um ajuste fino completo do modelo GPT-3 requer o treinamento de 175 bilhões de parâmetros devido ao tamanho do seu conjunto de dados de treinamento. Usando a LoRA, os parâmetros treináveis para GPT-3 podem ser reduzidos para aproximadamente 18 milhões de parâmetros, o que reduz os requisitos de memória GPU em aproximadamente dois terços.

A LoRA não é o único método eficiente de ajuste fino. Uma variante da LoRA é a LoRA de quantização (QLoRA), uma técnica de ajuste fino que combina uma técnica de computação de alta precisão com um método de armazenamento de baixa precisão. Isso ajuda a manter o tamanho do modelo pequeno e, ao mesmo tempo, garantir que ele tenha um alto desempenho e seja preciso.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Como funciona a LoRA

Em vez de retreinar todo o modelo, a LoRA congela os pesos e parâmetros originais do modelo como estão. Em seguida, além desse modelo original, ele adiciona uma adição leve chamada matriz de baixa classificação, que é aplicada a novas entradas para obter resultados específicos ao contexto. A matriz de baixa classificação se ajusta aos pesos do modelo original de modo que as saídas correspondam ao caso de uso desejado.

A LoRA aproveita o conceito de matrizes de classificação inferior para tornar o processo de treinamento de modelos extremamente eficiente e rápido. Tradicionalmente, o ajuste fino dos LLMs exige o ajuste de todo o modelo. A LoRA concentra-se na modificação de um subconjunto menor de parâmetros (matrizes de classificação inferior) para reduzir a sobrecarga computacional e de memória.

O diagrama mostra como a LoRA atualiza as matrizes A e B para rastrear mudanças nos pesos pré-treinados usando matrizes menores de classificação r. Após a conclusão do treinamento da LoRA, pesos menores são mesclados em uma nova matriz de pesos, sem a necessidade de modificar os pesos originais do modelo pré-treinado.

Uma imagem mostrando como a adaptação de baixa classificação reduz o tamanho do modelo

A LoRA é baseada no entendimento de que modelos grandes possuem inerentemente uma estrutura de baixa dimensão. Ao utilizar matrizes menores, chamadas de matrizes de baixa classificação, a LoRA adapta esses modelos de forma eficaz. Esse método concentra-se no conceito central de que mudanças significativas no modelo podem ser representadas com menos parâmetros, tornando, assim, o processo de adaptação mais eficiente.

As matrizes são uma parte importante de como os modelos de aprendizado de máquina e as redes neurais funcionam. As matrizes de baixa classificação são menores e têm muito menos valores do que matrizes de classificação maior ou superiora. Eles não ocupam muita memória e exigem menos etapas para adicionar ou multiplicar, o que os torna mais rápidos para serem processados pelos computadores.

Uma matriz de alta classificação pode ser decomposta em duas matrizes de baixa classificação, uma matriz 4 x 4 pode ser decomposta em uma matriz 4 x 1 e uma matriz 1 x 4.

Uma imagem mostrando como uma matriz 4 por 4 pode ser reduzida a uma matriz 1 por 4 e 4 por 1

A LoRA adiciona matrizes de baixa classificação ao modelo original congelado de aprendizado de máquina. As matrizes de baixa classificação são atualizadas por meio de gradiente descendente durante o ajuste fino, sem modificar os pesos do modelo de base. Essas matrizes contêm novos pesos para aplicar ao modelo durante a geração de resultados. A matriz de mudança multiplicada é adicionada aos pesos do modelo de base para obter o modelo ajustado final. Esse processo altera as saídas que o modelo produz com poder de computação e tempo de treinamento mínimos.

Em essência, a LoRA mantém o modelo original inalterado e adiciona pequenas partes mutáveis a cada camada do modelo. Isso reduz significativamente os parâmetros treináveis do modelo e o requisito de memória da GPU para o processo de treinamento, o que é outro desafio significativo quando se trata de ajustar ou treinar modelos grandes.

Para implementar o ajuste fino da LoRA com o HuggingFace usando Python e PyTorch, os desenvolvedores podem usar a biblioteca de ajuste fino com eficiência de parâmetros (PEFT) para injetar os adaptadores da LoRA no modelo e usá-los como matrizes de atualização. Essa biblioteca está disponível gratuitamente por meio do HuggingFace ou do GitHub. Essa biblioteca oferece maneiras de configurar parâmetros da LoRA para seu modelo. Alguns dos parâmetros mais comumente usados são:

r: a classificação das matrizes de atualização, expressa em int. A decomposição de classificação inferior tem resultados em matrizes de atualização menores com menos parâmetros treináveis.

target_modules: os módulos (por exemplo, blocos de atenção) para aplicar as matrizes de atualização da LoRA.

lora_alpha: fator de escalonamento da LoRA.

Vantagens da LoRA

Uma das principais vantagens da LoRA é que um modelo de base pode ser compartilhado e usado para construir muitos pequenos módulos da LoRA para novas tarefas. O modelo compartilhado é congelado, o que permite que os usuários troquem de tarefas substituindo as matrizes de peso da LoRA. Em vez de precisar de dois modelos diferentes, um único modelo pode ser usado em tarefas diferentes, mantendo os ganhos de desempenho do ajuste fino.

A LoRA torna o treinamento mais eficiente e reduz a barreira de hardware para a entrada, pois os usuários não precisam calcular os gradientes ou manter os estados do otimizador para a maioria dos parâmetros. Em vez disso, o processo exige a otimização apenas das matrizes de baixa classificação muito menores.

O design linear da LoRA permite que cientistas de dados mesclem as matrizes treináveis com os pesos do modelo pré-treinado congelado quando implementadas, não introduzindo latência de inferência em comparação com um modelo totalmente ajustado por construção.

A LoRA pode ser combinada com outras técnicas para melhorar o desempenho do modelo, como ajuste de prefixo, tornando-a flexível.

Trocas

Embora a LoRA proporcione uma redução significativa no número de parâmetros treináveis, também há uma troca. O processo cria perda de informações durante a decomposição da matriz. Como a LoRA reduz a matriz de peso total em componentes menores, alguns detalhes podem ser perdidos no processo. Isso é comparável ao overfitting do modelo. Contudo, no caso dos LLMs, a perda geralmente é mínima porque os modelos de deep learning são altamente superparametrizados, o que significa que contêm mais parâmetros do que o necessário para a tarefa. "Superparametrizado" significa que esses modelos geralmente são maiores do que precisam ser para os dados de treinamento. Nem todos os parâmetros são estritamente importantes. Há redundância, robustez e resiliência dentro dos parâmetros. Remover essa resiliência pode tornar os modelos menos precisos, de modo que a classificação das matrizes de atualização possa ser ajustada como parte do processo da LoRA.

Soluções relacionadas
Modelos de base

Explore a biblioteca de modelos de base da IBM no portfólio do watsonx para escalar a IA generativa com confiança na sua empresa.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço da sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e as operações críticas adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor comercial.

Explore os serviços de IA
Dê o próximo passo

Explore a biblioteca de modelos de base da IBM no portfólio do IBM® watsonx para escalar a IA generativa com confiança na sua empresa.

Conheça o watsonx.ai Conheça os modelos de IA do IBM® Granite
Notas de rodapé

1. Hu, Edward, et al, LoRA: Low-Rank Adaptation of Large Language Models, 2021