Rask Engineering
Forstå LLM-finjustering: skreddersy store språkmodeller til dine unike krav

Som vi står i september 2023, er landskapet med store språkmodeller (LLMs) fortsatt vitne til fremveksten av modeller inkludert Alpakka, Falcon, Lama 2, GPT-4 og mange andre.
Et viktig aspekt ved å utnytte potensialet til disse LLM-ene ligger i finjusteringsprosessen, en strategi som gjør det mulig å tilpasse forhåndstrente modeller for å imøtekomme spesifikke oppgaver med presisjon. Det er gjennom denne finjusteringen at disse modellene virkelig kan tilpasse seg individuelle krav, og tilby løsninger som er både innovative og skreddersydde til unike behov.
Det er imidlertid viktig å merke seg at ikke alle finjusteringsveier er skapt like. For eksempel kommer tilgang til finjusteringsmulighetene til GPT-4 til en premie, og krever et betalt abonnement som er relativt dyrere sammenlignet med andre tilgjengelige alternativer på markedet. På den annen side er åpen kildekode-domenet fullt av alternativer som tilbyr en mer tilgjengelig vei for å utnytte kraften til store språkmodeller. Disse åpen kildekode-alternativene demokratiserer tilgangen til avansert AI-teknologi, og fremmer innovasjon og inkludering i det raskt utviklende AI-landskapet.
Hvorfor er finjustering av LLM viktig?
LLM finjustering er mer enn en teknisk forbedring; det er et avgjørende aspekt ved LLM-modellutvikling som gir mulighet for en mer spesifikk og raffinert applikasjon i ulike oppgaver. Finjustering justerer de forhåndstrente modellene for å passe bedre til spesifikke datasett, forbedrer ytelsen deres i bestemte oppgaver og sikrer en mer målrettet applikasjon. Det frembringer den bemerkelsesverdige evnen til LLM-er til å tilpasse seg nye data, og viser frem fleksibilitet som er avgjørende for den stadig økende interessen for AI-applikasjoner.
Finjustering av store språkmodeller åpner for mange muligheter, slik at de kan utmerke seg i spesifikke oppgaver som spenner fra sentimentanalyse til medisinsk litteraturgjennomgang. Ved å tilpasse basismodellen til et spesifikt bruksområde, låser vi opp nye muligheter, og forbedrer modellens effektivitet og nøyaktighet. Dessuten letter det en mer økonomisk utnyttelse av systemressurser, ettersom finjustering krever mindre beregningskraft sammenlignet med å trene en modell fra bunnen av.
Når vi går dypere inn i denne veiledningen, vil vi diskutere vanskelighetene ved finjustering av LLM, og gi deg en omfattende oversikt som er basert på de siste fremskrittene og beste praksis på feltet.
Instruksjonsbasert finjustering
Finjusteringsfasen i Generativ AI livssyklus, illustrert i figuren nedenfor, er preget av integrering av instruksjonsinnganger og -utganger, kombinert med eksempler på trinn-for-steg-resonnering. Denne tilnærmingen letter modellen i å generere svar som ikke bare er relevante, men som også er nøyaktig på linje med de spesifikke instruksjonene som er matet inn i den. Det er i denne fasen at de forhåndstrente modellene tilpasses for å løse forskjellige oppgaver og brukstilfeller, ved å bruke personaliserte datasett for å forbedre funksjonaliteten.
Enkelt-oppgave finjustering
Enkeltoppgave finjustering fokuserer på å finpusse modellens ekspertise i en spesifikk oppgave, for eksempel oppsummering. Denne tilnærmingen er spesielt gunstig for å optimalisere arbeidsflyter som involverer betydelige dokumenter eller samtaletråder, inkludert juridiske dokumenter og kundestøttebilletter. Bemerkelsesverdig nok kan denne finjusteringen oppnå betydelige ytelsesforbedringer med et relativt lite sett med eksempler, fra 500 til 1000, en kontrast til de milliarder av tokens som ble brukt i før-treningsfasen.
Grunnlaget for LLM Fine-Tuning LLM: Transformer Architecture and Beyond
Reisen for å forstå LLM finjustering begynner med en forståelse av de grunnleggende elementene som utgjør LLMs. I hjertet av disse modellene ligger transformatorarkitektur, et nevralt nettverk som utnytter selvoppmerksomhetsmekanismer for å prioritere konteksten til ord fremfor deres nærhet i en setning. Denne innovative tilnærmingen letter en dypere forståelse av fjerne forhold mellom tokens i input.
Når vi navigerer gjennom forviklingene til transformatorer, møter vi en flertrinnsprosess som begynner med koderen. Denne innledende fasen involverer tokenisering av inngangen og opprettelse av innebyggingsvektorer som representerer inngangen og dens posisjon i setningen. De påfølgende stadiene involverer en rekke beregninger ved bruk av matriser kjent som Query, Verdiog nøkkel, som kulminerer i en selvoppmerksomhetsscore som dikterer fokuset på ulike deler av setningen og ulike tokens.
Finjustering står som en kritisk fase i utviklingen av LLM-er, en prosess som innebærer å gjøre subtile justeringer for å oppnå mer ønskelige resultater. Selv om dette stadiet er essensielt, presenterer det et sett med utfordringer, inkludert beregnings- og lagringskravene for å håndtere et stort antall parametere. Parameter Efficient Fine-Tuning (PEFT) tilbyr teknikker for å redusere antall parametere som skal finjusteres, og dermed forenkle treningsprosessen.
LLM Pre-Training: Etablere en sterk base
I de innledende stadiene av LLM-utvikling er foropplæring sentralt, og bruker overparameteriserte transformatorer som grunnleggende arkitektur. Denne prosessen involverer modellering av naturlig språk på forskjellige måter som toveis, autoregressiv eller sekvens-til-sekvens på storskala uovervåket korpora. Målet her er å skape en base som senere kan finjusteres for spesifikke nedstrømsoppgaver gjennom innføring av oppgavespesifikke mål.
En bemerkelsesverdig trend på dette området er den uunngåelige økningen i omfanget av forhåndstrente LLM-er, målt ved antall parametere. Empiriske data viser konsekvent at større modeller kombinert med mer data nesten alltid gir bedre ytelse. For eksempel har GPT-3, med sine 175 milliarder parametere, satt en standard når det gjelder å generere naturlig språk av høy kvalitet og utføre et bredt spekter av zero-shot-oppgaver dyktig.
Finjustering: Veien til modelltilpasning
Etter foropplæringen gjennomgår LLM finjustering for å tilpasse seg spesifikke oppgaver. Til tross for den lovende ytelsen vist av kontekstlæring i ferdigtrente LLM-er som GPT-3, forblir finjustering overlegen i oppgavespesifikke innstillinger. Den utbredte tilnærmingen med finjustering av fulle parametere byr imidlertid på utfordringer, inkludert høye beregnings- og minnekrav, spesielt når man arbeider med modeller i stor skala.
For store språkmodeller med over en milliard parametere er effektiv administrasjon av GPU RAM avgjørende. En enkelt modellparameter med full 32-bits presisjon krever 4 byte plass, noe som betyr et krav på 4 GB GPU RAM bare for å laste en 1 milliard parametermodell. Selve treningsprosessen krever enda mer minne for å imøtekomme ulike komponenter, inkludert optimeringstilstander og gradienter, som potensielt krever opptil 80 GB GPU RAM for en modell av denne skalaen.
For å navigere i begrensningene til GPU RAM, brukes kvantisering som er en teknikk som reduserer presisjonen til modellparametere, og dermed reduserer minnekravene. For eksempel kan endring av presisjonen fra 32-bit til 16-bit halvere minnet som trengs for både lasting og trening av modellen. Senere i denne artikkelen. vi skal lære om Qlora som bruker kvantiseringskonseptet for tuning.
Utforske kategoriene til PEFT-metoder
I prosessen med å finjustere store språkmodeller er det viktig å ha et beregningsoppsett som effektivt kan håndtere ikke bare de betydelige modellvektene, som for de mest avanserte modellene nå når størrelser på hundrevis av gigabyte, men også administrere en rekke andre kritiske elementer. Disse inkluderer tildeling av minne for optimeringstilstander, håndtering av gradienter, fremadgående aktiveringer og tilrettelegging for midlertidig minne under ulike stadier av treningsprosedyren.
Additiv metode
Denne typen tuning kan forsterke den forhåndstrente modellen med flere parametere eller lag, med fokus på å trene kun de nylig lagt til parameterne. Til tross for å øke parameterantallet, forbedrer disse metodene treningstid og plasseffektivitet. Additivmetoden er videre delt inn i underkategorier:
- Adaptere: Inkorporerer små fullt tilkoblede nettverk etter transformatorunderlag, med bemerkelsesverdige eksempler er AdamMix, KronA, og Compactor.
- Myke meldinger: Finjustering av et segment av modellens input-embeddings gjennom gradientnedstigning, med IPT, prefiks-tuning, og WARP er fremtredende eksempler.
- Andre additive tilnærminger: Inkluder teknikker som LeTS, AttentionFusion og Ladder-Side Tuning.
Selektiv metode
Selektive PEFT-er finjusterer et begrenset antall topplag basert på lagtype og intern modellstruktur. Denne kategorien inkluderer metoder som BitFit og LN tuning, som fokuserer på tuning av spesifikke elementer som modellskjevheter eller bestemte rader.
Reparametriseringsbasert metode
Disse metodene bruker lavrangsrepresentasjoner for å redusere antall trenbare parametere, med den mest kjente er Low-Rank Adaptation eller LoRA. Denne metoden utnytter en enkel nedbrytning av matrise med lav rangering for å parameterisere vektoppdateringen, og demonstrerer effektiv finjustering i underrom med lav rangering.
1) LoRA (tilpasning med lav rang)
LoRA dukket opp som en banebrytende PEFT-teknikk, introdusert i en artikkel av Edward J. Hu og andre i 2021. Den opererer innenfor reparameteriseringskategorien, fryser de opprinnelige vektene til LLM og integrerer nye trenbare lavrangerte matriser i hvert lag av Transformer-arkitekturen. Denne tilnærmingen reduserer ikke bare antallet trenerbare parametere, men reduserer også treningstiden og beregningsressursene som er nødvendige, og presenterer dermed et mer effektivt alternativ til full finjustering.
For å forstå mekanikken til LoRA, må man gå tilbake til transformatorarkitekturen der inngangsmeldingen gjennomgår tokenisering og konvertering til innebygde vektorer. Disse vektorene går gjennom koder- og/eller dekodersegmentene til transformatoren, og møter selvoppmerksomhet og fremmatingsnettverk hvis vekter er forhåndstrenet.
LoRA bruker begrepet Singular Value Decomposition (SVD). I hovedsak dissekerer SVD en matrise i tre distinkte matriser, hvorav den ene er en diagonal matrise som inneholder entallsverdier. Disse entallsverdiene er sentrale ettersom de måler betydningen av forskjellige dimensjoner i matrisene, med større verdier som indikerer høyere betydning og mindre angir mindre betydning.
Denne tilnærmingen lar LoRA opprettholde de essensielle egenskapene til dataene samtidig som den reduserer dimensjonaliteten, og optimaliserer dermed finjusteringsprosessen.
LoRA griper inn i denne prosessen, fryser alle originale modellparametre og introduserer et par "rangnedbrytningsmatriser" sammen med de originale vektene. Disse mindre matrisene, betegnet som A og B, gjennomgår opplæring gjennom veiledet læring.
Det sentrale elementet i denne strategien er parameteren kalt rang ('r'), som dikterer størrelsen på matrisene med lav rangering. Et omhyggelig utvalg av 'r' kan gi imponerende resultater, selv med en mindre verdi, og dermed skape en lav rangert matrise med færre parametere å trene. Denne strategien er effektivt implementert ved å bruke åpen kildekode-biblioteker som HuggingFace Transformers, noe som letter LoRA-finjustering for ulike oppgaver med bemerkelsesverdig effektivitet.
2) QLoRA: Tar LoRA-effektiviteten høyere
QLoRA bygger på grunnlaget lagt av LoRA, og minimerer minnekravene ytterligere. Introdusert av Tim Dettmers og andre i 2023, den kombinerer lavrangstilpasning med kvantisering, og bruker et 4-bits kvantiseringsformat kalt NormalFloat or nf4. Kvantisering er i hovedsak en prosess som overfører data fra en høyere informasjonsrepresentasjon til en med mindre informasjon. Denne tilnærmingen opprettholder effektiviteten til 16-bits finjusteringsmetoder, og avkvantiserer 4-bits vekter til 16-biter som nødvendig under beregningsprosesser.

