O que é parameter-efficient fine-tuning?
PEFT, de parameter-efficient fine-tuning, é o guarda-chuva dos métodos que congelam a maior parte de um modelo pré-treinado e treinam só um punhado de parâmetros. Você paga uma fração da memória de treino e guarda megabytes por tarefa em vez de gigabytes, com qualidade próxima à do ajuste completo em boa parte dos casos.
O nome descreve uma restrição, não uma técnica. Quando alguém diz que fez PEFT, ainda não disse o que fez: cabem ali quatro famílias com mecânicas diferentes e, o que mais importa na prática, com contas de inferência diferentes.
A família mais usada hoje é o LoRA, a ponto de os dois termos serem confundidos. Vale separar, porque a escolha entre as famílias muda o desenho do sistema, e porque a decisão anterior a essa — se o ajuste fino resolve o seu problema — continua sendo a que mais economiza trabalho.
A pergunta que vem antes
Vale gastar um parágrafo no degrau anterior, porque a maioria dos projetos que chega ao PEFT deveria ter parado antes.
Existe uma escada de intervenção, e ela vai do mais barato ao mais caro: prompt melhor, exemplos no prompt, recuperação de contexto, ajuste eficiente, ajuste completo, pré-treino continuado. Cada degrau custa mais e demora mais para reverter. O erro comum é pular do primeiro para o quarto porque o primeiro foi tentado por vinte minutos.
O critério que separa os degraus é o tipo de problema. Se o modelo não sabe um fato, treinar não resolve de forma confiável, e recuperação resolve. Se o modelo sabe mas responde no formato errado, no tom errado ou seguindo a convenção errada, aí treinar é a ferramenta certa, e é onde o PEFT brilha. A distinção entre conhecimento e comportamento é a que mais economiza semanas.
O segundo critério é volume. Ajuste eficiente vale quando você tem exemplos suficientes do comportamento desejado, revisados por alguém que sabe o que é certo. Algumas centenas costumam bastar para estilo e formato. Se você não tem esse conjunto e não vai construí-lo, nenhum método da família ajuda.
O que todas têm em comum
O ajuste completo de um modelo de 7B não é caro por causa dos pesos. É caro por causa do que acompanha cada peso treinável durante o treino. Num treino de precisão mista com Adam, cada parâmetro arrasta gradiente e dois momentos do otimizador, algo em torno de 16 bytes por parâmetro na contabilidade usual. Para 7 bilhões, passa de 100 GB, além dos 14 GB do modelo em bf16.
Todo método PEFT ataca esse número pela mesma porta: reduzir a quantidade de parâmetros que recebem gradiente. O que muda entre eles é onde os parâmetros treináveis ficam.
Onde cada família enfia parâmetro
Adapters vieram primeiro, em 2019. São módulos pequenos inseridos entre as camadas do transformer, com uma projeção que comprime a dimensão, uma não linearidade e outra que expande de volta. No GLUE, os autores ficaram a 0,4% do desempenho do ajuste completo treinando 3,6% dos parâmetros por tarefa1.
LoRA soma duas matrizes finas a cada matriz de peso escolhida, em vez de inserir módulo no caminho. O produto tem o formato da matriz original, então pode ser somado aos pesos antes de servir. Comparado ao GPT-3 de 175B ajustado com Adam, os autores reportaram dez mil vezes menos parâmetros treináveis e três vezes menos memória de GPU2.
Prefix tuning deixa os pesos intocados e otimiza vetores contínuos que entram como chaves e valores em cada camada de atenção. Treinando 0,1% dos parâmetros, o trabalho original obteve desempenho comparável com dados abundantes e superior em regime de poucos dados3.
Prompt tuning é a versão mais simples da mesma ideia: os vetores treinados entram só na sequência de entrada, não em cada camada. O resultado que dá nome ao paper é sobre escala — a diferença para o ajuste completo encolhe conforme o modelo cresce, e some na faixa de dezenas de bilhões de parâmetros4.
Métodos seletivos não acrescentam nada. O BitFit treina apenas os termos de viés que já existem no modelo, e relatou desempenho competitivo com o ajuste completo em conjuntos pequenos e médios5.
Métodos multiplicativos são o ramo mais recente. O (IA)³ aprende vetores que escalam ativações, e a receita T-Few construída sobre ele superou o estado da arte no RAFT em 6 pontos absolutos, com custo de computação bem abaixo do que custaria resolver a mesma tarefa por exemplos no prompt6.
O eixo que decide em produção
Comparações de PEFT costumam ranquear por parâmetros treinados, que é a métrica menos útil das três. Ela descreve o custo do treino, que acontece uma vez. O custo que se repete em toda requisição, para sempre, é outro.
| família | o que treina | custo depois do treino |
|---|---|---|
| adapters | módulos novos entre camadas | operações extras por camada |
| LoRA | duas matrizes por peso escolhido | zero, se somado aos pesos |
| prefix tuning | vetores nas chaves e valores | parte da janela em cada camada |
| prompt tuning | vetores na entrada | parte da janela de contexto |
| seletivos | pesos que já existem | zero |
| multiplicativos | vetores que escalam ativações | uma multiplicação por ativação |
A linha do LoRA é a que explica o domínio dele. Como B·A tem o formato da
matriz congelada, você soma uma vez e serve um modelo com a arquitetura original.
Foi um objetivo declarado do paper, escrito como contraste direto com os
adapters de 20192.
As linhas de prefix e prompt tuning escondem um custo que não aparece em benchmark. Os vetores ocupam posição na sequência, e essa posição sai do orçamento disponível para o conteúdo do usuário. Num sistema com contexto apertado, isso é caro de um jeito que nenhuma tabela de parâmetros mostra.
O que muda quando as tarefas são muitas
A economia de armazenamento parece contábil até você ter mais de uma tarefa. Aí ela vira decisão de arquitetura.
Com ajuste completo, cada comportamento treinado é um modelo inteiro. Cinco comportamentos num modelo de 7B são cinco arquivos de 14 GB, cinco processos carregados e cinco vezes a memória de GPU, porque não há como compartilhar peso entre eles. Na prática, isso significa escolher poucos comportamentos e justificá-los um a um.
Com um método que produz artefato separável, o modelo base fica carregado uma vez e o artefato entra por cima. Cinco comportamentos viram cinco arquivos de dezenas de megabytes servidos pela mesma placa. A conta muda de “quantos modelos cabem no orçamento” para “quantos arquivos cabem no disco”, e a resposta deixa de limitar o desenho.
Nem toda família se presta a isso igualmente. LoRA e adapters produzem artefato que se aplica sobre o base sem tocar nos pesos originais. Métodos seletivos, que alteram pesos que já existiam, produzem um modelo modificado, o que dificulta manter várias variantes a partir de uma cópia só.
Essa é a razão prática de o LoRA ter ganhado a briga, mais do que qualquer diferença de qualidade nos benchmarks. Ele é o único que entrega ao mesmo tempo artefato pequeno, custo zero de inferência quando fundido e a opção de não fundir quando você precisa trocar de comportamento por requisição.
Onde falha
A paridade é de tarefa, não de método. Os números de 2019 a 2021 vêm de classificação em GLUE e geração curta. Um estudo de 2024 comparou LoRA e ajuste completo em programação e matemática e encontrou o adaptador substancialmente abaixo nos postos usuais, embora preservando melhor o desempenho fora do domínio7. Extrapolar paridade de um regime para o outro é o erro mais comum.
PEFT não ensina conhecimento novo melhor que o ajuste completo. Treinar menos parâmetros restringe o quanto o modelo pode mudar, e essa restrição é o mecanismo, não um efeito colateral. Quando a tarefa exige que ele mude bastante, a restrição vira teto.
Comparação entre métodos é frágil. Um levantamento de 2023 nota que os trabalhos da área raramente compartilham modelo base, conjunto e protocolo de avaliação, o que torna as tabelas de comparação entre papers pouco confiáveis8. Trate qualquer ranking geral com desconfiança e meça no seu caso.
Menos memória de treino não é pouca memória. O modelo base continua carregado inteiro. Um 7B em bf16 ocupa 14 GB antes de qualquer gradiente, e nenhum método PEFT muda isso. Quem precisa cortar essa parte precisa de quantização do base.
Como escolher
- Comece pelo LoRA. É o padrão razoável: qualidade conhecida, custo zero de inferência quando somado, e a maior base de ferramenta e documentação.
- Se o modelo é muito grande e as tarefas são muitas, considere prompt tuning. O resultado sobre escala favorece exatamente esse cenário, e o artefato por tarefa fica ainda menor.
- Se você não pode acrescentar nada à arquitetura, olhe os seletivos. Treinar viés não muda o grafo do modelo, o que simplifica a implantação em stacks rígidas.
- Meça fora do domínio alvo, sempre. Todo método PEFT preserva melhor o modelo original do que o ajuste completo, e nenhum preserva perfeitamente.
- Só suba para o ajuste completo depois de esgotar o posto e o conjunto de matrizes. Essa ordem custa uma tarde por tentativa; a inversa custa semanas.
Na prática, a biblioteca peft da Hugging Face implementa a maioria dessas
famílias atrás da mesma interface, envolvendo um modelo já carregado. Trocar de
método é trocar o objeto de configuração, o que torna o passo 4 barato o
suficiente para ser rotina em vez de projeto.
O que custa
A conta que importa é a de memória de treino, e ela muda de ordem de grandeza. Para um modelo de 7B em bf16, o ajuste completo pede os 14 GB dos pesos mais algo acima de 100 GB de gradiente e estado de otimizador. Um adaptador LoRA de posto 16 nas projeções de atenção tem cerca de 8,4 milhões de parâmetros treináveis, o que põe essa segunda parcela em torno de 130 MB.
Os 14 GB do modelo continuam lá. É por isso que a fronteira prática de “cabe numa GPU de consumo” não é decidida pelo método PEFT sozinho, e sim pela combinação dele com a precisão em que o modelo base está carregado.
Footnotes
-
Houlsby et al. (2019) ficaram a 0,4% do ajuste completo no GLUE treinando 3,6% dos parâmetros por tarefa, com módulos inseridos entre as camadas. ↩
-
Hu et al. (2021) reportaram 10.000 vezes menos parâmetros treináveis e 3 vezes menos memória de GPU no GPT-3, sem latência extra na inferência. ↩ ↩2
-
Li e Liang (2021) treinaram 0,1% dos parâmetros e obtiveram desempenho comparável com dados abundantes e superior em regime de poucos dados. ↩
-
Lester et al. (2021) mostraram que a distância para o ajuste completo encolhe com a escala do modelo e desaparece na faixa de dezenas de bilhões de parâmetros. ↩
-
Ben Zaken et al. (2021) treinaram apenas os termos de viés e relataram desempenho competitivo em conjuntos pequenos e médios. ↩
-
Liu et al. (2022) aprenderam vetores que escalam ativações e superaram o estado da arte no RAFT em 6 pontos absolutos com a receita T-Few. ↩
-
Biderman et al. (2024) encontraram LoRA abaixo do ajuste completo em programação e matemática nos postos usuais, com melhor preservação fora do domínio. ↩
-
Lialin et al. (2023) apontam a falta de modelo base, conjunto e protocolo comuns entre os trabalhos da área como obstáculo à comparação direta. ↩
Perguntas frequentes
- O que é parameter-efficient fine-tuning?
- É o conjunto de métodos que congelam a maior parte de um modelo pré-treinado e treinam só um punhado de parâmetros, novos ou selecionados. O objetivo é chegar perto da qualidade do ajuste completo pagando uma fração da memória de treino e guardando megabytes por tarefa em vez de gigabytes.
- Quais são os principais métodos PEFT?
- Quatro famílias cobrem quase tudo. Adapters inserem módulos entre as camadas. LoRA soma duas matrizes finas às matrizes de peso. Prefix e prompt tuning acrescentam vetores treinados à sequência. E os métodos seletivos, como BitFit, treinam um subconjunto dos pesos que já existem.
- Qual método PEFT devo usar?
- LoRA, na maioria dos casos, porque some nos pesos antes de servir e não deixa custo na inferência. Prompt tuning fica atraente em modelos muito grandes com muitas tarefas. Métodos seletivos servem quando você quer o mínimo de infraestrutura nova e a tarefa é pequena.
- PEFT tem a mesma qualidade do ajuste completo?
- Em tarefa de classificação e geração curta, os papers originais relataram paridade: adapters ficaram a 0,4% do ajuste completo no GLUE treinando 3,6% dos parâmetros. Em ensino de capacidade nova, como programação, medições de 2024 encontraram diferença real a favor do ajuste completo.
- Qual biblioteca usar para PEFT?
- A biblioteca `peft` da Hugging Face é o padrão de fato e implementa LoRA, prefix tuning, prompt tuning e variantes atrás da mesma interface. Ela envolve um modelo já carregado, então trocar de método costuma ser trocar o objeto de configuração, não reescrever o laço de treino.
- PEFT reduz o custo de inferência?
- Não por si só, e alguns métodos aumentam. O ganho é de treino e de armazenamento. LoRA é o caso que chega a custo zero de inferência, porque o adaptador soma nos pesos. Adapters deixam módulos no caminho, e prefix e prompt tuning gastam parte da janela de contexto.
Referências
- Houlsby, N. et al.. Parameter-Efficient Transfer Learning for NLP (2019)arXiv:1902.00751
- Hu, E. J. et al.. LoRA: Low-Rank Adaptation of Large Language Models (2021)arXiv:2106.09685
- Li, X. L. e Liang, P.. Prefix-Tuning: Optimizing Continuous Prompts for Generation (2021)arXiv:2101.00190
- Lester, B. et al.. The Power of Scale for Parameter-Efficient Prompt Tuning (2021)arXiv:2104.08691DOI:10.18653/v1/2021.emnlp-main.243
- Ben Zaken, E. et al.. BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models (2021)arXiv:2106.10199
- Liu, H. et al.. Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning (2022)arXiv:2205.05638
- Lialin, V. et al.. Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning (2023)arXiv:2303.15647
- Biderman, D. et al.. LoRA Learns Less and Forgets Less (2024)arXiv:2405.09673