AI-modeller og platforme

LoRa, QLoRA og QA-LoRA: Effektiv tilpasning af store sprogmodeller gennem lav-rang matrixfaktorisering

mm
FÃļj Unite.AI til dine foretrukne kilder pÃĨ Google

Store sprogmodeller (LLM’er) har skabt en unik niche og tilbyder enestÃĨende evner til at forstÃĨ og generere menneske-lignende tekst. LLM’ernes kraft kan spores tilbage til deres enorme stÃļrrelse, der ofte har milliarder af parametre. Mens denne enorme skala driver deres prÃĶstation, giver det samtidig fÃļdsel til udfordringer, isÃĶr nÃĨr det kommer til modeltilpasning for bestemte opgaver eller domÃĶner. De konventionelle metoder til at hÃĨndtere LLM’er, sÃĨsom finjustering af alle parametre, prÃĶsenterer en tung beregnings- og finansielt byrde, og dette udgÃļr en betydelig barriere for deres bredere anvendelse i virkelige anvendelser.

I en tidligere artikel gik vi i dybden med finjustering af store sprogmodeller (LLM’er) for at tilpasse dem til bestemte krav. Vi udforskede forskellige finjusteringsmetoder, sÃĨsom instruktionsbaseret finjustering, enkelt-opgave finjustering og parameter-effektiv finjustering (PEFT), hver med sin unikke tilgang til at optimere LLM’er for forskellige opgaver. Centralt for diskussionen var transformer-arkitekturen, ryggraden i LLM’er, og udfordringerne, der er forbundet med de beregnings- og hukommelseskrav, der er forbundet med hÃĨndtering af et stort antal parametre under finjustering.

Parametre i LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

Billedet ovenfor reprÃĶsenterer stÃļrrelsen pÃĨ forskellige store sprogmodeller, sorteret efter antallet af parametre. BemÃĶrkelsesvÃĶrdigt: PaLM, BLOOM osv.

Som ÃĨret er gÃĨet, er der sket fremskridt, der har fÃļrt til endnu stÃļrre modeller. Dog er det umuligt at justere sÃĨdanne kÃĶmpestore, open-source-modeller pÃĨ standard-systemer uden specialiserede optimeringsteknikker.

IndtrÃĶd Low-Rank Adaptation (LoRA), der blev introduceret af Microsoft (MSFT ) i dette papir, med det formÃĨl at mildne disse udfordringer og gÃļre LLM’er mere tilgÃĶngelige og tilpasselige.

Kernen i LoRA ligger i dens tilgang til modeltilpasning uden at gÃĨ i dybden af at gen-trÃĶne hele modellen. I modsÃĶtning til traditionel finjustering, hvor hver parameter er underlagt ÃĶndring, anvender LoRA en smartere rute. Den fryser de forudtrÃĶnede modelvÃĶgte og introducerer trÃĶnende rang-dekompositionsmatricer i hver lag af transformer-arkitekturen. Denne tilgang reducerer betydeligt antallet af trÃĶnende parametre, hvilket sikrer en mere effektiv tilpasningsproces.

Udviklingen af LLM-justeringsstrategier

NÃĨr man ser tilbage pÃĨ rejsen med LLM-justering, kan man identificere flere strategier, der er blevet anvendt af praktikere over ÃĨrene. FÃļrst var der fokus pÃĨ finjustering af de forudtrÃĶnede modeller, en strategi, der indebÃĶrer en omfattende ÃĶndring af modelparametrene for at tilpasse dem til den specifikke opgave. Men da modellerne voksede i stÃļrrelse og kompleksitet, voksede ogsÃĨ de beregningskrav, der var forbundet med denne tilgang.

NÃĶste strategi, der fik opmÃĶrksomhed, var undermÃĶngde-finjustering, en mere begrÃĶnset version af dens forgÃĶnger. Her blev kun en undermÃĶngde af modellens parametre finjusteret, hvilket reducerede de beregningskrav til en vis udstrÃĶkning. Trods dens fortjenester var undermÃĶngde-finjustering stadig ikke i stand til at fÃļlge med vÃĶksten i stÃļrrelse af LLM’er.

