Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

LoRA (Low-Rank Adaptation)

O LoRA ajusta modelos grandes congelando seus pesos e treinando pequenas matrizes de atualização de baixa ordem, o que reduz os parâmetros treináveis, a memória e o armazenamento.

LoRA, abreviatura de adaptação de baixo posto, é um método de ajuste fino eficiente em parâmetros (PEFT) que adapta um modelo pré-treinado de grandes dimensões a uma nova tarefa, congelando os pesos originais e treinando um pequeno par de matrizes em conjunto com camadas selecionadas. O produto dessas matrizes é uma atualização de baixo posto que se adiciona aos pesos congelados; assim, apenas uma fração minúscula dos parâmetros recebe gradientes. Introduzido por Hu et al. na Microsoft em 2021, LoRA reduziu em 10.000 vezes o número de parâmetros treináveis do GPT-3 175B e em 3 vezes a memória GPU necessária para o treino, em comparação com o ajuste fino completo usando Adam, igualando ou superando a qualidade do ajuste fino completo em RoBERTa, DeBERTa, GPT-2 e GPT-3. Atualmente, é amplamente usada para personalizar modelos de linguagem de grande dimensão (LLMs), modelos de difusão e transformers de visão em hardware modesto. LoRa, o protocolo de rádio de longo alcance para dispositivos IoT, é um termo sem relação com este.

Como funciona LoRA#

O ajuste fino altera uma matriz de pesos pré-treinada W de dimensão d × k através de uma atualização ΔW. LoRA parte do princípio de que esta atualização tem um posto intrínseco baixo, pelo que pode ser escrita como o produto de duas matrizes estreitas: ΔW = B × A, em que A tem dimensão r × k, B tem dimensão d × r e o posto r é muito menor do que d ou k. A saída da camada passa a ser h = Wx + (α / r) × BAx, em que α é uma constante de escala fixa. A é inicializada com valores aleatórios pequenos e B com zeros, pelo que o treino começa exatamente a partir do modelo pré-treinado. Apenas A e B são atualizadas durante a retropropagação, o que também elimina o estado do otimizador de todos os pesos congelados.

Numa projeção de 4096 × 4096, o ajuste fino completo treina cerca de 16,8 milhões de pesos, enquanto um adaptador de posto 8 treina 8 × (4096 + 4096) = 65.536. O script PyTorch abaixo cria um adaptador deste tipo e incorpora-o na camada congelada:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

O adaptador treina 65.536 dos 16.846.848 parâmetros da camada, ou seja, 0,39%, e incorporar B × A em W produz as mesmas saídas que executar o adaptador separadamente. Assim, os modelos LoRA incorporados executam exatamente à mesma velocidade que o modelo original, uma vantagem em relação às camadas adaptadoras anteriores, que acrescentavam computação a cada passagem direta.

Usar LoRA na prática#

O artigo original adaptou apenas as projeções de consulta e valor da atenção do transformer, mas muitas receitas atuais visam todas as camadas lineares. O posto e α são os principais hiperparâmetros: a biblioteca Hugging Face PEFT usa r = 8 e α = 8 por predefinição. Como o modelo base permanece intacto, uma implementação pode manter uma única cópia do modelo e alternar entre pequenos adaptadores específicos para cada tarefa. Com posto 4 nas projeções de consulta e valor do GPT-3 175B, cada ponto de controlo adaptado passou de 350 GB para cerca de 35 MB, ou seja, ficou aproximadamente 10.000 vezes menor.

  • Modelos de linguagem: As equipas adaptam LLMs abertos a um domínio, estilo ou formato de instruções usando uma única GPU, muitas vezes combinando LoRA com dados de ajuste a instruções.
  • Geração de imagens: Os ficheiros LoRA ensinam o Stable Diffusion e modelos semelhantes a reproduzir uma personagem, um produto ou um estilo artístico, e são partilhados e empilhados separadamente do ponto de controlo base.
  • Modelos de visão e multimodais: Os adaptadores especializam transformers de visão e modelos de visão e linguagem (VLMs) para imagens médicas, industriais ou documentais, sem voltar a treinar a rede-base.

Variantes#

  • QLoRA: Congela o modelo base em precisão NormalFloat de 4 bits e treina adaptadores LoRA sobre ele. Dettmers et al. usaram este método para ajustar um modelo com 65 mil milhões de parâmetros numa única GPU de 48 GB, preservando o desempenho do ajuste fino completo de 16 bits.
  • DoRA: Decompõe cada peso pré-treinado em magnitude e direção e aplica LoRA apenas à direção, reduzindo a diferença de precisão em relação ao ajuste fino completo com o mesmo custo de inferência.
  • Ajuste fino eficiente em parâmetros: Termo abrangente para métodos que treinam apenas uma pequena parte de um modelo. Congelar camadas é a forma mais simples; a Ultralytics YOLO disponibiliza essa opção através do argumento de treino freeze, que mantém as primeiras N camadas de um modelo YOLO26 com os respetivos pesos pré-treinados enquanto treina as restantes.
  • Ajuste fino completo: atualiza todos os pesos e armazena uma cópia completa do modelo para cada tarefa. Em programação e matemática, o ajuste fino completo superou substancialmente o LoRA padrão, enquanto o LoRA sofreu menos esquecimento catastrófico de outras habilidades do modelo base.
  • Ajuste de prompts: Aprende incorporações de prompts suaves, acrescentadas ao início da entrada, enquanto todos os pesos do modelo permanecem congelados.
  • Aprendizagem por transferência: Ideia geral de reutilizar conhecimento de uma tarefa noutra. LoRA é uma forma eficiente de o fazer.
  • Fusão de modelos: Combina os pesos de modelos ajustados separadamente; fundir vários adaptadores LoRA num único modelo base é um caso comum.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina