Prompt engineering
FörstÄelse av LLM-fine-tuning: Anpassning av stora sprÄkmodeller till dina unika krav

När vi står i september 2023 är landskapet av stora språkmodeller (LLM) fortfarande vittne till uppgången av modeller som inkluderar 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 tillgodose specifika uppgifter med precision. Det är genom denna fine-tuning som dessa modeller kan verkligen anpassa sig till individualiserade krav, erbjuda lösningar som är både innovativa och anpassade till unika behov.
Men det är 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 tillgängliga på marknaden. Å andra sidan är den öppna källkodsdomänen livlig med 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-teknologi, 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, 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 utmärka sig i specifika uppgifter som sträcker sig från sentimentanalys till medicinsk litteraturgranskning. Genom att justera basmodellen till en specifik användningsfall, låser vi upp nya möjligheter, förbättrar modellens effektivitet och noggrannhet. Dessutom underlättar 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.
Medan vi går djupare in i den här guiden, kommer vi att diskutera de intrikata 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, som illustreras i figuren nedan, kännetecknas av integrationen av instruktionsinmatningar och utmatningar, kombinerat med exempel på steg-för-steg-resonemang. Denna approach 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.

Enkelskalfine-tuning
Enkelskalfine-tuning fokuserar på att slipa modellens expertis inom en specifik uppgift, som till exempel sammanfattning. Denna approach är särskilt fördelaktig vid optimering av arbetsflöden som involverar betydande dokument eller konversationstrådar, 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 principer för LLM-fine-tuning LLM: Transformerarkitektur och bortom
Resan för att förstå LLM-fine-tuning börjar med en förståelse för de grundläggande element som utgör LLM. I hjärtat av dessa modeller ligger transformerarkitekturen, ett neuronnätverk som utnyttjar självuppmärksamhetsmekanismer för att prioritera ordens sammanhang över deras närhet i en mening. Denna innovativa approach möjliggör en djupare förståelse av avlägsna relationer mellan token i inmatningen.
Medan vi navigerar genom transformerarkitekturens intrikata detaljer, möter vi en flerstegsprocess som börjar med encoder-delen. Denna initiala fas involverar tokenisering av inmatningen och skapande av inbäddningsvektorer som representerar inmatningen och dess position i meningen. De efterföljande stegen involverar en serie beräkningar med hjälp av matriser som kallas Fråga, Värde och Nyckel, som 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. ParameterEffektiv Fine-tuning (PEFT) erbjuder tekniker för att minska antalet parametrar som ska fine-tuneras, 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 centerplatsen, med användning av överparameteriserade transformer som den grundläggande arkitekturen. Denna process involverar modellering av naturligt språk på olika sätt, såsom bidirektionellt, autoregressivt eller sekvens-till-sekvens på storskaliga oövervakade korpusar. Målet här är att skapa en bas som kan fine-tuneras senare för specifika nedströmsuppgifter genom införandet av uppgiftsspecifika mål.
En värdig trend i denna sfär är den oundvikliga ökningen av storleken på förtränade LLM, mätt av antalet parametrar. Empiriska data visar konsekvent att större modeller kombinerat 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 kompetent.
Fine-tuning: Vägen till modellanpassning
Följande 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. Men den vanliga metoden för full parameter fine-tuning presenterar utmaningar, inklusive höga beräknings- och minneskrav, särskilt när det gäller att hantera storskaliga 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. Den faktiska träningsprocessen kräver ännu mer minne för att hantera olika komponenter, inklusive optimerarstater och grader, vilket potentiellt kan kräva upp till 80 GB GPU-RAM för en modell av denna skala.
För att navigera i begränsningarna av GPU-RAM, används kvantifiering, som är 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 inläsning och träningsmodell.

Utforskning av kategorier av PEFT-metoder