Da praktikere gik i dybden med at udforske mere effektive veje, opstod fuld finjustering som en rigorÃļs, men belÃļnningssvÃĶrdig tilgang.

Introduktion til LoRA

Rangen af en matrix giver os et glimt ind i dimensionerne, der skabes af dens kolonner, og bestemmes af antallet af unikke rÃĶkker eller kolonner, den har.

  • Full-rang matrix: Dens rang matcher den mindre af dens rÃĶkker eller kolonner.
  • Lav-rang matrix: Med en rang, der er bemÃĶrkelsesvÃĶrdigt mindre end bÃĨde dens rÃĶkke- og kolonneantal, fanger den fÃĶrre funktioner.

Store modeller har en bred forstÃĨelse af deres domÃĶne, som sprog i sprogmodeller. Men finjustering af dem til bestemte opgaver krÃĶver ofte kun at fremhÃĶve en lille del af disse forstÃĨelser. Her er, hvor LoRA skinner. Den foreslÃĨr, at matrixen, der viser disse vÃĶgtjusteringer, kan vÃĶre en lav-rang matrix, hvilket fanger fÃĶrre funktioner.

LoRA begrÃĶnser smart den rang af denne opdateringsmatrix ved at splitte den i to mindre rangmatricer. SÃĨ i stedet for at ÃĶndre hele vÃĶgtmatrixen, ÃĶndrer den kun en del af den, hvilket gÃļr finjusteringsopgaven mere effektiv.

Applicer LoRA til Transformers

LoRA hjÃĶlper med at minimere trÃĶningsbelastningen i neurale netvÃĶrk ved at fokusere pÃĨ bestemte vÃĶgtmatricer. Under transformer-arkitekturen er visse vÃĶgtmatricer forbundet med selv-attention-mekanismen, navnlig Wq, Wk, Wv og Wo, samt to mere i Multi-Layer Perceptron (MLP)-modulen.

Transformers-arkitektur

Transformers-arkitektur

 

transformer attention heads

Transformer attention heads

Matematisk forklaring bag LoRA

Lad os bryde ned matematikken bag LoRA:

  1. ForudtrÃĶnet vÃĶgtmatrix :
    • Den starter med en forudtrÃĶnet vÃĶgtmatrix af dimensioner . Dette betyder, at matrixen har rÃĶkker og kolonner.
  2. Lav-rang dekomposition:
    • I stedet for at direkte opdatere hele matrixen , som kan vÃĶre beregningsmÃĶssigt dyrt, foreslÃĨr metoden en lav-rang dekompositions-tilgang.
    • Opdateringen til kan reprÃĶsenteres som et produkt af to matricer: og .
      • har dimensioner
      • har dimensioner
    • The key point here is that the rank is much smaller than both and , which allows for a more computationally efficient representation.
  3. TrÃĶning:
    • Under trÃĶningsprocessen forbliver uÃĶndret. Dette kaldes “frysning” af vÃĶgtene.
    • PÃĨ den anden side er og de trÃĶnende parametre. Dette betyder, at under trÃĶning foretages justeringer af matricerne og for at forbedre modellens prÃĶstation.
  4. Multiplication og addition:
    • Both and the update (which is the product of and ) are multiplied by the same input (denoted as ).
    • The outputs of these multiplications are then added together.
    • This process is summarized in the equation: Here, represents the final output after applying the updates to the input .

Kort sagt, denne metode giver mulighed for en mere effektiv mÃĨde at opdatere en stor vÃĶgtmatrix ved at reprÃĶsentere opdateringerne ved hjÃĶlp af en lav-rang dekomposition, hvilket kan vÃĶre fordelagtigt i forhold til beregnings-effektivitet og hukommelsesbrug.

LORA Animation

LORA

Initialisering og skala

