LoRA vs QLoRA: welke fine-tuning-methode moet ik gebruiken?
Automatische vertaling
Dit artikel is automatisch vertaald vanuit de oorspronkelijke Engelse versie.
LoRA traint kleine adaptermatrices en houdt de voorgetrainde weights bevroren. QLoRA past die aanpak toe op een basismodel dat met 4-bitprecisie is opgeslagen. Begin met LoRA als het basismodel ruim in het geheugen past; overweeg QLoRA als de bevroren weights te veel trainingsgeheugen gebruiken.
Beide methoden hebben nog steeds geheugen nodig voor activations, adaptergradiënten en de toestand van de optimizer. Grotere batches en langere sequenties verhogen het geheugengebruik voor activations en tijdelijke buffers. Bij een vaste adapterconfiguratie hangt de omvang van de gradiënten en de optimizer-toestand af van de trainbare parameters.
Het verschil zit in de basisweights
LoRA geeft een update van weights weer met twee kleine matrices in plaats van de volledige weight-matrix te trainen. Als de oorspronkelijke weight de afmetingen d × k heeft, traint een adapter met rang r matrices van r × k en d × r. De rang bepaalt de grootte van de adapter; het is geen universele maat voor de moeilijkheid van een taak.
| Keuze | Bevroren basis | Trainbaar deel | Belangrijkste afweging |
|---|---|---|---|
| LoRA | Meestal BF16 of FP16 | Adapters met lage rang | Meer geheugen toegewezen aan basisweights |
| QLoRA | Naar 4 bits gekwantiseerde weights | Adapters met lage rang, met berekeningen op hogere precisie | Minder geheugen voor basisweights, met extra werk voor dequantization |
Het oorspronkelijke LoRA-artikel beschrijft bevroren weights en trainbare updates met lage rang. Na de training kan een adapter worden samengevoegd met compatibele basisweights. Daardoor is tijdens inference geen aparte adapterbewerking nodig. Gekwantiseerde deployment en het samenvoegen vereisen ondersteuning van de gekozen tools.
Het QLoRA-artikel gebruikte NF4, een 4-bitrepresentatie voor normaal verdeelde weights, plus dubbele quantization en gepagineerde optimizers. In de geteste configuratie voerde het fine-tuning uit op een model met 65B parameters op één GPU met 48 GB. Dat resultaat garandeert niet dat een ander model, een andere sequentielengte of een andere trainingsconfiguratie ook in dat geheugen past.
Vergelijk een gecontroleerde trainingsrun
Houd het basischeckpoint, de voorbeelden, de doelmodules van de adapters, de rang, de sequentielengte en de evaluatieset gelijk. Meet het piekgeheugengebruik, de trainingstijd en de taakkwaliteit op apart gehouden voorbeelden. Als QLoRA geheugen bespaart maar de run vertraagt, bepaal dan of het gebruik van minder GPUs die extra tijd compenseert.
Test ook het werkelijke inference-artefact. De adapterkwaliteit die je met de trainingstools meet, kan veranderen na het samenvoegen of verdere quantization.
Het gedeelte over LoRA en QLoRA in de LLM Engineering Guide legt de parameterupdate en de gevolgen voor de hardware uit.