Prompt engineering

Forståelse af LLM-finetuning: Tilpasning af store sprogmodeller til dine unikke krav

mm
Føj Unite.AI til dine foretrukne kilder på Google
LLM Fine tuning representation - Midjourney

Som vi står i september 2023, er landskabet af store sprogmodeller (LLM) stadig vidne til opkomsten af modeller som Alpaca, Falcon, Llama 2, GPT-4 og mange andre.

En vigtig aspekt af at udnytte potentialet i disse LLM’er ligger i finetuningsprocessen, en strategi, der tillader tilpasning af forudtrænede modeller til specifikke opgaver med præcision. Det er gennem denne finetuning, at disse modeller kan virkelig tilpasse sig til individualiserede krav, og tilbyde løsninger, der er både innovative og tilpasset til unikke behov.

Det er dog vigtigt at bemærke, at ikke alle finetuningsmuligheder er skabt lige. For eksempel, adgang til finetuningsmulighederne for GPT-4 kommer med en pris, og kræver en betalt abonnement, der er relativt mere dyrt i forhold til andre muligheder på markedet. På den anden side er det åbne kilde-domenet fyldt med alternativer, der tilbyder en mere tilgængelig vej til at udnytte kraften af store sprogmodeller. Disse åbne kilde-alternativer demokratiserer adgangen til avanceret AI-teknologi, og fremmer innovation og inklusivitet i det hurtigt udviklende AI-landskab.

Hvorfor er LLM-finetuning vigtigt?

LLM-finetuning er mere end en teknisk forbedring; det er en afgørende aspekt af LLM-modeludvikling, der tillader en mere specifik og raffineret anvendelse i forskellige opgaver. Finetuning justerer de forudtrænede modeller til bedre at tilpasse sig specifikke datasæt, og forbedrer deres præstation i bestemte opgaver, og sikrer en mere målrettet anvendelse. Det bringer frem den bemærkelsesværdige evne hos LLM’er til at tilpasse sig til nye data, og viser en fleksibilitet, der er afgørende i den stadigt voksende interesse for AI-anvendelser.

Finetuning af store sprogmodeller åbner op for mange muligheder, og tillader dem at udmærke sig i specifikke opgaver, der strækker sig fra sentimentanalyse til medicinske litteraturgennemgange. Ved at tilpasse grundmodellen til en specifik anvendelsesområde, åbner vi op for nye muligheder, og forbedrer modellens effektivitet og præcision. Desuden faciliterer det en mere økonomisk udnyttelse af systemressourcer, da finetuning kræver mindre beregningskraft i forhold til at træne en model fra scratch.

Da vi dykker dybere ind i denne vejledning, vil vi diskutere de intrikate aspekter af LLM-finetuning, og give dig en komplet oversigt, der er baseret på de seneste fremskridt og bedste praksis i feltet.

Instruction-Based Finetuning

Finetuningsfasen i den Generative AI-livscyklus, illustreret i figuren nedenfor, er karakteriseret ved integrationen af instruktionsinddata og -uddata, kombineret med eksempler på trin-for-trin-reasonering. Denne tilgang faciliterer modellen i at generere svar, der ikke kun er relevante, men også præcist tilpasset de specifikke instruktioner, der er indført i den.

Generative AI Lifecycle - Fine Tuning, Prompt Engineering and RLHF

Generative AI Lifecycle – Fine Tuning

Single-Task Finetuning

Single-task finetuning fokuserer på at forbedre modellens ekspertise i en specifik opgave, såsom sammenfattelse. Denne tilgang er særligt gavnlig i at optimere arbejdsgange, der involverer omfattende dokumenter eller samtaletråde, herunder juridiske dokumenter og kundesupportbilletter. Bemærkelsesværdigt kan denne finetuning opnå betydelige præstationsforbedringer med en relativt lille samling af eksempler, der strækker sig fra 500 til 1000, i modsætning til de milliarder af tokens, der anvendes i forudtræningsfasen.

Single-Task Finetuning Eksempelillustration

Single-Task Finetuning Eksempelillustration

 

Grundlag for LLM-Finetuning LLM: Transformerarkitektur og udover

Rejsen mod at forstå LLM-finetuning begynder med at forstå de grundlæggende elementer, der udgør LLM’er. I hjertet af disse modeller ligger transformerarkitekturen, et neuralt netværk, der udnytter selv-attention-mekanismer til at prioritere konteksten af ord over deres nærhed i en sætning. Denne innovative tilgang faciliterer en dybere forståelse af fjerne relationer mellem tokens i input.