NÃĨr man trÃĶner modeller, kan mÃĨden, hvorpÃĨ man initialiserer parametrene, have en betydelig indvirkning pÃĨ effektiviteten og effekten af lÃĶreprocessen. I sammenhÃĶng med vores vÃĶgtmatrixopdatering ved hjÃĶlp af og :

  1. Initialisering af matricer og :
    • Matrix : Denne matrix initialiseres med tilfÃĶldige Gaussiske vÃĶrdier, ogsÃĨ kendt som en normal distribution. Rationalet bag brug af Gaussisk initialisering er at bryde symmetrien: forskellige neuroner i samme lag vil lÃĶre forskellige funktioner, nÃĨr de har forskellige initialvÃĶgte.
    • Matrix : Denne matrix initialiseres med nul. Ved at gÃļre dette, starter opdateringen som nul i starten af trÃĶningen. Det sikrer, at der ikke er nogen pludselig ÃĶndring i modellens adfÃĶrd i starten, og tillader modellen at tilpasse sig gradvist, mens lÃĶrer passende vÃĶrdier under trÃĶning.
  2. Skala output fra :
    • Efter beregning af opdateringen , skal dens output skalaeres med en faktor pÃĨ hvor er en konstant. Ved skalaering kontrolleres stÃļrrelsen af opdateringerne.
    • Skalaeringen er sÃĶrligt vigtig, nÃĨr rangen ÃĶndres. For eksempel, hvis man beslutter at Ãļge rangen for mere nÃļjagtighed (til en pris af beregning), sikrer skalaeringen, at man ikke behÃļver at justere mange andre hyperparametre i processen. Det giver en niveau af stabilitet til modellen.

LoRA’s praktiske impact

LoRA har demonstreret sin potentiale til at justere LLM’er til bestemte kunstneriske stilarter effektivt af personer fra AI-fÃĶllesskabet. Dette blev bemÃĶrkelsesvÃĶrdigt demonstreret i tilpasningen af en model til at efterligne den kunstneriske stil af Greg Rutkowski.

Som fremhÃĶvet i papiret med GPT-3 175B som eksempel. At have individuelle eksemplarer af finjusterede modeller med 175B parametre hver er ret dyrt. Men med LoRA, falder de trÃĶnende parametre med 10.000 gange, og GPU-hukommelsesbrugen reduceres til en tredjedel.

LoRa impact pÃĨ GPT-3 Justering

LoRa impact pÃĨ GPT-3 Fine Justering

LoRA-metodologien udgÃļr ikke kun et betydeligt skridt mod at gÃļre LLM’er mere tilgÃĶngelige, men understreger ogsÃĨ potentialet for at brokke gapet mellem teoretiske fremskridt og praktiske anvendelser i AI-domÃĶnet. Ved at lette de beregningsmÃĶssige hindringer og fremme en mere effektiv modeltilpasningsproces, er LoRA godt positioneret til at spille en afgÃļrende rolle i den bredere anvendelse og implementering af LLM’er i virkelige scenarier.

QLoRA (Kvantificeret)

Selv om LoRA er et spilforvandler i reducering af lagerbehov, krÃĶver det stadig en kraftfuld GPU til at indlÃĶse modellen til trÃĶning. Her kommer QLoRA, eller Kvantificeret LoRA, ind i billedet, som en blanding af LoRA og kvantificering for en smartere tilgang.

Kvantificering

Kvantificering

Normalt er vÃĶgtparametre gemt i en 32-bit format (FP32), hvilket betyder, at hvert element i matrixen tager 32 bit plads. Forestil dig, hvis vi kunne komprimere den samme information ned i kun 8 eller endda 4 bit. Det er det centrale i QLoRA. Kvantificering refererer til processen med at kortlÃĶgge kontinuerte, uendelige vÃĶrdier til en mindre samling af diskrete, endelige vÃĶrdier. I sammenhÃĶng med LLM’er refererer det til processen med at konvertere modellens vÃĶgte fra hÃļjere prÃĶcisionsdatatyper til lavere prÃĶcisionsdatatyper.

Kvantificering i LLM

