PEFT documentation

VeLoRA

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.21.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

VeLoRA

Esta é uma variante do LoRA e, portanto, tudo o que é possível com o LoRA é válido para este método, exceto quando indicado o contrário nesta página.

VeLoRA é uma variante do LoRA que reduz a memória de treinamento ao comprimir as ativações salvas para o LoRA na passagem direta e, em seguida, reconstruí-las na passagem reversa para implementar as regras de atualização. No PEFT, o VeLoRA é configurado como uma variante do LoRA por meio do argumento velora_config em LoraConfig.

from peft import LoraConfig, VeloraConfig

config = LoraConfig(
    target_modules=["q_proj", "v_proj"],
    velora_config=VeloraConfig(
        num_groups=64,
        scale=0.2,
        init_type="batch_average",
    ),
)

VeLoRA é aplicado a cada camada LoRA selecionada por target_modules. num_groups controla como a profundidade da ativação de entrada é dividida antes da compressão. Se a profundidade da ativação não for divisível uniformemente por num_groups, o VeLoRA adiciona padding à representação agrupada internamente e remove o padding após a reconstrução. scale reescala as ativações reconstruídas durante a passagem reversa, e init_type define como a projeção é inicializada.

Use batch_average_once para inicializar a projeção a partir do primeiro lote de treinamento, batch_average para atualizá-la a cada passagem de treinamento para frente, ou random para inicializá-la imediatamente a partir de um vetor normalizado aleatório.

Abaixo estão alguns resultados com o benchmark MetaMathQA.

VariantePerda de TreinamentoMemória Máxima (GiB)Tokens/seg
LoRA0.542727.692366.2
LoRA + GC0.542613.171671.8
LoRA+VeLoRA0.542719.942057.6

Observações

  • VeLoRA é atualmente suportado apenas em camadas lineares padrão de LoRA.
Update on GitHub