Prompt engineering
Förstå LLM-fine-tuning: Anpassa stora språkmodeller till dina unika krav

När vi står i september 2023 är landskapet för stora språkmodeller fortfarande vittne till uppkomsten av modeller som Alpaca, Falcon, Llama 2, GPT-4 och många andra.
En viktig aspekt av att utnyttja potentialen i dessa LLM ligger i fine-tuningsprocessen, en strategi som möjliggör anpassning av förtränade modeller för att passa specifika uppgifter med precision. Det är genom denna fine-tuning som dessa modeller kan verkligen anpassa sig till individuella krav, erbjuda lösningar som är både innovativa och anpassade till unika behov.
Det är dock viktigt att notera att inte alla fine-tuningsvägar är skapade lika. Till exempel kräver tillgång till fine-tuningsfunktionerna i GPT-4 en betald prenumeration som är relativt dyrare jämfört med andra alternativ som finns på marknaden. Å andra sidan är den öppna källkodsdomänen full av alternativ som erbjuder en mer tillgänglig väg för att utnyttja kraften i stora språkmodeller. Dessa öppna källkodsalternativ demokratiserar tillgången till avancerad AI-teknik, främjar innovation och inklusivitet i den snabbt utvecklande AI-landskapet.
Varför är LLM-fine-tuning viktigt?
LLM-fine-tuning är mer än en teknisk förbättring; det är en avgörande aspekt av LLM-modellutveckling som möjliggör en mer specifik och raffinerad tillämpning i olika uppgifter. Fine-tuning justerar de förtränade modellerna för att bättre passa specifika datamängder, förbättrar deras prestanda i specifika uppgifter och säkerställer en mer riktad tillämpning. Det medför den anmärkningsvärda förmågan hos LLM att anpassa sig till nya data, visar flexibilitet som är avgörande i den alltmer ökande intresset för AI-tillämpningar.
Fine-tuning av stora språkmodeller öppnar upp många möjligheter, tillåter dem att excellerera i specifika uppgifter som sträcker sig från sentimentanalys till medicinska litteraturöversikter. Genom att justera basmodellen till en specifik användningsfall, låser vi upp nya möjligheter, förbättrar modellens effektivitet och noggrannhet. Dessutom möjliggör det en mer ekonomisk användning av systemresurser, eftersom fine-tuning kräver mindre beräkningskraft jämfört med att träna en modell från scratch.
Såsom vi går djupare in i den här guiden, kommer vi att diskutera detaljerna i LLM-fine-tuning, ge er en omfattande översikt som baseras på de senaste framstegen och bästa praxis inom området.
Instruktionsbaserad fine-tuning
Fine-tuningsfasen i den generativa AI-livscykeln, illustrerad i figuren nedan, kännetecknas av integrationen av instruktionsinmatningar och utmatningar, tillsammans med exempel på steg-för-steg-resonemang. Denna strategi möjliggör för modellen att generera svar som inte bara är relevanta utan också exakt anpassade till de specifika instruktioner som matas in i den. Det är under denna fas som de förtränade modellerna anpassas för att lösa distinkta uppgifter och användningsfall, med hjälp av personliga datamängder för att förbättra deras funktionalitet.
Enkeluppgiftsfine-tuning
Enkeluppgiftsfine-tuning fokuserar på att förbättra modellens expertis inom en specifik uppgift, såsom sammanfattning. Denna strategi är särskilt fördelaktig för att optimera arbetsflöden som involverar betydande dokument eller konversationssträngar, inklusive juridiska dokument och kundsupportärenden. Anmärkningsvärt kan denna fine-tuning uppnå betydande prestandaförbättringar med en relativt liten uppsättning exempel, som sträcker sig från 500 till 1000, i kontrast till de miljarder token som används under förträningsfasen.
Grundläggande LLM-fine-tuning: Transformerarkitektur och bortom
Resan för att förstå LLM-fine-tuning börjar med att förstå de grundläggande elementen som utgör LLM. I hjärtat av dessa modeller ligger transformerarkitekturen, ett neuronnätverk som utnyttjar självuppmärksamhetsmekanismer för att prioritera kontexten för ord över deras närhet i en mening. Denna innovativa strategi möjliggör en djupare förståelse av avlägsna relationer mellan token i inmatningen.
Såsom vi navigerar genom transformerarkitekturens komplexitet, möter vi en flerstegsprocess som börjar med encodern. Denna initiala fas involverar tokenisering av inmatningen och skapande av inbäddningsvektorer som representerar inmatningen och dess position i meningen. De efterföljande stadierna involverar en serie beräkningar med hjälp av matriser kända som Fråga, Värde och Nyckel, vilket kulminerar i en självuppmärksamhetspoäng som dikterar fokus på olika delar av meningen och olika token.
Fine-tuning står som en kritisk fas i utvecklingen av LLM, en process som innebär att göra subtila justeringar för att uppnå mer önskvärda utmatningar. Denna fas, medan den är avgörande, presenterar en uppsättning utmaningar, inklusive de beräknings- och lagringskrav som krävs för att hantera en stor mängd parametrar. Parameter-Efficient Fine-Tuning (PEFT) erbjuder tekniker för att minska antalet parametrar som ska fine-tunas, vilket förenklar träningsprocessen.
LLM-förträning: Att etablera en stark bas
I de initiala stadierna av LLM-utveckling, tar förträning centrum, med användning av överparameteriserade transformer som den grundläggande arkitekturen. Denna process innebär modellering av naturligt språk på olika sätt, såsom bidirektionellt, autoregressivt eller sekvens-till-sekvens på stora, ostrukturerade korpusar. Målet här är att skapa en bas som kan fine-tunas senare för specifika nedströmsuppgifter genom introduktionen av uppgiftsspecifika mål.
En anmärkningsvärd trend i denna sfär är den oundvikliga ökningen av skalan på förtränade LLM, mätt av antalet parametrar. Empiriska data visar konsekvent att större modeller, tillsammans med mer data, nästan alltid resulterar i bättre prestanda. Till exempel har GPT-3, med sina 175 miljarder parametrar, satt en standard för att generera högkvalitativt naturligt språk och utföra en mängd olika nollskottsuppgifter med stor skicklighet.
Fine-tuning: Vägen till modellanpassning
Efter förträning, genomgår LLM fine-tuning för att anpassa sig till specifika uppgifter. Trots den lovande prestanda som visats av in-context-lärande i förtränade LLM som GPT-3, förblir fine-tuning överlägsen i uppgiftsspecifika inställningar. Dock presenterar den vanliga metoden för full parameter fine-tuning utmaningar, inklusive höga beräknings- och minneskrav, särskilt när man hanterar stora modeller.
För stora språkmodeller med över en miljard parametrar, är effektiv hantering av GPU-RAM avgörande. En enda modellparameter i full 32-bitars precision kräver 4 byte utrymme, vilket motsvarar ett krav på 4 GB GPU-RAM bara för att ladda en 1 miljard parametermodell. Träningsprocessen kräver ännu mer minne för att hantera olika komponenter, inklusive optimerarstater och gradienter, vilket potentiellt kan kräva upp till 80 GB GPU-RAM för en modell av den här storleken.
För att navigera i begränsningarna av GPU-RAM, används kvantisering, en teknik som minskar precisionen av modellparametrar, vilket minskar minneskraven. Till exempel kan ändring av precision från 32-bitars till 16-bitars halvera minnesbehovet för både laddning och tränning av modellen. Senare i den här artikeln kommer vi att lära oss om QLoRA, som använder kvantiseringskonceptet för finjustering.
Utforskning av PEFT-metodkategorier
I processen att fullständigt fine-tuna stora språkmodeller, är det viktigt att ha en beräkningsmiljö som kan hantera inte bara de betydande modellvikterna, som för de mest avancerade modellerna nu når storlekar på hundratals gigabyte, utan också hantera en serie andra kritiska element. Dessa inkluderar tilldelning av minne för optimerarstater, hantering av gradienter, framåtriktade aktiveringsfunktioner och möjliggörande av tillfälligt minne under olika stadier av träningsförfarandet.
Additiv metod
Denna typ av finjustering kan komplettera den förtränade modellen med ytterligare parametrar eller lager, fokuserar på att träna endast de nyligen tillagda parametrarna. Trots att antalet parametrar ökar, förbättrar dessa metoder tränings- och utrymmeseffektivitet. Additiv metoder delas ytterligare in i underkategorier:
- Adaptrar: Inkorporerar små fullständigt anslutna nätverk efter transformer-underlager, med noterbara exempel som AdaMix, KronA och Compactor.
- Mjuka prompter: Fine-tuning av en sektor av modellens inmatningsinbäddningar genom gradientnedstigning, med IPT, prefix-tuning och WARP som framstående exempel.
- Andra additiva metoder: Inkluderar tekniker som LeTS, AttentionFusion och Ladder-Side Tuning.
Selektiv metod
Selektiva PEFT fine-tunar en begränsad mängd av de översta lagren baserat på lagertyp och intern modellstruktur. Denna kategori inkluderar metoder som BitFit och LN-tuning, som fokuserar på att fine-tuna specifika element som modellbias eller specifika rader.
Reparametreringsbaserad metod
Dessa metoder använder låg-rank-representationer för att minska antalet tränbara parametrar, med den mest kända vara Low-Rank Adaptation eller LoRA. Denna metod använder en enkel låg-rank-matrisdekomposition för att parameterisera viktuppdateringen, visar effektiv fine-tuning i låg-rank-undersidor.
1) LoRA (Low-Rank Adaptation)
LoRA framträdde som en banbrytande PEFT-teknik, introducerad i en artikel av Edward J. Hu och andra 2021. Den opererar inom reparametreringskategorin, fryser de ursprungliga vikterna i LLM och integrerar nya tränbara låg-rank-matriser i varje lager av transformerarkitekturen. Denna strategi förkortar inte bara antalet tränbara parametrar utan minskar också tränings- och beräkningsresurser som krävs, presenterar därmed en mer effektiv alternativ till fullständig fine-tuning.
För att förstå mekanismerna i LoRA, måste man återbesöka transformerarkitekturen där inmatningsprompten genomgår tokenisering och omvandlas till inbäddningsvektorer. Dessa vektorer färdas genom encodern och/eller decodern i transformerarkitekturen, möter självuppmärksamhets- och feed-forward-nätverk vars vikter är förtränade.
LoRA använder konceptet Singular Value Decomposition (SVD). I princip delar SVD en matris in i tre distinkta matriser, en av dem är en diagonal matris som innehåller singulara värden. Dessa singulara värden är avgörande eftersom de mäter betydelsen av olika dimensioner i matriserna, med större värden som indikerar högre betydelse och mindre värden som indikerar lägre betydelse.
Denna strategi tillåter LoRA att behålla de väsentliga egenskaperna hos datan medan dimensionernas antal minskas, optimerar därmed fine-tuningsprocessen.
LoRA ingriper i denna process, fryser alla ursprungliga modellparametrar och introducerar ett par “rank-dekompositions-matriser” bredvid de ursprungliga vikterna. Dessa mindre matriser, betecknade som A och B, genomgår träningsprocessen via övervakad inlärning.
Den avgörande faktorn i denna strategi är parametern “rang” (‘r’), som dikterar storleken på de låg-rank-matriserna. En noggrann val av ‘r’ kan ge imponerande resultat, även med ett mindre värde, skapar därmed en låg-rank-matris med färre parametrar att träna. Denna strategi har implementerats effektivt med hjälp av öppna källkodsbibliotek som HuggingFace Transformers, möjliggör LoRA-fine-tuning för olika uppgifter med anmärkningsvärd effektivitet.
2) QLoRA: Att ta LoRA-effektivitet högre
Byggande på grunden lagd av LoRA, minskar QLoRA ytterligare minneskraven. Introducerad av Tim Dettmers och andra 2023, kombinerar den låg-rank-adaptation med kvantisering, använder en 4-bitars kvantiseringsterm kallad NormalFloat eller nf4. Kvantisering är i princip en process som övergår data från en högre informationsrepresentation till en med mindre information. Denna strategi behåller effektiviteten av 16-bitars fine-tuning metoder, dekvantisering av 4-bitars vikter till 16-bitars när det behövs under beräkningsprocesser.