Da vi navigerer gennem transformerens intrikate aspekter, møder vi en flertrinsproces, der begynder med encoderen. Denne initielle fase indebærer tokenisering af input og oprettelse af embeddingsvektorer, der repræsenterer input og dets position i sætningen. De efterfølgende faser indebærer en række beregninger med matricer kendt som Query, Value og Key, der kulminerer i en selv-attention-score, der dikterer fokus på forskellige dele af sætningen og forskellige tokens.

Transformerarkitektur

Transformerarkitektur

Finetuning står som en kritisk fase i udviklingen af LLM’er, en proces, der indebærer at lave subtile justeringer for at opnå mere ønskværdige output. Denne fase, selvom den er essentiel, præsenterer en række udfordringer, herunder de beregnings- og lagringskrav, der er forbundet med at håndtere et stort antal parametre. Parameter-Efficient Finetuning (PEFT) tilbyder teknikker til at reducere antallet af parametre, der skal finjusteres, og dermed simplificere træningsprocessen.

LLM-Forudtræning: Etablering af en stærk base

I de første faser af LLM-udviklingen står forudtræningen i centrum, og udnytter over-parametrerede transformere som den grundlæggende arkitektur. Denne proces indebærer at modellere naturligt sprog på forskellige måder, såsom bidirektionel, autoregressiv eller sekvens-til-sekvens på store, uparrede korpora. Målet her er at skabe en base, der kan finjusteres senere for bestemte downstream-opgaver gennem introduktionen af opgave-specifikke mål.

Forudtræning, Finetuning

Forudtræning, Finetuning

En bemærkelsesværdig trend i denne sfære er den uundgåelige stigning i størrelsen af forudtrænede LLM’er, målt på antallet af parametre. Empiriske data viser konsekvent, at større modeller kombineret med mere data næsten altid resulterer i bedre præstation. For eksempel har GPT-3, med sine 175 milliarder parametre, sat en standard for at generere højkvalitets naturligt sprog og udføre en bred vifte af zero-shot-opgaver kompetent.

Finetuning: Vejen til modeltilpasning

Efter forudtræningen undergår LLM’en finetuning for at tilpasse sig til specifikke opgaver. Trods den lovende præstation, der er vist af in-context-læring i forudtrænede LLM’er som GPT-3, forbliver finetuning overlegen i opgave-specifikke indstillinger. Dog præsenterer den almindelige tilgang til fuld parameterfinetuning udfordringer, herunder høje beregnings- og hukommelseskrav, især når man har at gøre med store modeller.

For store sprogmodeller med over en milliard parametre er effektivt styre af GPU-hukommelse afgørende. En enkelt modelparameter med fuld 32-bit præcision kræver 4 bytes plads, hvilket svarer til et krav på 4 GB GPU-hukommelse bare for at indlæse en model med en milliard parametre. Den faktiske træningsproces kræver endnu mere hukommelse for at rumme forskellige komponenter, herunder optimizer-tilstande og gradienter, potentiellt krævende op til 80 GB GPU-hukommelse for en model af denne størrelse.

For at navigere i begrænsningerne af GPU-hukommelse anvendes kvantificering, en teknik, der reducerer præcisionen af modelparametre, og dermed mindsker hukommelseskravene. For eksempel kan ændring af præcision fra 32-bit til 16-bit halvere hukommelsesbehovet for både indlæsning og træning af modellen. Senere i denne artikel vil vi lære om QLoRA, der anvender kvantificeringskonceptet til finetuning.

LLM GPU-hukommelseskrav i forhold til antallet af parametre og præcision

LLM GPU-hukommelseskrav i forhold til antallet af parametre og præcision

 

Udforskning af kategorier af PEFT-metoder

I processen med at fuldt ud finetune store sprogmodeller er det vigtigt at have en beregningsopsætning, der kan håndtere ikke kun de betydelige modelvægte, der for de mest avancerede modeller nu når størrelser på hundredvis af gigabyte, men også kan styre en række andre kritiske elementer. Disse inkluderer allokeringshukommelse for optimizer-tilstande, styre af gradienter, forward-aktiveringer og midlertidig hukommelse under forskellige faser af træningsprocessen.

Tilføjelsesmetode

Denne type finetuning kan supplere den forudtrænede model med yderligere parametre eller lag, og fokuserer på at træne kun de nytilføjede parametre. Trods en øgning af parameterantallet forbedrer disse metoder træningstid og -plads. Tilføjelsesmetoden er yderligere inddelt i underkategorier:

  • Adaptorer: Inkorporering af små fuldt forbundne netværk efter transformer-underlag, med bemærkelsesværdige eksempler som AdaMix, KronA og Compactor.
  • Bløde prompts: Finetuning af en del af modellens input-embeddings gennem gradientafstigning, med IPT, prefix-tuning og WARP som fremtrædende eksempler.
  • Andre tilføjelsesmetoder: Inkluderer teknikker som LeTS, AttentionFusion og Ladder-Side Tuning.

