Insikt
Retrieval-Augmented Fine-Tuning (RAFT): Sammanfoga RAG och SLM-Träning i Lokala Miljöer
Utforska hur Retrieval-Augmented Fine-Tuning kombinerar styrkorna hos RAG och finjustering för att producera domänspecifika små språkmodeller med hög träffsäkerhet i lokala driftsmiljöer.
Klyftan Mellan RAG och Finjustering
Retrieval-Augmented Generation (RAG) och finjustering har framträtt som de två dominerande strategierna för att anpassa språkmodeller till företagsspecifik kunskap. RAG utmärker sig genom att hålla modeller aktuella genom att hämta relevanta dokument vid inferenstillfället, medan finjustering bäddar in domänkunskap direkt i modellens vikter för snabbare och mer konsekventa svar. Ändå bär varje tillvägagångssätt begränsningar som blir smärtsamt uppenbara i produktionsmiljöer med lokal drift.
RAG-system kan kämpa med hämtningskvalitet — när hämtaren tar fram irrelevanta eller delvis relevanta dokument producerar generatorn trovärdiga men felaktiga svar. Finjusterade modeller kan å andra sidan hallucinera med övertygelse om ämnen utanför deras träningsfördelning och kräver kostsamma omträningscykler när den underliggande kunskapsbasen förändras. Retrieval-Augmented Fine-Tuning (RAFT) adresserar båda bristerna genom att träna modellen att resonera över hämtade dokument — den lär sig när den ska lita på hämtad kontext och när den ska förlita sig på sina egna parametrar.
Hur RAFT Fungerar: Träna Modeller att Resonera Över Kontext
Den centrala insikten bakom RAFT är enkel: istället för att finjustera en modell på rena fråga-svar-par, tränar du den på fråga-kontext-svar-tripplar där kontexten inkluderar både relevanta ("orakel") dokument och avsiktligt irrelevanta ("distraktör") dokument. Under träningen lär sig modellen att identifiera vilka hämtade passager som faktiskt är användbara och att extrahera rätt svar medan den ignorerar brus.
En typisk RAFT-träningspipeline i lokal miljö följer denna struktur:
1. Datasetskonstruktion: För varje träningsexempel, para ihop frågan med ett eller flera orakeldokument som innehåller svaret, plus flera distraktördokument samplade från samma korpus. Förhållandet mellan orakel- och distraktördokument bör spegla verklig hämtningsbrus — ett 1:4-förhållande är en rimlig utgångspunkt.
2. Resonemangskedjeannotering: Berika varje träningsexempel med en resonemangsspår som visar hur modellen ska identifiera relevant passage och extrahera svaret. Detta steg är avgörande för att lära modellen att citera sina källor istället för att hallucinera.
3. Blandad träningsstrategi: Inkludera en andel exempel (typiskt 10-20%) där inget orakeldokument finns, vilket tvingar modellen att känna igen när hämtad kontext är otillräcklig och falla tillbaka till sin parametriska kunskap.
Infrastrukturkrav för Lokal Drift
Att köra RAFT lokalt är genomförbart med modest hårdvara jämfört med full förträning, eftersom du finjusterar en befintlig liten språkmodell. En enskild nod med 2-4 GPU:er (NVIDIA A100 eller H100) kan hantera RAFT-träning för modeller i storleksordningen 1B-8B parametrar. De primära infrastrukturhänsynen är datapipelinegenomströmning och experimentspårning.
Din datapipeline behöver hantera tre samtidiga strömmar: basträningskorpusen, hämtarindexet för att generera kontextfönster och resonemangskedjeannoteringar. Om din organisation redan kör en lokal vektordatabas för RAG (som Milvus, Qdrant eller Weaviate) kan du återanvända den infrastrukturen för distraktördokumentsampling under datasetkonstruktion.
Experimentspårning blir särskilt viktig med RAFT eftersom du justerar flera beroende variabler: distraktörförhållandet, resonemangskedjeformatet, orakeldokumentets urvalsstrategin och basmodellens inlärningshastighet. Verktyg som MLflow eller Weights & Biases (egenhostad) hjälper dig att systematiskt jämföra körningar och undvika regression vid iteration på träningskonfigurationer.
Praktiska Implementeringsmönster
De mest framgångsrika RAFT-driftsättningarna vi har observerat följer en iterativ förfiningscykel snarare än ett engångsträningsupplägg. Börja med en grundläggande finjusterad modell och ett grundläggande RAG-system, använd sedan RAG-systemets felfall för att konstruera riktade RAFT-träningsexempel.
Mönster 1: Feldriven datasetkonstruktion. Logga varje fråga där ditt befintliga RAG-system producerar ett felaktigt eller lågkonfidenssvar. Para ihop dessa frågor med de faktiskt hämtade dokumenten och det korrekta svaret. Detta skapar träningsexempel som direkt adresserar ditt systems svagaste punkter.
Mönster 2: Domänstratifierad distraktörsampling. Istället för att sampla distraktörer enhetligt från din korpus, sampla dem från samma domän eller dokumentkategori som orakeldokumentet. Detta producerar svårare träningsexempel och resulterar i en modell som är bättre på att skilja mellan tematiskt liknande men faktamässigt olika passager.
Mönster 3: Progressiv kontextfönsterexpansion. Börja träningen med korta kontextfönster (2-3 dokument) och öka gradvis till 5-8 dokument allteftersom modellens resonemang förbättras. Detta läroplansliknande tillvägagångssätt leder till stabilare träning och bättre slutlig träffsäkerhet.
Mäta RAFT-Effektivitet
Standardmått för utvärdering av språkmodeller är otillräckliga för att bedöma RAFT-tränade modeller. Du behöver mått som fångar både svarsträffsäkerhet och hämtningsresonemangets kvalitet.
Svarsriktighet: Mät exakt matchning och semantisk likhet mot facitsvar på ett undanhållet testset som inkluderar både orakel- och distraktördokument. Jämför mot ditt grundläggande RAG-system och din grundläggande finjusterade modell för att kvantifiera förbättringen.
Attributionsnoggrannhet: Verifiera att modellen korrekt identifierar vilka hämtade dokument som stöder dess svar. Om din RAFT-träning inkluderar resonemangskedjeannoteringar med citeringar kan du automatiskt kontrollera om modellen refererar till orakeldokumentet snarare än en distraktör.
Robusthet under brus: Utvärdera modellprestanda när du ökar distraktör-till-orakel-förhållandet i testsetet. En vältränad RAFT-modell bör degradera gracefully när bruset ökar, snarare än att falla av en klippa vid en specifik tröskel.
När Man Bör Välja RAFT Framför Fristående Metoder
RAFT är inte en universell ersättning för RAG eller finjustering. Det är mest värdefullt när ditt användningsfall uppvisar specifika egenskaper: en stabil men komplex kunskapsbas, höga krav på träffsäkerhet och frekvent hämtningsbrus. Om dina dokument ändras dagligen och kraven på träffsäkerhet är måttliga kan en välkonfigurerad RAG-pipeline vara tillräcklig. Om din domän är smal och statisk kan ren finjustering vara enklare att underhålla.
Den optimala tillämpningen för RAFT i lokala miljöer är företagsmiljöer där kunskapsbasen uppdateras veckovis eller månadsvis, där felaktiga svar medför verkliga affärs- eller regelefterlevnadskostnader, och där dokumentkorpusen innehåller tillräcklig tematisk överlappning för att utmana standardhämtningsmetoder. I dessa scenarier betalar sig RAFT:s extra träningskomplexitet genom mätbart högre svarsträffsäkerhet och minskade hallucinationsfrekvenser.
Utvald bild av Albert Stoynov på Unsplash.