Jämförelse av fine-tuning metoder: QLORA förbättrar LoRA med 4-bitars precision och paged-optimizers för minnesspikshantering
QLoRA använder NumericFloat4 (nf4), riktar sig mot varje lager i transformerarkitekturen, och introducerar konceptet dubbel kvantisering för att ytterligare minska minnesavtrycket som krävs för fine-tuning. Detta uppnås genom att utföra kvantisering på redan kvantiserade konstanter, en strategi som undviker vanliga gradient-checkpoint minnesspikar genom användning av paged-optimizers och enhetlig minneshantering.
Guanaco, som är en QLoRA-fine-tuned ensemble, sätter en standard för öppna källkods-lösningar för chattbotar. Dess prestanda, validerad genom systematiska mänskliga och automatiserade utvärderingar, understryker dess dominans och effektivitet inom området.
De 65B och 33B versionerna av Guanaco, fine-tunade med hjälp av en modifierad version av OASST1 datamängden, framträder som formidabla utmanare till kända modeller som ChatGPT och till och med GPT-4.
Fine-tuning med förstärkt inlärning från mänsklig återkoppling
Förstärkt inlärning från mänsklig återkoppling (RLHF) kommer in i bilden när man fine-tunar förtränade språkmodeller för att anpassa sig mer till mänskliga värderingar. Detta koncept introducerades av Open AI 2017 och lade grunden för förbättrad dokument sammanfattning och utveckling av InstructGPT.
I kärnan av RLHF ligger förstärkt inlärningsparadigmet, en typ av maskinlärningsteknik där en agent lär sig hur den ska bete sig i en miljö genom att utföra handlingar och ta emot belöningar. Det är en kontinuerlig loop av handling och återkoppling, där agenten uppmuntras att göra val som kommer att ge den högsta belöningen.
När man översätter detta till området språkmodeller, är agenten modellen själv, som opererar inom miljön av en given kontextfönster och fattar beslut baserat på tillståndet, som definieras av de aktuella token i kontextfönstret. “Handlingsutrymmet” omfattar alla möjliga token som modellen kan välja mellan, med målet att välja den token som anpassar sig mest till mänskliga preferenser.
RLHF-processen utnyttjar mänsklig återkoppling i stor utsträckning, använder den för att träna en belöningsmodell. Denna modell spelar en avgörande roll i att guida den förtränade modellen under fine-tuningsprocessen, uppmuntrar den att generera utmatningar som är mer anpassade till mänskliga värderingar. Det är en dynamisk och iterativ process, där modellen lär sig genom en serie “utrullningar”, en term som används för att beskriva sekvensen av tillstånd och handlingar som leder till en belöning i sammanhanget av språkgenerering.
En av de anmärkningsvärda potentialerna i RLHF är dess förmåga att främja personanpassning i AI-assistenter, anpassa dem för att resonera med individuella användares preferenser, vare sig det är deras humor eller dagliga rutiner. Det öppnar upp vägar för att skapa AI-system som inte bara är tekniskt kompetenta utan också emotionellt intelligenta, kapabla att förstå och svara på nyanser i mänsklig kommunikation.
Men det är viktigt att notera att RLHF inte är en perfekt lösning. Modellerna är fortfarande mottagliga för att generera oönskade utmatningar, en reflektion av den omfattande och ofta oreglerade och fördomsfulla datan de tränas på.
Slutsats
Fine-tuningsprocessen, en kritisk steg i utnyttjandet av full potential i LLM som Alpaca, Falcon och GPT-4, har blivit mer raffinerad och fokuserad, erbjuder anpassade lösningar för en mängd olika uppgifter.
Vi har sett enkeluppgiftsfine-tuning, som specialiserar modeller i specifika roller, och Parameter-Effektiv Fine-Tuning (PEFT) metoder inklusive LoRA och QLoRA, som syftar till att göra träningsprocessen mer effektiv och kostnadseffektiv. Dessa utvecklingar öppnar dörrar till högnivå AI-funktionalitet för en bredare publik.
Dessutom introducerar införandet av Förstärkt Inlärning från Mänsklig Återkoppling (RLHF) av Open AI en möjlighet att skapa AI-system som förstår och anpassar sig mer till mänskliga värderingar och preferenser, sätter scenen för AI-assistenter som inte bara är smarta utan också känsliga för individuella användares behov. Både RLHF och PEFT arbetar i symbios för att förbättra funktionaliteten och effektiviteten hos stora språkmodeller.
Såsom företag, företag och individer ser till att integrera dessa fine-tunade LLM i sina verksamheter, välkomnar de i princip en framtid där AI är mer än ett verktyg; det är en partner som förstår och anpassar sig till mänskliga sammanhang, erbjuder lösningar som är innovativa och anpassade till unika behov.