Selektiv metode

Selektive PEFT’er finjusterer et begrænset antal top-lag baseret på lagtype og intern modelstruktur. Denne kategori inkluderer metoder som BitFit og LN-finetuning, der fokuserer på at finjustere specifikke elementer som modellens bias eller bestemte rækker.

Reparametrizationsbaseret metode

Disse metoder udnytter lav-rangs-repræsentationer til at reducere antallet af trænbare parametre, med den mest berømte værende Low-Rank Adaptation eller LoRA. Denne metode udnytter en simpel lav-rangs-matrix-dekomposition til at parameterisere vægt-opdateringen, og viser effektiv finetuning i lav-rangs-underrum.

1) LoRA (Low-Rank Adaptation)

LoRA opstod som en banebrydende PEFT-teknik, introduceret i en artikel af Edward J. Hu og andre i 2021. Den opererer inden for reparametrizationskategorien, hvor de originale vægte af LLM’en fryses, og nye trænbare lav-rangs-matricer integreres i hvert lag af transformer-arkitekturen. Denne tilgang reducerer ikke kun antallet af trænbare parametre, men mindsker også træningstiden og de beregningsressourcer, der kræves, og præsenterer dermed en mere effektiv alternativ til fuld finetuning.

For at forstå mekanismen bag LoRA må man genbesøge transformer-arkitekturen, hvor inputprompten undergår tokenisering og omdannelse til embeddingsvektorer. Disse vektorer passerer gennem encoder- og/eller decoder-segmenterne af transformeren, og møder selv-attention og feed-forward-netværk, hvis vægte er forudtrænede.

LoRA udnytter konceptet Singular Value Decomposition (SVD). Esset er, at SVD dissekerer en matrix i tre forskellige matricer, en af dem er en diagonal matrix, der indeholder singular-værdier. Disse singular-værdier er afgørende, da de måler betydningen af forskellige dimensioner i matricerne, med større værdier, der indikerer højere betydning, og mindre værdier, der angiver mindre betydning.

Singular Value Decomposition (SVD) af en m × n rektangulær matrix

Singular Value Decomposition (SVD) af m × n Matrix

Denne tilgang tillader LoRA at opretholde de væsentlige karakteristika af data, samtidig med at den reducerer dimensionaliteten, og dermed optimerer finetuningsprocessen.

LoRA griber ind i denne proces, hvor alle originale modelparametre fryses, og et par “rang-dekompositions-matricer” introduceres sammen med de originale vægte. Disse mindre matricer, betegnet som A og B, undergår træning gennem overvåget læring.

Det afgørende element i denne strategi er parameteren kaldet rang (‘r’), der dikterer størrelsen af de lav-rangs-matricer. En omhyggelig valg af ‘r’ kan resultere i imponerende resultater, selv med en mindre værdi, og dermed skabe en lav-rangs-matrix med færre parametre at træne. Denne strategi er blevet effektivt implementeret ved hjælp af åbne kilde-biblioteker som HuggingFace Transformers, og faciliterer LoRA-finetuning for forskellige opgaver med bemærkelsesværdig effektivitet.

2) QLoRA: Tagning LoRA’s Effektivitet højere

Bygget på fundamentet lagt af LoRA, reducerer QLoRA yderligere hukommelseskravene. Introduceret af Tim Dettmers og andre i 2023, kombinerer det lav-rangs-tilpasning med kvantificering, og anvender en 4-bit kvantificeringsformat kaldet NormalFloat eller nf4. Kvantificering er essentiel en proces, der overfører data fra en højere informationsrepræsentation til en med mindre information. Denne tilgang opretholder effektiviteten af 16-bit finetuningsmetoder, og dekvantificerer de 4-bit vægte til 16-bit, som det er nødvendigt under beregningsprocesser.

Sammenligning af finetuningsmetoder: QLORA forbedrer LoRA med 4-bit præcision og paginerede optimizatorer til hukommelsesspike-styre

Sammenligning af finetuningsmetoder: QLORA forbedrer LoRA med 4-bit præcision og paginerede optimizatorer til hukommelsesspike-styre