Sammenligning av finjusteringsmetoder: QLORA forbedrer LoRA med 4-bits presisjonskvantisering og sidede optimerere for håndtering av minnespikes
QLoRA utnytter NumericFloat4 (nf4), retter seg mot hvert lag i transformatorarkitekturen, og introduserer konseptet med dobbel kvantisering for ytterligere å krympe minnefotavtrykket som kreves for finjustering. Dette oppnås ved å utføre kvantisering på de allerede kvantiserte konstantene, en strategi som avverger typiske gradient-sjekkpunktminnespiker gjennom bruk av sideoptimalisatorer og enhetlig minneadministrasjon.
guanaco, som er et QLORA-innstilt ensemble, setter en standard i åpen kildekode chatbot-løsninger. Dens ytelse, validert gjennom systematiske menneskelige og automatiserte vurderinger, understreker dens dominans og effektivitet i feltet.
65B- og 33B-versjonene av Guanaco, finjustert ved å bruke en modifisert versjon av OASST1 datasett, fremstå som formidable utfordrere til kjente modeller som ChatGPT og til og med GPT-4.
Finjustering ved hjelp av Reinforcement Learning from Human Feedback
Forsterkning Learning from Human Feedback (RLHF) kommer inn i bildet når man finjusterer ferdigtrente språkmodeller for å tilpasse seg mer menneskelige verdier. Dette konseptet ble introdusert av Open AI i 2017 og la grunnlaget for forbedret dokumentoppsummering og utvikling av InstruerGPT.
Kjernen i RLHF er forsterkningslæringsparadigmet, en type maskinlæringsteknikk der en agenten lærer hvordan man oppfører seg i en miljø ved å opptre handlinger og mottar belønninger. Det er en kontinuerlig sløyfe av handling og tilbakemelding, hvor agenten er incentivert til å ta valg som vil gi den høyeste belønningen.
Å oversette dette til språkmodellenes rike agenten er den modell selv, som opererer innenfor miljø av et gitt kontekstvindu og ta beslutninger basert på stat, som er definert av gjeldende tokens i kontekstvinduet. «handlingsrom” omfatter alle potensielle tokens modellen kan velge mellom, med målet å velge det tokenet som stemmer best med menneskelige preferanser.
RLHF-prosessen utnytter menneskelig tilbakemelding i stor grad, og bruker den til å trene en belønningsmodell. Denne modellen spiller en avgjørende rolle i å veilede den forhåndstrente modellen under finjusteringsprosessen, og oppmuntrer den til å generere resultater som er mer på linje med menneskelige verdier. Det er en dynamisk og iterativ prosess, der modellen lærer gjennom en serie «utrullinger», et begrep som brukes for å beskrive sekvensen av tilstander og handlinger som fører til en belønning i sammenheng med språkgenerering.
Et av de bemerkelsesverdige potensialene til RLHF er dens evne til å fremme personalisering i AI-assistenter, skreddersy dem til å resonere med individuelle brukeres preferanser, enten det er deres sans for humor eller daglige rutiner. Det åpner muligheter for å lage AI-systemer som ikke bare er teknisk dyktige, men også følelsesmessig intelligente, i stand til å forstå og svare på nyanser i menneskelig kommunikasjon.
Det er imidlertid viktig å merke seg at RLHF ikke er en idiotsikker løsning. Modellene er fortsatt mottakelige for å generere uønskede utdata, en refleksjon av de enorme og ofte uregulerte og partiske dataene de er trent på.
Konklusjon
Finjusteringsprosessen, et kritisk skritt for å utnytte det fulle potensialet til LLM-er som Alpaca, Falcon og GPT-4, har blitt mer raffinert og fokusert, og tilbyr skreddersydde løsninger for et bredt spekter av oppgaver.
Vi har sett enkelt-oppgave finjustering, som spesialiserer seg på modeller i bestemte roller, og Parameter-Efficient Fine-Tuning (PEFT) metoder inkludert LoRA og QLoRA, som har som mål å gjøre treningsprosessen mer effektiv og kostnadseffektiv. Denne utviklingen åpner dører til AI-funksjoner på høyt nivå for et bredere publikum.
Videre er introduksjonen av Reinforcement Learning from Human Feedback (RLHF) av Open AI et skritt mot å skape AI-systemer som forstår og tilpasser seg tettere med menneskelige verdier og preferanser, og setter scenen for AI-assistenter som ikke bare er smarte, men også sensitive for individuelle brukers behov. Både RLHF og PEFT jobber i synergi for å forbedre funksjonaliteten og effektiviteten til store språkmodeller.
Ettersom bedrifter, bedrifter og enkeltpersoner ser etter å integrere disse finjusterte LLM-ene i sin virksomhet, ønsker de i hovedsak en fremtid der AI er mer enn et verktøy velkommen; det er en partner som forstår og tilpasser seg menneskelige kontekster, og tilbyr løsninger som er innovative og personlige.