Kvantificering i LLM

Her er en mere enkel forklaring af QLoRA:

  1. Initial kvantificering: FÃļrst kvantificeres den store sprogmodel (LLM) ned til 4 bit, hvilket reducerer lageraftrykket betydeligt.
  2. LoRA-trÃĶning: Derefter udfÃļres LoRA-trÃĶning, men i standard 32-bit prÃĶcision (FP32).

Nu kan du undre dig over, hvorfor man gÃĨr tilbage til 32 bit til trÃĶning efter at have reduceret til 4 bit? Vel, for at trÃĶne LoRA-adaptere effektivt i FP32, skal modellens vÃĶgte ogsÃĨ gÃĨ tilbage til FP32. Denne skiftning frem og tilbage sker pÃĨ en smart, trin-for-trin-mÃĨde for at undgÃĨ at overbelaste GPU-hukommelsen.

LoRA finder sin praktiske anvendelse i Hugging Face Parameter Efficient Fine-Tuning (PEFT) bibliotek, hvilket simplificerer dets anvendelse. For dem, der sÃļger at bruge QLoRA, er det tilgÃĶngeligt gennem en kombination af bitsandbytes og PEFT biblioteker. Yderligere understÃļtter HuggingFace Transformer Reinforcement Learning (TRL) bibliotek overvÃĨget finjustering med integreret understÃļttelse for LoRA. Sammen udgÃļr disse tre biblioteker det essentielle vÃĶrktÃļj til finjustering af en valgt forudtrÃĶnet model, hvilket muliggÃļr generering af overbevisende og sammenhÃĶngende produktbeskrivelser, nÃĨr der gives specifikke attributinstruktioner.

Efter finjustering fra QLoRA skal vÃĶgtene gÃĨ tilbage til en hÃļjprÃĶcisionsformat, hvilket kan fÃļre til nÃļjagtighedstab og mangle optimering for at accelerere processen.

En foreslÃĨet lÃļsning er at gruppere vÃĶgtmatrixen i mindre segmenter og anvende kvantificering og lav-rang-tilpasning til hver gruppe individuelt. En ny metode, kaldet QA-LoRA, forsÃļger at kombinere fordelene ved kvantificering og lav-rang-tilpasning, mens processen forbliver effektiv og modellen forbliver effektiv for de Ãļnskede opgaver.

Konklusion

I denne artikel berÃļrte vi udfordringerne, der er forbundet med deres enorme parameterstÃļrrelse. Vi gik i dybden med traditionelle finjusteringspraktikker og deres associerede beregnings- og finansielle krav. Kernen i LoRA ligger i dens evne til at ÃĶndre forudtrÃĶnede modeller uden at gen-trÃĶne dem fuldstÃĶndigt, hvilket reducerer de trÃĶnende parametre og gÃļr tilpasningsprocessen mere omkostningseffektiv.

Vi gik ogsÃĨ kort over Kvantificeret LoRA (QLoRA), en blanding af LoRA og kvantificering, som reducerer lageraftrykket af modellen, mens den bevarede den essentielle prÃĶcision til trÃĶning. Med disse avancerede teknikker er praktikere nu udstyret med et robust bibliotek, der faciliterer en lettere anvendelse og implementering af LLM’er pÃĨ tvÃĶrs af et spektrum af virkelige scenarier.

Matrix

Matrix

Disse strategier er designet til at balancere mellem at gÃļre LLM’er tilpasselige for bestemte opgaver og sikre, at finjusterings- og implementeringsprocesserne ikke er for krÃĶvende i forhold til beregning og lagerressourcer.

Jeg har brugt de sidste fem ÃĨr pÃĨ at dykke ned i den fascinerende verden af Machine Learning og Deep Learning. Min passion og ekspertise har fÃļrt mig til at bidrage til over 50 forskellige software-ingeniÃļrprojekter, med en sÃĶrlig fokus pÃĨ AI/ML. Min fortsatte nysgerrighed har ogsÃĨ fÃļrt mig mod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.