Prompt engineering
Forståelse av LLM-finetuning: Tilpassing store språkmodeller til dine unike krav

Som vi står i september 2023, er landskapet av store språkmodeller (LLM) fortsatt vitne til oppblomstringen av modeller som Alpaca, Falcon, Llama 2, GPT-4 og mange andre.
En viktig del av å utnytte potensialet i disse LLM ligger i finjusteringsprosessen, en strategi som gjør det mulig å tilpasse forhånds trenede modeller til spesifikke oppgaver med presisjon. Det er gjennom denne finjusteringen at disse modellene kan virkelig tilpasse seg individuelle krav, og tilby løsninger som er både innovative og tilpasset unike behov.
Det er imidlertid essensielt å merke seg at ikke alle finjusteringsmuligheter er like. For eksempel, å få tilgang til finjusteringsmulighetene i GPT-4 kommer med en premie, og krever en betalt abonnement som er relativt mer dyrt sammenlignet med andre alternativer som er tilgjengelige på markedet. På den andre siden, er det åpne kildekodemiljøet fullt av alternativer som tilbyr en mer tilgjengelig vei til å utnytte kraften av store språkmodeller. Disse åpne kildekodemulighetene demokratiserer tilgangen til avansert AI-teknologi, og fremmer innovasjon og inklusjon i det raskt utviklende AI-landskapet.
Hvorfor er LLM-finetuning viktig?
LLM-finetuning er mer enn en teknisk forbedring; det er en avgjørende del av LLM-modellutvikling som gjør det mulig å bruke modellene i en mer spesifikk og finjustert måte i ulike oppgaver. Finjustering justerer forhånds trenede modeller for å bedre tilpasse seg spesifikke datasamlinger, og forbedrer deres ytelse i bestemte oppgaver, og sikrer en mer målrettet anvendelse. Det åpner opp for en bemerkelsesverdig evne hos LLM å tilpasse seg ny data, og viser en fleksibilitet som er avgjørende i den økende interessen for AI-anvendelser.
Finjustering av store språkmodeller åpner opp mange muligheter, og gjør det mulig for dem å utmerke seg i spesifikke oppgaver som varierer fra sentimentanalyse til gjennomgang av medisinske litteratur. Ved å finjustere basismodellen for en spesifik anvendelse, åpner vi opp for nye muligheter, og forbedrer modellens effisiens og nøyaktighet. I tillegg gjør det det mulig å bruke systemressursene på en mer økonomisk måte, siden finjustering krever mindre beregningskraft sammenlignet med å trene en modell fra scratch.
Som vi går dyptere inn i denne guiden, vil vi diskutere finjusteringsdetaljene til LLM, og gi deg en omfattende oversikt som er basert på de siste fremgangene og beste praksisene i feltet.
Finjustering basert på instruksjoner
Finjusteringsfasen i den generative AI-livssyklusen, illustrert i figuren nedenfor, er karakterisert av integrering av instruksjonsinndata og -utdata, sammen med eksempler på trinnvis resonnering. Denne tilnærmingen gjør det mulig for modellen å generere svar som ikke bare er relevante, men også nøyaktig tilpasset de spesifikke instruksjonene som er gitt til den. Det er under denne fasen at de forhånds trenede modellene tilpasses for å løse distinkte oppgaver og anvendelser, ved å bruke personlige datasamlinger for å forbedre deres funksjonalitet.
Finjustering for enkeltoppgaver
Finjustering for enkeltoppgaver fokuserer på å utvikle modellens ekspertise i en spesifik oppgave, som for eksempel sammenfatting. Denne tilnærmingen er spesielt nyttig for å optimalisere arbeidsflyter som involverer betydelige dokumenter eller samtaletråder, inkludert juridiske dokumenter og kundesupportbilletter. Det er bemerkelsesverdig at denne finjusteringen kan oppnå betydelige ytelsesforbedringer med en relativt liten samling av eksempler, som varierer fra 500 til 1000, i kontrast til de milliarder av token som brukes i forhåndstreningsfasen.
Grunnleggende aspekter av LLM-finetuning: Transformer-arkitektur og utover
Reisen for å forstå LLM-finetuning begynner med å forstå de grunnleggende elementene som utgjør LLM. I hjertet av disse modellene ligger transformer-arkitekturen, et neuralt nettverk som utnytter selv-oppmerksomhetsmekanismer for å prioritere konteksten til ord over deres nærhet i en setning. Denne innovative tilnærmingen gjør det mulig for en dypere forståelse av fjerne relasjoner mellom token i inndata.
Som vi går gjennom detaljene i transformerne, møter vi en flertrinnsprosess som begynner med encoderen. Denne innledende fasen involverer tokenisering av inndata og opprettelse av innbedningsvektorer som representerer inndata og dens posisjon i setningen. De påfølgende stadiene involverer en rekke beregninger som bruker matriser kjent som Spørsmål, Verdi og Nøkkel, som kulminerer i en selv-oppmerksomhetspoeng som dikterer fokus på ulike deler av setningen og ulike token.
Finjustering står som en kritisk fase i utviklingen av LLM, en prosess som innebærer å gjøre små justeringer for å oppnå mer ønskede utdata. Denne fasen, selv om den er essensiell, presenterer en rekke utfordringer, inkludert de beregningsmessige og lagringsmessige kravene til å håndtere et stort antall parametre. Parameter-Efficient Finjustering (PEFT) tilbyr teknikker for å redusere antallet parametere som skal finjusteres, og dermed forenkle treningsprosessen.
LLM-forhåndstrenning: Etablering av en sterk base
I de innledende stadiene av LLM-utvikling, står forhåndstrenning i sentrum, og utnytter over-parametriserte transformerer som den grunnleggende arkitekturen. Denne prosessen involverer modellering av naturlig språk på ulike måter, som for eksempel to-veis, autoregressiv eller sekvens-til-sekvens på store, usuperviserte korpus. Målet her er å skape en base som kan finjusteres senere for spesifikke nedstrømsoppgaver gjennom introduksjon av oppgave-spesifikke mål.
En merkbart trend i denne sfæren er den uunngåelige økningen i skalaen av forhånds trenede LLM, målt i antallet parametre. Empiriske data viser konsekvent at større modeller kombinert med mer data nesten alltid resulterer i bedre ytelse. For eksempel, har GPT-3, med sine 175 milliarder parametre, satt en standard for å generere høykvalitets naturlig språk og utføre en rekke nullskotsoppgaver effektivt.
Finjustering: Veien til modelltilpasning
Etter forhåndstrenning, gjennomgår LLM finjustering for å tilpasse seg spesifikke oppgaver. Til tross for den lovende ytelsen vist av kontekstlæring i forhånds trenede LLM som GPT-3, forblir finjustering overlegen i oppgave-spesifikke settinger. Imidlertid presenterer den vanlige tilnærmingen til full parameterfinjustering utfordringer, inkludert høye beregningsmessige og minnekrav, spesielt når det gjelder store modeller.
For store språkmodeller med over en milliard parametre, er effektivt minnehåndtering av GPU-RAM avgjørende. En enkelt modellparameter på full 32-bits presisjon krever 4 byte plass, noe som oversetter til et krav på 4 GB GPU-RAM bare for å laste en 1 milliard parametermodell. Den faktiske treningsprosessen krever enda mer minne for å håndtere ulike komponenter, inkludert optimizer-tilstander og grader, potensielt krever opp til 80 GB GPU-RAM for en modell av denne skalaen.
For å navigere begrensningene til GPU-RAM, brukes kvantisering, en teknikk som reduserer presisjonen til modellparametre, og dermed minsker minnekrev. For eksempel, å endre presisjonen fra 32-bits til 16-bits kan halvere minnekrevet for både å laste og trene modellen. Senere i denne artikkelen vil vi lære om QLoRA, som bruker kvantiseringsteknikken for finjustering.
Utforskning av PEFT-metoder
I prosessen med å fullstendig finjustere store språkmodeller, er det viktig å ha en beregningsoppsett som kan håndtere ikke bare de betydelige modellvektene, som for de mest avanserte modellene nå når størrelser på flere hundre gigabyte, men også håndtere en rekke andre kritiske elementer. Disse inkluderer tildeling av minne for optimizer-tilstander, håndtering av grader, fremover-aktiveringer og midlertidig minne under ulike stadier av treningsprosessen.
Additiv metode
Denne type finjustering kan utvide forhånds trenede modeller med ekstra parametre eller lag, og fokusere på å trene bare de nytt tilføyde parameterne. Til tross for å øke parameterantallet, forbedrer disse metodene trenings tid og plass effisiens. Additiv metode er videre delt inn i underkategorier:
- Adaptorer: Inkorporerer små fullstendig tilkoblede nettverk etter transformer-underlag, med bemerkelsesverdige eksempler som AdaMix, KronA og Compactor.
- Myke promter: Finjusterer en del av modellens inndata-embeddings gjennom gradient-forfall, med IPT, prefix-tuning og WARP som fremtredende eksempler.
- Andre additive tilnærminger: Inkluderer teknikker som LeTS, AttentionFusion og Ladder-Side Tuning.
Selektiv metode
Selektive PEFT finjusterer en begrenset mengde av topp-lag basert på lag-type og intern modellstruktur. Denne kategorien inkluderer metoder som BitFit og LN-tuning, som fokuserer på å finjustere spesifikke elementer som modell-forvrengninger eller bestemte rader.
Reparametriseringsbasert metode
Disse metodene utnytter lav-rank-representasjoner for å redusere antallet trenebare parametre, med den mest kjente være Lav-Rank-Adaptasjon eller LoRA. Denne metoden utnytter en enkel lav-rank-matrise-dekomposisjon for å parameterisere vekt-oppdateringen, og demonstrerer effektiv finjustering i lav-rank-underrom.
1) LoRA (Lav-Rank-Adaptasjon)
LoRA oppstod som en banebrytende PEFT-teknikk, introdusert i en artikkel av Edward J. Hu og andre i 2021. Den opererer innen reparametriseringskategorien, og frys den opprinnelige vekten til LLM, og integrerer nye trenebare lav-rank-matriser i hver lag av transformer-arkitekturen. Denne tilnærmingen reduserer ikke bare antallet trenebare parametre, men også trenings-tiden og beregnings-krevende ressurser, og presenterer en mer effektiv alternativ til full finjustering.
For å forstå mekanismene til LoRA, må man gå tilbake til transformer-arkitekturen, hvor inndata-prompten gjennomgår tokenisering og konvertering til innbedningsvektorer. Disse vektorene går gjennom encoder- og/eller decoder-deler av transformer, og møter selv-oppmerksomhets- og feed-forward-nettverk, hvis vekter er forhånds trenet.
LoRA utnytter konseptet Singular Value Decomposition (SVD). I essensen deler SVD en matrise inn i tre distinkte matriser, en av dem er en diagonal-matrise som inneholder singular-verdier. Disse singular-verdiene er avgjørende, da de måler betydningen av ulike dimensjoner i matrisene, med større verdier som indikerer høyere betydning og mindre verdier som indikerer lavere betydning.
Denne tilnærmingen gjør det mulig for LoRA å beholde de essensielle karakteristikkene til dataene, samtidig som den reduserer dimensjonaliteten, og dermed optimaliserer finjusteringsprosessen.
LoRA griper inn i denne prosessen, og frys alle opprinnelige modellparametre, og introduserer et par “rang-dekomposisjonsmatriser” sammen med de opprinnelige vektene. Disse mindre matrisene, betegnet som A og B, gjennomgår trening gjennom overvåket læring.
Det avgjørende elementet i denne strategien er parameteren kalt “rang” (‘r’), som dikterer størrelsen på lav-rank-matrisene. En nøye valg av ‘r’ kan gi imponerende resultater, selv med en mindre verdi, og dermed skape en lav-rank-matrise med færre parametre å trene. Denne strategien har vært effektivt implementert ved å bruke åpne kildekodeliblioteker som HuggingFace Transformers, og har facilitert LoRA-fijustering for ulike oppgaver med bemerkelsesverdig effisiens.
2) QLoRA: Økende LoRA-effisiens
Bygget på grunnlaget lagt av LoRA, minsker QLoRA ytterligere minnekrev. Introdusert av Tim Dettmers og andre i 2023, kombinerer den lav-rank-tilpasning med kvantisering, og anvender en 4-bits kvantisering-format betegnet som NormalFloat eller nf4. Kvantiseringsprosessen er i essensen en prosess som overfører data fra en høyere informasjonsrepresentasjon til en med mindre informasjon. Denne tilnærmingen beholder effikasiteten til 16-bits finjusteringsmetoder, og dekvantisering av 4-bits vekter til 16-bits når det er nødvendig under beregningsprosesser.
QLoRA utnytter NumericFloat4 (nf4), og retter seg mot hver lag i transformer-arkitekturen, og introduserer konseptet dobbel-kvantiseringsfor å ytterligere redusere minneavtrykket som kreves for finjustering. Dette oppnås ved å utføre kvantisering på allerede kvantiserte konstanter, en strategi som unngår vanlige gradient- checkpoint-minnespik, ved å bruke paginerte optimisatorer og samordnet minnehåndtering.
Guanaco, som er en QLoRA-fijustert ensemble, setter en standard i åpne kildekodemuligheter for chatbot-løsninger. Dens ytelse, validert gjennom systematiske menneskelige og automatiserte vurderinger, understreker dens dominans og effisiens i feltet.
De 65B og 33B-versjonene av Guanaco, som er finjustert ved å bruke en modifisert versjon av OASST1-datasettet, oppstår som formidable utfordrere til kjente modeller som ChatGPT og selv GPT-4.
Finjustering ved å bruke forsterkingslæring fra menneskelig tilbakemelding
Forsterkingslæring fra menneskelig tilbakemelding (RLHF) kommer inn i bildet når finjustering av forhånds trenede språkmodeller for å tilpasse seg menneskelige verdier. Dette konseptet ble introdusert av Open AI i 2017, og la grunnlaget for bedre dokument-sammenfatting og utvikling av InstructGPT.
I kjernen av RLHF ligger forsterkingslæringsparadigmet, en type maskinlærings-teknikk hvor en agent lærer å oppføre seg i en miljø ved å utføre handlinger og motta belønninger. Det er en kontinuerlig løkke av handling og tilbakemelding, hvor agenten er motivert til å gjøre valg som vil gi den høyeste belønningen.
Når dette oversettes til området språkmodeller, er agenten modellen selv, som opererer i en gitt kontekst-vindu og tar beslutninger basert på tilstanden, som er definert av de nåværende token i kontekst-vinduet. “Handling-rommet” omfatter alle mulige token modellen kan velge fra, med målet å velge token som er mest i samsvar med menneskelige preferanser.
RLHF-prosessen utnytter menneskelig tilbakemelding omfattende, og bruker den til å trene en belønningsmodell. Denne modellen spiller en avgjørende rolle i å guide den forhånds trenede modellen under finjusteringsprosessen, og oppmuntrer den til å generere utdata som er mer i samsvar med menneskelige verdier. Det er en dynamisk og iterativ prosess, hvor modellen lærer gjennom en rekke “ruller”, en betegnelse som brukes for å beskrive sekvensen av tilstander og handlinger som fører til en belønning i sammenheng med språk-generering.
En av de bemerkelsesverdige potensialene til RLHF er evnen til å fremme personliggjøring i AI-assistenter, og tilpasse dem til å resonnere med enkeltpersoners preferanser, enten det er deres sans for humor eller daglige rutiner. Det åpner opp muligheter for å skape AI-systemer som ikke bare er teknisk dyktige, men også emosjonelt intelligente, og i stand til å forstå og svare på nyanser i menneskelig kommunikasjon.
Imidlertid er det essensielt å merke seg at RLHF ikke er en feilfri løsning. Modellene er fortsatt sårbare for å generere uønskede utdata, en refleksjon av den enorme og ofte uregulerte og forvrengte data de er trenet på.
Konklusjon
Finjusteringsprosessen, en kritisk fase i å utnytte det fulle potensialet til LLM som Alpaca, Falcon og GPT-4, har blitt mer finjustert og fokusert, og tilbyr tilpassede løsninger til en rekke oppgaver.
Vi har sett finjustering for enkeltoppgaver, som spesialiserer modeller i bestemte roller, og Parameter-Effektive Finjusteringsmetoder (PEFT) som LoRA og QLoRA, som søker å gjøre treningsprosessen mer effektiv og kostnadseffektiv. Disse utviklingene åpner opp dører til høy-nivå AI-funksjonalitet for et bredere publikum.
Fortsatt, introduksjonen av Forsterkingslæring fra menneskelig tilbakemelding (RLHF) av Open AI er et skritt mot å skape AI-systemer som forstår og tilpasser seg menneskelige verdier og preferanser, og setter scenen for AI-assistenter som ikke bare er smarte, men også følsomme overfor enkeltindividets behov. Begge RLHF og PEFT arbeider i harmoni for å forbedre funksjonaliteten og effisiensen til store språkmodeller.
Som bedrifter, organisasjoner og enkeltindivider ser mot å integrere disse finjusterte LLM i deres operasjoner, ønsker de i realiteten en fremtid hvor AI er mer enn et verktøy; det er en partner som forstår og tilpasser seg menneskelige kontekster, og tilbyr løsninger som er innovative og tilpasset unike behov.