I processen med att fullständigt fine-tunera stora språkmodeller, är det viktigt att ha en beräkningssetup 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 grader, framåtaktiveringar och möjliggörande av tillfälligt minne under olika stadier av träningsförfarandet.
Tilläggsmetod
Denna typ av finjustering kan komplettera den förtränade modellen med ytterligare parametrar eller lager, fokuserar på att träna endast de nytillagda parametrarna. Trots att det ökar antalet parametrar, förbättrar dessa metoder tränings tid och utrymmeseffektivitet. Tilläggsmetoden är ytterligare indelad i underkategorier:
- Adaptrar: Införa små fullständigt anslutna nätverk efter transformer-underlager, med anmärkningsvärda exempel som AdaMix, KronA och Compactor.
- Mjuka prompter: Fine-tunera ett segment av modellens inmatningsinbäddningar genom gradientnedstigning, med IPT, prefix-tuning och WARP som framstående exempel.
- Andra tilläggsapprocher: 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-tunera 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 som 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-utrymmen.
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 approach inte bara minskar antalet tränbara parametrar utan också minskar tränings tiden och beräkningsresurser som krävs, vilket presenterar en mer effektiv alternativ till fullständig fine-tuning.
För att förstå mekanismen i LoRA, måste man återbesöka transformerarkitekturen där inmatningsprompten genomgår tokenisering och omvandling till inbäddningsvektorer. Dessa vektorer passerar genom encoder- och/eller decodersegmenten av transformatorn, möter självuppmärksamhets- och feed-forward-nätverk vars vikter är förtränade.
LoRA använder begreppet 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 singularvärden. Dessa singularvä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 mindre betydelse.

Denna approach möjliggör för LoRA att behålla de väsentliga egenskaperna hos datan medan dimensionen minskas, vilket optimerar 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 genom övervakad inlärning.
Det avgörande elementet i denna strategi är parametern som kallas “rank” (‘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, vilket skapar en låg-rank-matris med färre parametrar att träna. Denna strategi har implementerats effektivt med hjälp av öppen källkods bibliotek som HuggingFace Transformers, vilket 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 som lagts av LoRA, minskar QLoRA ytterligare minneskraven. Introducerad av Tim Dettmers och andra 2023, kombinerar det låg-rank-anpassning med kvantifiering, använder en 4-bitars kvantifieringsformat som kallas NormalFloat eller nf4. Kvantifiering är i princip en process som övergår data från en högre informationsrepresentation till en med mindre information. Denna approach behåller effektiviteten av 16-bitars fine-tuning metoder, dekvantifierar de 4-bitars vikterna till 16-bitars när det behövs under beräkningsprocesser.

QLoRA använder NumericFloat4 (nf4), riktar sig till varje lager i transformerarkitekturen och introducerar begreppet dubbel kvantifiering för att ytterligare minska minnesavtrycket som krävs för fine-tuning. Detta uppnås genom att utföra kvantifiering på de redan kvantifierade konstanterna, en strategi som undviker typiska gradient-checkpoint-minnesspikar genom användning av paginerade optimerare och enhetlig minneshantering.
Guanaco, som är en QLORA-fine-tuned ensemble, sätter en standard i öppen källkods lösningar för chattbotar. Dess prestanda, validerad genom systematiska mänskliga och automatiserade bedömningar, understryker dess dominans och effektivitet inom området.
65B och 33B versioner av Guanaco, fine-tunade med hjälp av en modifierad version av OASST1 datamängden, framträder som formidabla konkurrenter 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 spel när fine-tuning förtränade språkmodeller för att anpassa sig mer nära 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 att bete sig i en miljö genom att utföra åtgärder och ta emot belöningar. Det är en kontinuerlig loop av åtgärd och återkoppling, där agenten uppmuntras att göra val som kommer att ge den högsta belöningen.
Översatt 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. “Åtgärdsrummet” omfattar alla möjliga token som modellen kan välja mellan, med målet att välja token som ligger närmast mänskliga preferenser.
RLHF-processen utnyttjar mänsklig återkoppling omfattande, använder den för att träna en belöningsmodell. Denna modell spelar en avgörande roll i att vägleda 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 åtgärder som leder till en belöning i sammanhanget med 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 enskilda användares preferenser, antingen 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 benägna 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 till en mängd olika uppgifter.
Vi har sett enkelskalfine-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-funktioner för en bredare publik.
Dessutom introducerar Förstärkt Inlärning från Mänsklig Återkoppling (RLHF) av Open AI en steg i riktning mot att skapa AI-system som förstår och anpassar sig mer nära mänskliga värderingar och preferenser, sätter scenen för AI-assistenter som inte bara är smarta utan också känsliga för enskilda användares behov.
Både RLHF och PEFT arbetar i symbios för att förbättra funktionaliteten och effektiviteten hos stora språkmodeller.
Medan företag, företag och individer ser till att integrera dessa fine-tunade LLM i sina operationer, 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 både innovativa och anpassade till unika behov.


















