Du har besluttet at fine-tune en 7B-model på dine egne data. Så rammer du den første rigtige forgrening: tre metodenavne, hver med sit eget svar. Unsloths docs siger start med QLoRA. Axolotl siger det afhænger af din hardware. Halvdelen af de blogindlæg, du har skimmet, siger "brug LoRA til det meste" og går videre. I mellemtiden stirrer du på en enkelt GPU, ikke sikker på om den overhovedet kan køre en af dem.
Dette er den beslutning, der ligger forud for alt andet. Den metode, du vælger, sætter dit VRAM-budget, VRAM-budgettet vælger din hardware, og hardwaren vælger din pris. Vælg den forkerte metode, og du brænder enten penge af på GPU-hukommelse, du ikke havde brug for, eller du bruger en weekend på at jagte out-of-memory-crashes på et kort, der aldrig ville kunne klare opgaven.
Så lad os få styr på det. Her er, hvad der faktisk adskiller LoRA, QLoRA og full fine-tuning, hvad hver af dem koster dig i hukommelse og kvalitet, og en regel til at henvise dit eget tilfælde til én af dem.
Den korte version
- Standarden er QLoRA. Til de fleste fine-tunings på en enkelt GPU skal du starte med QLoRA. Axolotls tabel angiver, at en 7-8B QLoRA-kørsel kræver ca. 10-14 GB VRAM, forudsat kort kontekst og små micro-batches. Det passer på mange forbruger- eller prosumer-kort med 12-24 GB, men ikke på alle kort med lav VRAM. Grib almindelig LoRA, når du har hukommelse til overs og vil have hurtigere steps; gem full fine-tuning til de sjældne tilfælde, der har brug for det.
- VRAM-forskellen er stor. At fine-tune en 7B-model kræver ca. 60-80 GB for full fine-tuning, 16-24 GB for LoRA og 10-14 GB for QLoRA, ifølge Axolotls offentliggjorte tal. Den forskel er hele grunden til, at de parameter-effektive metoder findes.
- Kvalitetsforringelsen er opgaveafhængig, ikke konstant. På de fleste opgaver med instruktionsfølgning og struktureret output ligger LoRA og QLoRA inden for få procent af fuld fine-tuning. Forskellen bliver større ved kompleks ræsonnering som matematik. Det er der, fuld fine-tuning stadig er sin pris værd.
- Fuld fine-tuning er undtagelsen, ikke standarden. Man går til det ved store distributionsskift, ændringer i pre-training-skala eller ræsonneringskritiske opgaver, hvor benchmarks viser forskellen, ikke som et sikkert standardvalg.
Hvad denne guide ikke dækker
Dette er en guide til metodevalg, ikke en implementeringsvejledning. Et par ting er bevidst udeladt:
- LoRA-varianter (DoRA, VeRA, LoRA+). De tre kernemetoder er den beslutning, der betyder mest først; varianterne er forbedringer, man griber til senere.
- Trin-for-trin-kode. Ingen installationskommandoer eller træningsscripts her. Det er en separat praktisk gennemgang, som ikke er dækket her.
- Multi-GPU-træning (FSDP, DeepSpeed ZeRO) og forberedelse af datasæt: begge er store emner i sig selv.
- RLHF, DPO og præferenceoptimering. Det er en anden målklasse end supervised fine-tuning.
- Om du overhovedet bør finetune. Hvis du ikke er sikker på, at finetuning er det rette værktøj i forhold til retrieval, fortjener den sammenligning sit eget svar, før du vælger en metode her.
Hvad adskiller egentlig LoRA, QLoRA og fuld finetuning?
Fuld finetuning opdaterer hver enkelt parameter i modellen. LoRA fastfryser basismodellen og træner i stedet små low-rank adaptermatricer (cirka 0,1-2 % af parameterantallet). QLoRA tilføjer endnu et skridt oven på LoRA: det kvantiserer den fastfrosne basismodel ned til 4-bit præcision (ved hjælp af en datatype kaldet NF4, NormalFloat), så basen fylder langt mindre i hukommelsen, mens du træner adapterne.
Den klareste måde at holde de tre metoder på plads i hovedet er som en stige, hvor hver trin fjerner en omkostning fra det trin, der ligger under det.
Fuld fine-tuning er det nederste trin, og det tungeste. Hver vægt kan trænes, så optimizeren skal spore en gradient og optimizer-tilstand for hver parameter i modellen. Det er der, hukommelsen går hen, og vi kommer til matematikken i næste afsnit.
LoRA (Low-Rank Adaptation) fastfryser de originale vægte og injicerer små, trænbare matricer i modellens lag. Kun disse matricer lærer; basismodellen kører bare med. LoRA-papiret rapporterer, at dette reducerer trænbare parametre med op til 10.000x for en 175B-model og reducerer GPU-hukommelsen med omkring 3x på den skala, samtidig med at det leverer "på niveau med eller bedre end fine-tuning i modelkvalitet" på de modeller, forfatterne testede. Fordi så få parametre ændres, er det trænede resultat helt lille. Hugging Faces PEFT-blog giver to nyttige referencepunkter: et fuldt checkpoint på 40 GB til bigscience/mt0-xxl, og et separat LoRA-eksempel, hvor den gemte adapter kun er 19 MB. Pointen er stadig den samme: PEFT-checkpoints er som regel meget små i forhold til fulde modelcheckpoints.
QLoRA tager LoRA og gør den del, som LoRA lod urørt, mindre: den fastfrosne base. At kvantisere disse vægte til 4-bit NF4 betyder, at basismodellen kun optager en brøkdel af den hukommelse, den ville ved 16-bit, mens adapterne stadig trænes med fuld præcision ovenpå. QLoRA-papiret beskriver NF4 som "informationsteoretisk optimal for normalt fordelte vægte", hvilket er en præcis måde at sige, at 4-bit-repræsentationen er valgt til at matche, hvordan modelvægte faktisk er fordelt, så du taber mindre, end en naiv 4-bit afrunding ville koste dig.
Det er hele den konceptuelle stak: fuld fine-tuning træner alt, LoRA fastfryser basen og træner adaptere, QLoRA komprimerer den fastfrosne base og træner adaptere. Alt andet (VRAM, kvalitet, hvornår man bruger hvad) følger af disse tre valg.
Hvor meget VRAM kræver hver metode?
For en 7B-model er de omtrentlige tal cirka 60-80 GB til full fine-tuning, 16-24 GB til LoRA og 10-14 GB til QLoRA, ifølge Axolotls offentliggjorte tabel. Den praktiske konsekvens: QLoRA passer normalt på mange enkelte forbruger- eller prosumer-GPU'er med 12-24 GB under indstillinger med kort kontekst og lille batch, mens full fine-tuning af en 7B-model kræver datacenterhukommelse eller en multi-GPU-opsætning.
Hvorfor er full fine-tuning så tungt? Kort regnestykke. Når du træner hver parameter, holder GPU'en tre ting pr. parameter: selve vægten, dens gradient og optimizer-tilstanden (Adam-lignende optimizere holder to ekstra værdier pr. vægt). Det er derfor hukommelsesregningen løber op i flere gange modellens egen størrelse. LoRA fastfryser basen, så den kun betaler den gradient-og-optimizer-skat på de små adapter-matricer. QLoRA gemmer desuden den fastfrosne base i 4-bit i stedet for 16-bit, hvilket skærer den største resterende omkostning.
Sådan sammenlignes de tre metoder på tværs af modelstørrelser, baseret på Axolotls dokumentation samt QLoRA-artiklen for tallene på de store modeller:
| Metode | 1-3B-model | 7-8B-model | 70B+-model |
|---|---|---|---|
| Full fine-tuning (bf16 + AdamW) | 24-32 GB | 60-80 GB | 4-8x 80 GB |
| LoRA (bf16) | 8-12 GB | 16-24 GB | 2x 80 GB |
| QLoRA (4-bit NF4) | 6-8 GB | 10-14 GB | 40-48 GB |
Kilder: Axolotl-dokumentationen for alle tre metoder tværs af modelstørrelser; QLoRA-artiklen rapporterer uafhængigt om fine-tuning af en 65B-model på et enkelt 48 GB GPU "samtidig med at man bevarer den fulde opgaveydelse fra 16-bit finetuning," hvilket stemmer overens med 70B QLoRA-tallet. Hugging Faces blog om 4-bit kvantisering viser desuden separat en 13B-model trænet på et enkelt 16 GB T4-kort og en 33B-model på et 24 GB GPU-kort med QLoRA. Det er nyttige referencepunkter, hvis dit mål ligger mellem tabellens rækker.
Det ene tal, der er værd at huske: en 65B-model på et enkelt 48 GB-kort. Det er QLoRA's fremtrædende resultat, og det giver "jeg har kun én GPU" en helt ny betydning.
Afsnitskonklusion: VRAM-hierarkiet er full >> LoRA > QLoRA, og springet fra full til QLoRA er stort nok til at flytte en opgave fra en multi-GPU-rack til et enkelt kort.
Går LoRA eller QLoRA virkelig ud over kvaliteten?
For de fleste opgaver med instruktionsfølge og struktureret output ligger LoRA og QLoRA kun få procentpoint fra fuld fine-tuning. Forskellen bliver større ved kompleks ræsonnering (især matematik), hvor fuld fine-tuning stadig klart ligger i front. Svaret er derfor ikke "næsten ligeværdigt" eller "dårligere". Det afhænger af opgaven, og opgavetypen viser dig, hvilken side af den linje du er på.
De klareste beviser opgave for opgave kommer fra en Anyscale-undersøgelse fra september 2023 på Anyscale-undersøgelse af Llama 2. På ViGGO, en struktureret funktionel repræsentationsopgave, nåede LoRA omkring 95% af den fulde finjusterings nøjagtighed på 7B- og 13B-modeller: en forskel på 2%, som forfatterne betragtede som en acceptabel afvejning. Ved SQL-generering matchede LoRA næsten den fulde finjustering, og LoRA 13B-modellen slog faktisk den fuldt finjusterede 7B. På GSM8k, en matematisk ræsonnement-benchmark, underperformede LoRA konsekvent i forhold til fuld finjustering på 7B og 13B, hvor forskellen kun blev mindre ved 70B. Anyscale-teamets tolkning er, at LoRAs low-rank-tilnærmelse måske ikke fanger en færdighed så indviklet som flertrins-matematik.
En forbehold om disse tal: den undersøgelse blev kørt på Llama 2 i september 2023. Mønstret efter opgavetype (struktureret output tæt på, kompleks ræsonnering længere fra) er den holdbare konklusion, der i bund og grund har holdt siden. Men de nøjagtige procenter kan afvige på en nyere basismodel som Llama 3 eller Mistral, så betragt tallene som formen på afvejningen, ikke en garanti for din model.
QLoRAs kvalitetshistorie er sin egen. QLoRA-papiret rapporterer, at Guanaco, dets 65B-model trænet med QLoRA, nåede 99,3% af ChatGPTs ydeevne på Vicuna-benchmarken. Stærkt, men bundet til den specifikke benchmark og den 2023-sammenligning, ikke en generel påstand om, at "QLoRA er lig med ChatGPT". Sammenlignet med almindelig LoRA karakteriserer Axolotl QLoRA som bærende "let degradering på grund af kvantiseringsstøj": den 4-bit base introducerer små fejl, som LoRAs fuldpræcisionsbase ikke har. For det meste arbejde er dette usynligt; for en opgave, der er følsom for små præcisionsforskydninger, er det noget værd at kontrollere snarere end at antage.
Pro-tip: Den mest almindelige kvalitetsoverraskelse er ikke QLoRA versus LoRA. Det er en finjusteret model, der ender med at være dårligere end den basismodel, du startede med. Det betyder normalt, at træningen gjorde noget, du ikke havde til hensigt: for aggressiv på et snævert datasæt, eller kun evalueret på den nye opgave, mens den generelle kapacitet stille regredierede. Test altid den finjusterede model på nogle prompts uden for din træningsdistribution, før du stoler på den. En regression der er signalet til at trække tilbage, ikke til at sende.
Afsnitskonklusion: kvalitetsparitet er opgaveafhængig. Struktureret output og instruktionsfølge er sikre for LoRA/QLoRA; kompleks ræsonnering er der, hvor fuld finjustering stadig er sin pris værd.
Hvornår Bør Du Vælge Hver Metode?
Start med QLoRA til de fleste single-GPU-finjusteringer. Skift til almindelig LoRA, når du har VRAM-plads og ønsker hurtigere trin eller et lidt højere kvalitetsloft. Reservér fuld finjustering til de tilfælde, der virkelig har brug for det: store distributionsskift, ændringer i pre-training-skala, eller ræsonnement-kritiske opgaver, hvor benchmark-forskellen er reel. Navigér efter tre input, i rækkefølge: tilgængelig VRAM, opgavetype og kvalitetskrav, derefter hastighed.
Her er routingen som "gør dette, ikke det":
1. Tjek din VRAM først. Hvis du kører på et enkelt kort med 24 GB eller mindre (de fleste forbruger- og prosumer-GPU'er), er QLoRA din standardmetode, fordi det er den eneste af de tre, der pålideligt kan rumme en 7B-model inden for den grænse. Grib ikke efter full fine-tuning på et enkelt forbrugerkort; tabellen ovenfor viser allerede, at en 7B-opgave ikke passer, og du kommer til at bruge weekenden på at lære det på den hårde måde.
2. Tjek derefter din opgave og dit kvalitetskrav. Hvis din opgave er instruktionsfølgning, struktureret output, SQL eller generel domænetilpasning, viser Anyscales evidens, at LoRA og QLoRA giver dig næsten fuld kvalitet. Bliv ved standardvalget. Hvis din opgave er ræsonnementstung (matematik i flere trin, komplekse logiske kæder), og kvalitet ikke er til forhandling, er det din første reelle grund til at overveje at gå videre til full fine-tuning, fordi det er den ene opgavetype, hvor benchmarks viser en konsekvent kløft.
3. Vurder derefter hastigheden. QLoRA ofrer noget hastighed pr. trin for at spare hukommelse: den 4-bit base skal dekvantiseres on the fly. Hvis du har VRAM til at køre almindelig LoRA (16-24 GB til en 7B), får du hurtigere trin og slipper for kvantiseringsstøjen, hvilket gør LoRA til det bedre valg, når hukommelse ikke er den begrænsende faktor, og du itererer meget.
Hvornår is er full fine-tuning det rette svar? Axolotls vejledning er ligetil: det er nødvendigt til pre-training, og det er valget, "når du har rigelig GPU-hukommelse eller multi-GPU-opsætninger, og har brug for maksimal ydeevne." Uden for disse betingelser (og for langt størstedelen af praktisk fine-tuning, som handler om at tilpasse en eksisterende model til en bestemt adfærd eller et bestemt domæne) giver de parametereffektive metoder dig det meste af kvaliteten for en brøkdel af hardwaren.
Unsloth formulerer standardvalget klart:
"Vi anbefaler at starte med QLoRA, da det er en af de mest tilgængelige og effektive metoder til at træne modeller."
Det er reglen. Brug QLoRA som standard, gå til LoRA for hastighed, når du har hukommelsen til det, og gå kun til fuld fine-tuning, når opgaven eller skalaen kræver det.
Afsnitskonklusion: QLoRA er standardvalget; LoRA er opgraderingen til hastighed og ekstra plads; fuld fine-tuning er undtagelsen, du begrunder med et distributionsskift, en pre-training eller en reasoning-benchmark.
Hvad misforstår folk oftest om fine-tuning metoder?
To misforståelser står bag de fleste spildte weekender. Den første er at behandle fine-tuning som en måde at lære en model nye fakta, når dens primære effekt er at forme adfærd. Den anden er at antage, at man kan købe kvalitet ved bare at dreje på en knap: at en højere LoRA rank, eller full fine-tuning i stedet for QLoRA, automatisk giver en bedre model. Begge er halvt sande, og det er netop derfor de vildleder.
Lærer fine-tuning en model nye fakta?
Der er en reel splittelse mellem eksperter på dette punkt, så det er værd at forstå nuancen frem for at vælge side. Flere praktiske guides kalder "fine-tuning lærer nye fakta" den vigtigste misforståelse: deres pointe er, at fine-tuning er langt bedre til at forme, hvordan en model svarer, end til pålideligt at indsprøjte specifikke fakta, den aldrig så under pre-training. Unsloths dokumentation modsiger dette direkte og kalder påstanden om, at fine-tuning ikke kan lære ny viden, "forkert", og beskriver fine-tuning som en måde at "indsprøjte og lære ny domænespecifik information".
Begge har delvist ret, og den forsonende læsning er denne: fine-tuning er pålidelig til at forme adfærd og forstærke viden, der allerede er latent i basismodellen, og den kan kode domænespecifikke mønstre. Hvad den er upålidelig til, er at implantere isolerede fakta, der var helt fraværende under pre-training. Jo mere dit mål ligner "husk dette specifikke dokument", jo mere sandsynligt er det, at du griber til det forkerte værktøj, og retrieval kan tjene dig bedre. Så den praktiske vejledning overlever uenigheden: læn dig op af fine-tuning til adfærd og stil, vær skeptisk over for den som en fakta-injektionsmekanisme.
Forbedrer en højere LoRA rank altid kvaliteten?
Nej, og det er den nemmeste knap at overdreje. Intuitionen er, at en højere rank giver adapteren mere kapacitet, så mere må være bedre. Databricks testede dette empirisk og fandt, at en fordobling af rank "tilsyneladende ikke resulterer i nogen mærkbar stigning i outputkvaliteten". Det, der gjorde en forskel i deres eksperimenter, var hvilke lag de målrettede (at tilpasse alle lineære lag frem for kun attention-blokkene), ikke at skrue op for rank-tallet. Konklusionen værd at drage: brug din tuning-indsats på målmoduler og datakvalitet, før du bruger den på at oppuste rank.
Er kvaliteten af LoRA altid lig med fuld fine-tuning?
Ikke universelt, og et nyt forskningspapir peger på en specifik fejltilstand. "LoRA vs Full Fine-tuning: An Illusion of Equivalence" af Shuttleworth et al. finder, at LoRA-træning kan introducere "ubudne dimensioner" (højtrangerede singulærvektorer, der ikke findes i fuldt fine-tunede modeller), og forbinder dem med glemsel i continual-learning-scenarier, hvor den samme model fine-tunes gentagne gange. Dette er en specifik advarsel, ikke en generel afvisning: hvis du foretager én runde fine-tuning til én opgave, holder den brede evidens for kvalitetsparitet stadig. Hvis du kæder fine-tunes sammen og går op i at bevare basismodellens generelle evne, er dette den fejltilstand, du skal holde øje med.
Ofte stillede spørgsmål
Hvad er forskellen mellem LoRA, QLoRA og fuld fine-tuning?
Fuld fine-tuning opdaterer hver enkelt parameter i modellen. LoRA fastfryser basismodellen og træner i stedet små low-rank adaptermatricer, cirka 0,1-2% af parametrene. QLoRA gør det, LoRA gør, og kvantiserer desuden den fastfrosne basismodel til 4-bit NF4-præcision, så basen kræver langt mindre hukommelse, mens adapterne trænes. Resultatet er en klar hukommelsesstige: fuld fine-tuning er tungest, LoRA er lettere, QLoRA er lettest.
Hvor meget VRAM har jeg brug for til at fine-tune en 7B-model?
For en 7B-model viser Axolotls tal, at fuld fine-tuning ligger på cirka 60-80 GB, LoRA på 16-24 GB, og QLoRA på 10-14 GB. QLoRA er den eneste af de tre, der typisk passer på mange enkelte forbruger- eller prosumer-GPU'er med 12-24 GB; fuld fine-tuning af en 7B-model kræver hukommelse på datacenterniveau eller flere GPU'er.
Er kvaliteten af QLoRA værre end LoRA eller fuld fine-tuning?
Det afhænger af opgaven. For det meste arbejde med instruktionsfølge og struktureret output ligger QLoRA inden for få procent af fuld finjustering, og Axolotl beskriver kun en "let degradering på grund af kvantiseringsstøj" i forhold til almindelig LoRA. Forskellen bliver større ved komplekse ræsonnementopgaver som matematik, hvor fuld finjustering viste en konsistent fordel i en Anyscale-undersøgelse fra 2023 af Llama 2.
Hvornår Er Fuld Finjustering Egentlig Værd?
Fuld finjustering er sin pris værd til pre-training, store distributionsskift og ræsonnement-kritiske opgaver, hvor benchmarks viser en reel kvalitetsforskel. Det er også vejen, når du har rigelig GPU-hukommelse eller en multi-GPU-opsætning og har brug for maksimal kvalitet. For det almindelige tilfælde (at tilpasse en eksisterende model til en specifik adfærd eller domæne) giver LoRA eller QLoRA dig det meste af kvaliteten for en brøkdel af hardwaren.
Lærer fine-tuning en model nye fakta?
Delvist. Finjustering er pålidelig til at forme adfærd og styrke viden, der allerede er latent i basismodellen, og den kan kode domænespecifikke mønstre. Den er upålidelig til at implantere diskrete fakta, der var helt fraværende fra pre-training. Der er en ægte ekspertuenighed her. Unsloths dokumentation argumenterer for, at finjustering kan lære ny viden, mens andre guides kalder dette den største misforståelse, og den forsonende opfattelse er at bruge finjustering til adfærd og stil, og gribe til retrieval, når målet er at genkalde specifikke fakta.
Hvor Dette Efterlader Dig
Metodevalget kommer ned til ét standardvalg og to nødudgange: start med QLoRA, gå op til LoRA, når hukommelse ikke er begrænsningen og du vil have hurtigere trin, gå op til fuld finjustering kun når et distributionsskift, pre-training, eller en ræsonnement-benchmark tvinger det.
Med metoden fastlagt er den næste beslutning den hardware, den indebærer. Dit metodevalg har lige fortalt dig, om du leder efter et enkelt forbrugerkort eller datacenterhukommelse. Hvis du vil sammenligne specifikke kort til AI-arbejdsbelastninger, H100 vs RTX 4090 benchmark-sammenligning dækker det område. At dimensionere GPU'en til den valgte metode, og en trin-for-trin gennemgang af at køre selve træningsjobbet, er deres egne separate guides.