Følg os

Kunstig intelligens

LoRa, QLoRA og QA-LoRA: Effektiv tilpasningsevne i store sprogmodeller gennem lav-rangeret matrixfaktorisering

mm
LoRA: Lav-rangs tilpasning af store sprogmodeller

Store sprogmodeller (LLM'er) har skåret en unik niche, der tilbyder uovertrufne evner til at forstå og generere menneskelignende tekst. Styrken ved LLM'er kan spores tilbage til deres enorme størrelse, som ofte har milliarder af parametre. Mens denne enorme skala giver næring til deres præstationer, giver den samtidig udfordringer, især når det kommer til modeltilpasning til specifikke opgaver eller domæner. De konventionelle veje til styring af LLM'er, såsom finjustering af alle parametre, udgør en stor beregningsmæssig og økonomisk vejafgift, og udgør dermed en betydelig barriere for deres udbredte anvendelse i applikationer i den virkelige verden.

I en forrige artikel, dykkede vi ned i finjustering af store sprogmodeller (LLM'er) for at skræddersy dem til specifikke krav. Vi udforskede forskellige finjusteringsmetoder såsom instruktionsbaseret finjustering, enkeltopgavefinjustering og parametereffektiv finjustering (PEFT), hver med sin unikke tilgang til optimering af LLM'er til forskellige opgaver. Centralt i diskussionen var transformatorarkitekturen, rygraden i LLM'er og udfordringerne som følge af beregnings- og hukommelseskravene ved at håndtere et stort antal parametre under finjustering.

Parametre i LLM

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

Ovenstående billede repræsenterer skalaen af ​​forskellige store sprogmodeller, sorteret efter deres antal parametre. Især: Håndflade, BLOMSTER, etc.

Fra i år har der været fremskridt, der har ført til endnu langt større modeller. At tune sådanne gigantiske open source-modeller på standardsystemer er imidlertid umuligt uden specialiserede optimeringsteknikker.

Enter Low-Rank Adaptation (LoRA) blev introduceret af Microsoft i dette papir, med det formål at afbøde disse udfordringer og gøre LLM'er mere tilgængelige og tilpasningsdygtige.

Kernen i LoRA ligger i dens tilgang til modeltilpasning uden at dykke ned i forviklingerne ved at genoptræne hele modellen. I modsætning til traditionel finjustering, hvor alle parametre kan ændres, anvender LoRA en smartere rute. Den fryser de forudtrænede modelvægte og introducerer trenerbare rangnedbrydningsmatricer i hvert lag af Transformer-arkitekturen. Denne tilgang reducerer drastisk antallet af parametre, der kan trænes, og sikrer en mere effektiv tilpasningsproces.

Udviklingen af ​​LLM-tuningstrategier

Når man reflekterer over rejsen med LLM-tuning, kan man identificere flere strategier anvendt af praktikere gennem årene. I første omgang var fokus på at finjustere de fortrænede modeller, en strategi, der indebærer en omfattende ændring af modelparametre, så de passer til den konkrete opgave. Men efterhånden som modellerne voksede i størrelse og kompleksitet, voksede de beregningsmæssige krav til denne tilgang.

Den næste strategi, der vandt trækkraft, var subset finjustering, en mere behersket version af sin forgænger. Her er kun en delmængde af modellens parametre finjusteret, hvilket reducerer beregningsbyrden til en vis grad. På trods af sine fordele var finjustering af undergrupper stadig ikke i stand til at følge med vækstraten i størrelsen af ​​LLM'er.

EfterhĂĄnden som praktikere vovede at udforske mere effektive veje, opstod fuld finjustering som en stringent, men alligevel givende tilgang.

Introduktion til LoRA

Rangeringen af ​​en matrix giver os et indblik i de dimensioner, der skabes af dens kolonner, som bestemmes af antallet af unikke rækker eller kolonner, den har.

  • Full-Rank Matrix: Dens rangering matcher det mindste tal mellem dens rækker eller kolonner.
  • Low-Rank Matrix: Med en rang, der er væsentligt mindre end bĂĄde række- og kolonneantal, fanger den færre funktioner.

Nu forstår store modeller en bred forståelse af deres domæne, ligesom sprog i sprogmodeller. Men finjustering af dem til specifikke opgaver behøver ofte kun at fremhæve en lille del af disse forståelser. Her er hvor LoRA skinner. Det antyder, at matrixen, der viser disse vægtjusteringer, kan være en lav rang, og dermed fange færre funktioner.

LoRA begrænser på en smart måde rangeringen af ​​denne opdateringsmatrix ved at opdele den i to mindre rangmatricer. Så i stedet for at ændre hele vægtmatricen, ændrer den kun en del af den, hvilket gør finjusteringsopgaven mere effektiv.

Anvendelse af LoRA til transformere

LoRA hjælper med at minimere træningsbelastningen i neurale netværk ved at fokusere på specifikke vægtmatricer. Under Transformer-arkitektur er visse vægtmatricer forbundet med selvopmærksomhedsmekanismen, nemlig Wq, Wk, Wv og Wo, foruden to mere i Multi-Layer Perceptron (MLP) modulet.

Transformers-arkitektur

Transformers arkitektur

 

transformator opmærksomhedshoveder

Transformer opmærksomhedshoveder

Matematisk forklaring behing LoRA

Lad os nedbryde matematikken bag LoRA:

  1. Foruddannet vægtmatrix :
    • Det starter med en fortrænet vægtmatrix af dimensioner . Det betyder, at matrixen har rækker og kolonner.
  2. Nedbrydning af lav rang:
    • I stedet for direkte at opdatere hele matrixen , hvilket kan være beregningsmæssigt dyrt, foreslĂĄr metoden en nedbrydningstilgang med lav rang.
    • Opdateringen til kan repræsenteres som et produkt af to matricer: og .
      • har dimensioner
      • har dimensioner
    • Det centrale punkt her er, at rang er meget mindre end begge og , som giver mulighed for en mere beregningsmæssig effektiv repræsentation.
  3. Kurser:
    • Under uddannelsesprocessen, forbliver uændret. Dette kaldes "frysning" af vægtene.
    • PĂĄ den anden side, og er de trænebare parametre. Det betyder, at der under træningen justeres i matricerne og at forbedre modellens ydeevne.
  4. Multiplikation og addition:
    • BĂĄde og opdateringen (som er produktet af og ) ganges med det samme input (betegnet som ).
    • Udgangene af disse multiplikationer lægges derefter sammen.
    • Denne proces er opsummeret i ligningen: Her, repræsenterer det endelige output efter at have anvendt opdateringerne til inputtet .

Kort sagt giver denne metode mulighed for en mere effektiv måde at opdatere en matrix med stor vægt ved at repræsentere opdateringerne ved hjælp af en nedbrydning med lav rang, hvilket kan være gavnligt med hensyn til beregningseffektivitet og hukommelsesforbrug.

LORA animation

LORA

Initialisering og skalering:

Når vi træner modeller, kan hvordan vi initialiserer parametrene i væsentlig grad påvirke effektiviteten og effektiviteten af ​​læringsprocessen. I forbindelse med vores vægtmatrixopdatering ved hjælp af og :

  1. Initialisering af matricer og :
    • Matrix : Denne matrix initialiseres med tilfældige Gauss-værdier, ogsĂĄ kendt som en normalfordeling. Rationalet bag brugen af ​​Gaussisk initialisering er at bryde symmetrien: forskellige neuroner i det samme lag vil lære forskellige funktioner, nĂĄr de har forskellig initial vægt.
    • Matrix : Denne matrix initialiseres med nuller. Ved at gøre dette, opdateringen starter som nul i begyndelsen af ​​træningen. Det sikrer, at der ikke er nogen pludselig ændring i modellens adfærd i starten, hvilket gør det muligt for modellen gradvist at tilpasse sig som lærer passende værdier under træningen.
  2. Skalering af output fra :
    • Efter at have beregnet opdateringen , dens output skaleres med en faktor pĂĄ hvor er en konstant. Ved skalering styres størrelsen af ​​opdateringerne.
    • Skaleringen er især afgørende, nĂĄr rangeringen ændringer. For eksempel, hvis du beslutter dig for at øge rangeringen for mere nøjagtighed (pĂĄ bekostning af beregningen), sikrer skaleringen, at du ikke behøver at justere mange andre hyperparametre i processen. Det giver et niveau af stabilitet til modellen.

LoRAs praktiske effekt

LoRA har demonstreret sit potentiale til at tune LLM'er til specifikke kunstneriske stilarter effektivt af folk fra AI-fællesskabet. Dette blev især vist i tilpasningen af ​​en model til at efterligne den kunstneriske stil Greg Rutkowski.

Lige så høj i avisen med GPT-3 175B som eksempel. Det er ret dyrt at have individuelle forekomster af finjusterede modeller med hver 175B parametre. Men med LoRA falder de trenbare parametre med 10,000 gange, og GPU-hukommelsesforbruget er trimmet ned til en tredjedel.

LoRa indvirkning pĂĄ GPT-3 Tuning

LoRa indvirkning pĂĄ GPT-3 Fine Tuning

LoRA-metoden inkarnerer ikke kun et betydeligt skridt hen imod at gøre LLM'er mere tilgængelige, men understreger også potentialet til at bygge bro mellem teoretiske fremskridt og praktiske anvendelser i AI-domænet. Ved at afhjælpe de beregningsmæssige forhindringer og fremme en mere effektiv modeltilpasningsproces er LoRA klar til at spille en central rolle i den bredere indførelse og udrulning af LLM'er i scenarier i den virkelige verden.

QLoRA (kvantiseret)

Selvom LoRA er en game-changer i at reducere lagerbehov, kræver det stadig en heftig GPU for at indlæse modellen til træning. Her træder QLoRA, eller Quantized LoRA, ind og blander LoRA med Quantization for en smartere tilgang.

kvantisering

kvantisering

Normalt gemmes vægtparametre i et 32-bit format (FP32), hvilket betyder, at hvert element i matrixen optager 32 bits plads. Forestil dig, hvis vi kunne presse den samme information til kun 8 eller endda 4 bits. Det er kerneideen bag QLoRA. Kvantisering refererer til processen med at kortlægge kontinuerlige uendelige værdier til et mindre sæt af diskrete endelige værdier. I forbindelse med LLM'er refererer det til processen med at konvertere modellens vægte fra datatyper med højere præcision til datatyper med lavere præcision.

Kvantisering i LLM

Kvantisering i LLM

Her er en enklere opdeling af QLoRA:

  1. Indledende kvantisering: For det første er Large Language Model (LLM) kvantiseret ned til 4 bit, hvilket reducerer hukommelsesfodaftrykket 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 gå tilbage til 32 bit til træning efter at være skrumpet ned til 4 bit? Nå, for effektivt at træne LoRA-adaptere i FP32, skal modelvægtene også vende tilbage til FP32. Denne skift frem og tilbage sker på en smart, trin-for-trin måde for at undgå at overvælde GPU-hukommelsen.

LoRA finder sin praktiske anvendelse i Hugging Face Parameter Efficient Fine-Tuning (PEFT) bibliotek, hvilket forenkler dets brug. For dem, der ønsker at bruge QLoRA, er det tilgængeligt gennem en kombination af bitsandbytes og PEFT-biblioteker. Derudover HuggingFace Transformer Reinforcement Learning (TRL) bibliotek letter overvåget finjustering med en integreret støtte til LoRA. Tilsammen giver disse tre biblioteker det væsentlige værktøjssæt til at finjustere en udvalgt præ-trænet model, hvilket muliggør generering af overbevisende og sammenhængende produktbeskrivelser, når du bliver bedt om det med specifikke egenskabsinstruktioner.

Efter finjustering fra QLoRA skal vægtene vende tilbage til et højpræcisionsformat, hvilket kan føre til nøjagtighedstab og mangler optimering for at fremskynde processen.

En foreslået løsning er at gruppere vægtmatricen i mindre segmenter og anvende kvantisering og lav-rangstilpasning til hver gruppe individuelt. En ny metode, navngivet QA-LoRA, forsøger at blande fordelene ved kvantisering og lav-rang tilpasning, samtidig med at processen er effektiv og modellen effektiv til de ønskede opgaver.

Konklusion

I denne artikel kom vi ind på de udfordringer, som deres enorme parameterstørrelse udgør. Vi dykkede ned i traditionel finjusteringspraksis og deres tilhørende beregningsmæssige og økonomiske krav. Kernen i LoRA ligger i dens evne til at modificere præ-trænede modeller uden at omskole dem helt, og derved reducere de oplærbare parametre og gøre tilpasningsprocessen mere omkostningseffektiv.

Vi dykkede også kort ned i Quantized LoRA (QLoRA), en blanding af LoRA og Quantization, som reducerer modellens hukommelsesfodaftryk, mens den bevarer den essentielle præcision til træning. Med disse avancerede teknikker er praktiserende læger nu udstyret med et robust bibliotek, der letter den nemmere indførelse og udrulning af LLM'er på tværs af et spektrum af scenarier i den virkelige verden.

Matrix

Matrix

Disse strategier er udformet til at balancere mellem at gøre LLM'er tilpasselige til specifikke opgaver og at sikre, at finjusterings- og implementeringsprocesserne ikke er alt for krævende med hensyn til beregnings- og lagerressourcer.

Jeg har brugt de sidste fem år på at fordybe mig 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 engineering projekter, med særligt fokus på AI/ML. Min vedvarende nysgerrighed har også trukket mig hen imod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.