Quiz: LoRA em Detalhes
Teste seu conhecimento sobre a matemática, implementação e boas práticas do LoRA.
30 questões - Clique em cada pergunta para revelar a resposta correta.
Questão 1
O que significa LoRA?
A) Low-Rank Adaptation
B) Algoritmo de Regularização Linear de Saída
C) Otimização por Camada para Representações
D) Abordagem de Redução de Saída em Larga Escala
Mostrar Resposta
Resposta Correta: A
LoRA significa Low-Rank Adaptation, referindo-se à decomposição de matriz de baixa ordem usada para representar atualizações de pesos.
Questão 2
Como o LoRA representa as atualizações de peso?
A) Como uma única matriz
B) Como o produto de duas matrizes de baixa ordem (BA)
C) Como uma matriz esparsa
D) Como um vetor
Mostrar Resposta
Resposta Correta: B
O LoRA representa as atualizações de peso ΔW como o produto de duas matrizes: B (d×r) e A (r×k), onde r é muito menor que d e k.
Questão 3
Por que a matriz B é inicializada com zero?
A) Para acelerar o treinamento
B) Para que BA=0 no início, mantendo a saída inicial inalterada
C) Para economizar memória
D) Ela é inicializada aleatoriamente, não com zero
Mostrar Resposta
Resposta Correta: B
Quando B é inicializada com zero, BA=0, o que significa que o modelo começa exatamente com o mesmo comportamento do modelo base, garantindo um início de treinamento estável.
Questão 4
Qual é o fator de escala efetivo para r=16 e alpha=32?
A) 0,5
B) 1,0
C) 2,0
D) 16
Mostrar Resposta
Resposta Correta: C
A escala efetiva é alpha/r = 32/16 = 2,0.
Questão 5
Para uma matriz de peso 4096×4096 com r=16, quantos parâmetros LoRA são adicionados?
A) 16.777.216
B) 131.072
C) 65.536
D) 4.194.304
Mostrar Resposta
Resposta Correta: B
O LoRA adiciona r×d + r×k = 16×4096 + 16×4096 = 131.072 parâmetros.
Questão 6
Quais camadas são comumente alvo do LoRA em transformers?
A) Apenas camadas de embedding
B) Projeções de Query, Key, Value (q_proj, k_proj, v_proj)
C) Apenas a camada de saída
D) Normalização de camada
Mostrar Resposta
Resposta Correta: B
As camadas de projeção de atenção (q_proj, k_proj, v_proj, o_proj) são comumente alvo do LoRA.
Questão 7
Qual é o propósito do parâmetro lora_alpha?
A) Definir a taxa de aprendizado
B) Escalar a contribuição das atualizações do LoRA
C) Determinar o tamanho do batch
D) Controlar a taxa de dropout
Mostrar Resposta
Resposta Correta: B
lora_alpha é um fator de escala que controla a magnitude da contribuição do LoRA. A escala efetiva é alpha/r.
Questão 8
Qual função é usada para aplicar LoRA a um modelo?
A) apply_lora()
B) get_peft_model()
C) create_lora()
D) add_adapter()
Mostrar Resposta
Resposta Correta: B
get_peft_model(base_model, lora_config) é usada para envolver um modelo base com a configuração LoRA.
Questão 9
O que faz o model.merge_and_unload()?
A) Salva o modelo em disco
B) Mescla os pesos do LoRA ao modelo base e remove o adaptador
C) Carrega um novo adaptador
D) Limpa a memória da GPU
Mostrar Resposta
Resposta Correta: B
merge_and_unload() mescla os pesos do adaptador LoRA aos pesos do modelo base, criando um modelo padrão sem a sobrecarga do adaptador.
Questão 10
Qual é a taxa de aprendizado típica para fine-tuning com LoRA?
A) 1e-2
B) 1e-4 a 5e-4
C) 1e-6
D) 1.0
Mostrar Resposta
Resposta Correta: B
O fine-tuning com LoRA normalmente usa taxas de aprendizado entre 1e-4 e 5e-4, mais altas do que o fine-tuning completo.
Questão 11
Qual é o rank inicial recomendado para experimentos com LoRA?
A) r=1
B) r=16
C) r=256
D) r=1024
Mostrar Resposta
Resposta Correta: B
r=16 é um ponto de partida comum, proporcionando um bom equilíbrio entre capacidade e eficiência.
Questão 12
O que significa "low rank" no LoRA?
A) O modelo tem baixa qualidade
B) As matrizes têm baixa dimensionalidade (r muito menor que d)
C) A taxa de aprendizado é baixa
D) O modelo tem poucas camadas
Mostrar Resposta
Resposta Correta: B
"Low rank" significa que a dimensão intermediária r é muito menor que as dimensões originais (r ≪ d), resultando em menos parâmetros.
Questão 13
Após a mesclagem, qual é a sobrecarga de inferência do LoRA?
A) 10% mais lento
B) 50% mais lento
C) Zero (idêntico ao modelo base)
D) 2x mais lento
Mostrar Resposta
Resposta Correta: C
Após a mesclagem, os pesos do LoRA se tornam parte dos pesos do modelo base, resultando em zero sobrecarga adicional na inferência.
Questão 14
Qual é a relação típica entre alpha e rank?
A) Alpha deve ser muito menor que o rank
B) Alpha é tipicamente 1-2x o rank
C) Alpha é igual ao quadrado do rank
D) Eles são não relacionados
Mostrar Resposta
Resposta Correta: B
A prática comum é definir alpha como 1-2x o rank (ex: r=16, alpha=32).
Questão 15
Como verificar os parâmetros treináveis em um modelo PEFT?
A) model.count_params()
B) model.print_trainable_parameters()
C) model.trainable()
D) model.params()
Mostrar Resposta
Resposta Correta: B
model.print_trainable_parameters() exibe a contagem e a porcentagem de parâmetros treináveis.
Questão 16
Para que serve o lora_dropout?
A) Reduzir o tamanho do modelo
B) Regularização para evitar overfitting
C) Acelerar o treinamento
D) Otimização de memória
Mostrar Resposta
Resposta Correta: B
lora_dropout aplica regularização por dropout nas camadas LoRA para ajudar a evitar overfitting.
Questão 17
O que é o parâmetro bias no LoraConfig?
A) Definir o viés da taxa de aprendizado
B) Indicar se os termos de bias das camadas LoRA serão treinados
C) Viés de amostragem de dados
D) Correção de viés do gradiente
Mostrar Resposta
Resposta Correta: B
O parâmetro bias controla se os termos de bias serão treinados: "none" (não treina), "all" (treina todos) ou "lora_only" (treina apenas os bias do LoRA).
Questão 18
Qual é a equação do forward pass no LoRA?
A) h = Wx
B) h = Wx + BAx
C) h = BA + Wx
D) h = W + BA
Mostrar Resposta
Resposta Correta: B
O forward pass é h = Wx + (α/r)BAx, combinando o caminho congelado do modelo base com o caminho treinável do LoRA.
Questão 19
O que torna o LoRA eficiente em memória durante o treinamento?
A) Comprimir o modelo
B) Armazenar gradientes/otimizador apenas para os pequenos adaptadores, não para os pesos congelados
C) Usar int8 por padrão
D) Reduzir o batch size automaticamente
Mostrar Resposta
Resposta Correta: B
A economia de memória vem do fato de não armazenar gradientes e estados do otimizador para os pesos congelados do modelo base—apenas os pequenos parâmetros do LoRA precisam disso.
Questão 20
É possível usar múltiplos adaptadores LoRA em um modelo base?
A) Não, apenas um adaptador permitido
B) Sim, usando add_adapter e set_adapter
C) Apenas dois adaptadores
D) Apenas durante o treinamento
Mostrar Resposta
Resposta Correta: B
Múltiplos adaptadores podem ser adicionados com add_adapter() e alternados usando set_adapter().
Questão 21
Para que serve o TaskType.CAUSAL_LM?
A) Tarefas de classificação
B) Modelagem de linguagem causal (geração de texto)
C) Geração de imagens
D) Apenas tradução
Mostrar Resposta
Resposta Correta: B
TaskType.CAUSAL_LM indica que o modelo é usado para modelagem de linguagem causal, que é a geração padrão de texto.
Questão 22
O que fazer se o loss de treinamento for NaN?
A) Aumentar a taxa de aprendizado
B) Reduzir a taxa de aprendizado, habilitar gradient clipping
C) Usar batch size maior
D) Treinar por mais tempo
Mostrar Resposta
Resposta Correta: B
Loss NaN geralmente indica instabilidade numérica. Soluções incluem reduzir a taxa de aprendizado, habilitar gradient clipping e verificar problemas nos dados.
Questão 23
Qual é o tamanho típico do arquivo do adaptador LoRA para um modelo 7B?
A) ~15GB
B) ~1GB
C) ~10-50MB
D) ~500MB
Mostrar Resposta
Resposta Correta: C
Arquivos de adaptador LoRA normalmente têm 10-50MB, enquanto modelos completos têm ~15GB+ para 7B parâmetros.
Questão 24
O que é DoRA?
A) Um formato de dataset
B) Weight-Decomposed Low-Rank Adaptation
C) Um tipo de otimizador
D) Uma arquitetura de modelo
Mostrar Resposta
Resposta Correta: B
DoRA (Weight-Decomposed Low-Rank Adaptation) é uma variante do LoRA que separa magnitude e direção dos pesos.
Questão 25
Como salvar apenas o adaptador LoRA?
A) model.save_pretrained(path)
B) model.save_weights(path)
C) model.save_adapter(path)
D) Tanto A quanto C funcionam
Mostrar Resposta
Resposta Correta: A
model.save_pretrained(path) em um modelo PEFT salva apenas o adaptador por padrão, não o modelo base.
Questão 26
Qual é o propósito do gradient checkpointing com LoRA?
A) Salvar checkpoints de treinamento
B) Trocar computação por memória para reduzir uso de VRAM
C) Treinamento mais rápido
D) Melhor qualidade
Mostrar Resposta
Resposta Correta: B
Gradient checkpointing recomputa ativações durante o backward pass ao invés de armazená-las, reduzindo o uso de memória ao custo de computação adicional.
Questão 27
Qual parâmetro determina quais camadas recebem LoRA?
A) r
B) lora_alpha
C) target_modules
D) lora_dropout
Mostrar Resposta
Resposta Correta: C
O parâmetro target_modules especifica quais matrizes de peso recebem adaptadores LoRA.
Questão 28
Qual é a fórmula para a contagem de parâmetros no LoRA?
A) d × k
B) r × (d + k)
C) r × r
D) d + k
Mostrar Resposta
Resposta Correta: B
O LoRA adiciona r×d (para B) + r×k (para A) = r×(d+k) parâmetros por matriz de peso.
Questão 29
Por que o LoRA funciona bem para fine-tuning?
A) Ele usa mais parâmetros
B) As atualizações de fine-tuning têm baixa dimensionalidade intrínseca
C) Sempre treina mais rápido
D) Foi criado pela OpenAI
Mostrar Resposta
Resposta Correta: B
Pesquisas mostram que as atualizações de fine-tuning frequentemente estão em um subespaço de baixa dimensão, podendo ser representadas de forma eficiente com matrizes de baixa ordem.
Questão 30
Qual é a abordagem recomendada para deploy em produção?
A) Manter o adaptador sempre separado
B) Mesclar o adaptador ao modelo base para um deploy mais simples
C) Usar fine-tuning completo
D) Nunca usar LoRA em produção
Mostrar Resposta
Resposta Correta: B
Para produção, mesclar o adaptador ao modelo base simplifica o deploy e elimina a sobrecarga do adaptador na inferência.
Resultados
| Pontuação | Nível |
|---|---|
| 27-30 | Excelente - Mestre em LoRA! |
| 21-26 | Bom - Revise detalhes de implementação |
| 15-20 | Médio - Revise todos os capítulos |
| Abaixo de 15 | Precisa de revisão completa |