Met de opkomst van de tijd van grote taalmodellen (LLM) is de vraag naar 'finetuning' met mijn eigen gegevens explosief gestegen. Het volledig trainen van een model met tientallen miljarden parameters vereist echter enorme kosten en rekenkracht.
De sleuteltechnologie die dit probleem oplost, is LoRA (Low-Rank Adaptation). Vandaag gaan we bekijken wat LoRA is en waarom het efficiënt is, samen met de technische principes erachter.
1. Wat is LoRA (Low-Rank Adaptation)?
LoRA is een technologie voorgesteld door het onderzoeksteam van Microsoft in 2021, waarbij in plaats van alle parameters van een groot model bij te werken, slechts twee kleine matrices met een lage rang worden getraind om het model aan te passen.
Terwijl de traditionele 'Full Fine-tuning' alle gewichten van het model moest aanpassen, houdt LoRA de bestaande gewichten vast (Freeze) en leert alleen de cruciale aanpassingen heel subtiel.
Om het te illustreren:
Wanneer je de inhoud van een dik studieboek (het basismodel) moet wijzigen, schrijf je niet alle pagina's opnieuw, maar schrijf je alleen belangrijke wijzigingen op een post-it (LoRA-adapter) en plak je deze in het boek.
2. Werkingsprincipe (Technische Diepgaande Analyse)
De kern van LoRA is matrixdecompositie (Matrix Decomposition).
Als we de gewichtmatrix van een deep learning model $W$ noemen, is finetuning het proces van het leren van de wijziging in gewichten $\Delta W$.
$$W_{new} = W + \Delta W$$
LoRA leert deze $\Delta W$ niet als een enorme matrix, maar decomprimeert het in het product van twee kleine lage-rang matrices $A$ en $B$.
$$\Delta W = B \times A$$
Hier, als de oorspronkelijke dimensie $d$ is en de rang $r$, dan kun je in plaats van te leren met een enorme $d \times d$ matrix, alleen met veel kleinere matrices van $d \times r$ en $r \times d$ leren. (Meestal gebruiken we een $r$ dat veel kleiner is dan $d$. Bijvoorbeeld: $r=8, 16$, enz.)
Het resultaat is dat het aantal parameters dat geleerd moet worden met tot 1/10.000 kan worden verminderd.
3. Belangrijkste voordelen van LoRA
1) Overweldigende geheugenefficiëntie
Aangezien het niet nodig is om alle parameters in het geheugen te laden, kunnen zelfs consumenten grafische kaarten (zoals RTX 3090, 4090) in plaats van dure A100 GPU's worden gebruikt voor het finetunen van grote modellen. Hierdoor wordt het VRAM-gebruik drastisch verminderd.
2) Besparing op opslagruimte
Modellen die volledig zijn gefinetuned, kunnen tientallen GB groot zijn, terwijl de gewichtsbestanden (adapter) die met LoRA zijn getraind meestal enkele MB tot enkele honderden MB zijn. Hierdoor kun je verschillende versies van LoRA-adapters bovenop één basismodel gebruiken om diverse diensten aan te bieden.
3) Behoud van prestaties
Ondanks de drastische vermindering van het aantal te leren parameters, vertoont het nauwelijks prestatieverlies in vergelijking met volledige finetuning.
4) Geen vertraging tijdens inferentie (No Inference Latency)
Nadat het leren is voltooid, als je de waarden die zijn berekend als $B \times A$ toevoegt aan de oorspronkelijke gewichten $W$ (Merge), wordt het structureel hetzelfde als het oorspronkelijke model. Daarom verloopt de inferentiesnelheid niet traag.
4. Voorbeeld van daadwerkelijk gebruik
Laten we aannemen dat een gebruiker een chatbot wil maken die 'piraat taal' spreekt.
-
Traditionele methode: Train het volledige Llama 3 (8B model) met piraten gegevens. -> Generatie van resultaten met meer dan 16GB, lange leertijd.
-
LoRA-methode: Gewichten van Llama 3 zijn vast. Alleen de LoRA-adapter met piraten gegevens wordt getraind. -> Ongeveer 50MB aan adapterbestanden gemaakt.
-
Implementatie: Laad alleen het originele Llama 3-model + het 50MB bestand voor het bieden van de dienst.
5. Conclusie
LoRA is een technologie die de instapdrempel voor grote taalmodellen drastisch verlaagd. Nu kunnen individuele ontwikkelaars of kleine bedrijven hun gespecialiseerde gegevens gebruiken om hoogwaardige AI-modellen te tunen.
Als je denkt aan het ontwikkelen van een efficiënte AI-model, is het een verstandige keuze om technieken zoals LoRA en PEFT (Parameter-Efficient Fine-Tuning) prioriteit te geven boven volledige training.

댓글이 없습니다.