QLoRA udnytter NumericFloat4 (nf4), der targetter hvert lag i transformer-arkitekturen, og introducerer konceptet om dobbelt kvantificering for yderligere at reducere hukommelsesaftrykket, der kræves til finetuning. Dette opnås ved at udføre kvantificering på allerede kvantificerede konstanter, en strategi, der undgår typiske gradient-checkpoint-hukommelsesspikes gennem brugen af paginerede optimizatorer og samlet hukommelsesstyre.

Guanaco, der er en QLoRA-finetuned ensemble, sætter en standard for åbne kilde-chatbot-løsninger. Dens præstation, valideret gennem systematiske menneskelige og automatiserede vurderinger, understreger dens dominans og effektivitet i feltet.

De 65B og 33B-versioner af Guanaco, der er finetuned ved hjælp af en modificeret version af OASST1-datasettet, opstår som formidlelige konkurrenter til berømte modeller som ChatGPT og endda GPT-4.

Finetuning ved hjælp af Forstærkningslæring fra Menneskelig Feedback

Forstærkningslæring fra Menneskelig Feedback (RLHF) kommer til syne, når man finetuner forudtrænede sprogmodeller for at tilpasse sig mere nøje til menneskelige værdier. Dette koncept blev introduceret af Open AI i 2017 og lagde grundlaget for forbedret dokument-sammenfattelse og udviklingen af InstructGPT.

I hjertet af RLHF ligger forstærkningslæringsparadigmet, en type maskinlærings-teknik, hvor en agent lærer at opføre sig i en miljø ved at udføre handlinger og modtage belønninger. Det er en kontinuerlig løkke af handling og feedback, hvor agenten er motiveret til at træffe valg, der vil resultere i den højeste belønning.

Når dette oversættes til sfæren af sprogmodeller, er agenten selv modellen, der opererer inden for miljøet af en given kontekstvindue og træffer beslutninger baseret på tilstanden, der defineres af de nuværende tokens i kontekstvinduet. “Handling-rummet” omfatter alle mulige tokens, modellen kan vælge imellem, med målet at vælge det token, der tilpasser sig mest nøje til menneskelige præferencer.

RLHF-processen udnytter menneskelig feedback omfattende, og anvender den til at træne en belønningsmodel. Denne model spiller en afgørende rolle i at guide den forudtrænede model under finetuningsprocessen, og motiverer den til at generere output, der er mere tilpasset til menneskelige værdier. Det er en dynamisk og iterativ proces, hvor modellen lærer gennem en række “rollouts”, en term, der bruges til at beskrive sekvensen af tilstande og handlinger, der fører til en belønning i konteksten af sproggenerering.

En af de bemærkelsesværdige potentialer af RLHF er dens evne til at fremme personalisering i AI-assistenter, og tilpasse dem til at resonere med individuelle brugeres præferencer, enten det er deres humor eller daglige rutiner. Det åbner op for muligheder for at skabe AI-systemer, der ikke kun er teknisk kompetente, men også emotionelt intelligente, og kan forstå og reagere på nuancer i menneskelig kommunikation.

Dog er det vigtigt at bemærke, at RLHF ikke er en fejlfri løsning. Modellerne er stadig sårbare over for at generere uønskede output, en refleksion af den omfattende og ofte uregulerede og fordomsfulde data, de er trænet på.

Konklusion

Finetuningsprocessen, en kritisk fase i udnyttelsen af det fulde potentiale i LLM’er som Alpaca, Falcon og GPT-4, er blevet mere raffineret og fokuseret, og tilbyder tilpassede løsninger til en bred vifte af opgaver.

Vi har set single-task finetuning, der specialiserer modeller i bestemte roller, og Parameter-Efficient Finetuning (PEFT)-metoder, herunder LoRA og QLoRA, der sigter mod at gøre træningsprocessen mere effektiv og omkostningseffektiv. Disse udviklinger åbner døre til avancerede AI-funktioner for en bredere publikum.

Desuden introducerer Reinforcement Learning from Human Feedback (RLHF) af Open AI en mulighed for at skabe AI-systemer, der forstår og tilpasser sig mere nøje til menneskelige værdier og præferencer, og sætter scenen for AI-assistenter, der ikke kun er intelligente, men også følsomme over for individuelle brugeres behov. Såvel RLHF som PEFT arbejder i symfoni for at forbedre funktionaliteten og effektiviteten af store sprogmodeller.

Som virksomheder, organisationer og individer søger at integrere disse finetuned LLM’er i deres operationer, inviterer de essentieligt en fremtid, hvor AI er mere end et værktøj; det er en partner, der forstår og tilpasser sig til menneskelige kontekster, og tilbyder løsninger, der er både innovative og tilpasset til unikke behov.

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.