Parameter-Efficient Fine-Tuning (PEFT)
O ajuste fino eficiente em parâmetros (PEFT) adapta um modelo pré-treinado através do treino de um pequeno conjunto de pesos adicionados ou selecionados. Abrange adaptadores, LoRA e congelamento.
O ajuste fino eficiente em parâmetros (PEFT) adapta um modelo pré-treinado a uma nova tarefa treinando apenas uma pequena fração dos seus parâmetros, sejam alguns novos adicionados à rede ou um subconjunto selecionado dos existentes, enquanto os restantes pesos do modelo permanecem congelados. O ajuste fino completo atualiza todos os pesos, o que, num modelo de linguagem de grande escala (LLM) com 7 mil milhões de parâmetros, implica manter gradientes e o estado do otimizador para todos os 7 mil milhões de valores e guardar uma cópia completa do modelo para cada tarefa. Os métodos PEFT treinam frequentemente menos de 1% dos parâmetros, pelo que um modelo de base pode ser adaptado numa única GPU, e cada nova tarefa acrescenta um pequeno ficheiro de parâmetros treinados em vez de outro checkpoint completo. A biblioteca PEFT da Hugging Face implementa os métodos mais comuns para modelos transformer.
Como funciona o PEFT#
O PEFT baseia-se na aprendizagem por transferência: um modelo pré-treinado com dados abrangentes já codifica características gerais, pelo que adaptá-lo a uma tarefa relacionada exige muito menos alterações do que treiná-lo de raiz. Os métodos dividem-se em três famílias, dependendo dos parâmetros que treinam.
Os métodos aditivos inserem novos módulos ou entradas treináveis na rede congelada. Os adaptadores adicionam pequenas camadas de gargalo dentro de cada bloco transformer e ficaram a 0,4% do ajuste fino completo no benchmark linguístico GLUE, acrescentando 3,6% de parâmetros por tarefa. O ajuste de prompts e o ajuste de prefixos aprendem um pequeno conjunto de vetores contínuos que são acrescentados ao início da entrada ou às ativações de cada camada.
Os métodos seletivos treinam um subconjunto escolhido dos pesos existentes. Congelar o backbone e treinar apenas as camadas posteriores é a forma mais simples, e o BitFit treina apenas os termos de bias.
Os métodos de reparametrização aprendem uma atualização compacta das matrizes de pesos congeladas. O LoRA representa cada atualização como o produto de duas matrizes de baixo posto e, em comparação com o ajuste fino completo do GPT-3 175B, reduziu os parâmetros treináveis 10 000 vezes e a memória da GPU 3 vezes. O QLoRA treina adaptadores LoRA sobre um modelo-base quantizado de 4 bits, e o DoRA divide cada peso em magnitude e direção e adapta a direção com LoRA.
Como apenas os pequenos parâmetros treinados diferem entre tarefas, uma cópia do modelo-base pode servir várias tarefas ao mesmo tempo. Um servidor mantém o modelo-base congelado na memória e aplica o adaptador correspondente a cada pedido, e sistemas como o S-LoRA servem milhares de adaptadores LoRA desta forma:
Vantagens e compromissos#
Só são necessários gradientes e o estado do otimizador para os parâmetros treinados, pelo que a utilização de memória diminui bastante, embora os pesos congelados e as ativações continuem a ter de caber na GPU. Manter fixos os pesos pré-treinados também limita o sobreajuste em conjuntos de dados pequenos e o esquecimento catastrófico das competências originais do modelo. O custo é a capacidade: num estudo intitulado LoRA Aprende Menos e Esquece Menos, o LoRA ficou atrás do ajuste fino completo em programação e matemática, embora preservasse melhor o desempenho do modelo-base em tarefas fora desses domínios.
PEFT em visão computacional#
Os transformers de visão podem ser adaptados com os mesmos métodos. O Visual Prompt Tuning aprende tokens de entrada adicionais para um ViT congelado, treinando menos de 1% dos parâmetros, e superou o ajuste fino completo em muitos dos seus testes, enquanto os adaptadores LoRA personalizam o Stable Diffusion para um novo estilo ou tema. Para modelos convolucionais de deteção de objetos, congelar camadas é a abordagem seletiva padrão. No treino do Ultralytics YOLO26, o argumento freeze interrompe as atualizações de gradiente das primeiras N camadas e também fixa as respetivas estatísticas de normalização por lotes, e freeze=11 abrange as camadas 0 a 10, todo o backbone do YOLO26, pelo que apenas o neck e a head de deteção são treinados:
from ultralytics import YOLO
# Carrega pesos YOLO26n pré-treinados no COCO
model = YOLO("yolo26n.pt")
# Congela as camadas 0-10 (o backbone) e treina apenas o neck e a head de deteção
results = model.train(data="coco8.yaml", epochs=5, freeze=11)O registo de treino lista cada parâmetro congelado numa linha Freezing layer antes do início da primeira época.
PEFT vs. termos relacionados#
- Ajuste fino completo: Atualiza todos os pesos, o que oferece a maior capacidade de adaptação, mas exige mais memória e uma cópia completa do modelo por tarefa. O PEFT é uma forma de ajuste fino que limita os parâmetros que podem mudar.
- Sondagem linear: Treina apenas um classificador linear sobre características congeladas, sendo o método seletivo mais restritivo; é usado sobretudo para medir quanto uma representação pré-treinada já capta.
- Engenharia de prompts: Altera o comportamento de um modelo através de texto escrito manualmente na entrada, sem treinar nada. O ajuste de prompts aprende vetores de prompt contínuos por descida do gradiente.
- Destilação de conhecimento: Treina um modelo aluno mais pequeno para imitar um professor maior, comprimindo assim um modelo, enquanto o PEFT adapta um modelo existente a uma nova tarefa.
- Fusão de modelos: Combina pesos ou adaptadores treinados num único modelo. Uma atualização LoRA treinada pode ser adicionada à matriz de pesos congelada que adapta, pelo que o modelo fundido é executado sem custos adicionais de inferência.










