AI-modeller och plattformar
Förbättring av Retrieval-Augmented Language Models: Självresonemang och Adaptiv Augmentering för Konversationsystem

Av
Aayush Mittal Mittal
Stora språkmodeller har ofta svårt att leverera exakt och aktuell information, särskilt i komplexa kunskapsbaserade uppgifter. För att övervinna dessa hinder undersöker forskare metoder för att förbättra dessa modeller genom att integrera dem med externa datakällor.
Två nya tillvägagångssätt som har dykt upp inom detta område är självresonemangsramverk och adaptiv retrieval-augmenterad generering för konversationsystem. I den här artikeln kommer vi att dyka djupt in i dessa innovativa tekniker och undersöka hur de driver gränserna för vad som är möjligt med språkmodeller.
Löftet och Fällorna med Retrieval-Augmented Language Models
Låt oss förstå konceptet med Retrieval-Augmented Language Models (RALM). Idén bakom RALM är att kombinera den stora kunskapen och språkförståelsen hos förtränade språkmodeller med förmågan att komma åt och integrera extern, aktuell information under inferens.
Här är en enkel illustration av hur en grundläggande RALM kan fungera:
- En användare ställer en fråga: “Vad var resultatet av de olympiska spelen 2024?”
- Systemet hämtar relevanta dokument från en extern kunskapsbas.
- LLM bearbetar frågan tillsammans med den hämtade informationen.
- Modellen genererar ett svar baserat på både sin interna kunskap och den externa data.
Detta tillvägagångssätt har visat stor potential för att förbättra noggrannheten och relevansen hos LLM-utdata, särskilt för uppgifter som kräver tillgång till aktuell information eller domänspecifik kunskap. Men RALM är inte utan utmaningar. Två nyckelutmaningar som forskare har brottats med är:
- Tillförlitlighet: Hur kan vi säkerställa att den hämtade informationen är relevant och användbar?
- Spårbarhet: Hur kan vi göra modellens resonemangsprocess mer transparent och kontrollerbar?
Senaste forskningen har föreslagit innovativa lösningar på dessa utmaningar, som vi kommer att undersöka i detalj.
Självresonemang: Förbättring av RALM med Explicita Resonemangstraektorier
Detta är arkitekturen och processen bakom retrieval-augmenterade LLM, med fokus på ett ramverk som kallas Självresonemang. Detta tillvägagångssätt använder traektorier för att förbättra modellens förmåga att resonera över hämtade dokument.
När en fråga ställs hämtas relevanta dokument och bearbetas genom en serie resonemangssteg. Självresonemangsmechanismen tillämpar bevismedvetna och traektorianalytiska processer för att filtrera och syntetisera information innan det slutliga svaret genereras. Denna metod förbättrar inte bara noggrannheten hos utdata utan säkerställer också att resonemanget bakom svaren är transparent och spårbar.
I ovanstående exempel, som att bestämma releasedatum för filmen “Catch Me If You Can” eller identifiera konstnärerna som målade taket i Florensdomen, filtrerar modellen effektivt genom de hämtade dokumenten för att producera exakta, kontextuellt stödda svar.
Denna tabell presenterar en jämförande analys av olika LLM-variationer, inklusive LLaMA2-modeller och andra retrieval-augmenterade modeller över uppgifter som NaturalQuestions, PopQA, FEVER och ASQA. Resultaten är uppdelade mellan baslinjer utan hämtning och de som förbättrats med hämtningsförmåga.
Denna bild presenterar ett scenario där en LLM tilldelas att ge förslag baserat på användarfrågor, vilket visar hur användningen av extern kunskap kan påverka kvaliteten och relevansen hos svaren. Diagrammet betonar två tillvägagångssätt: ett där modellen använder en kunskapsbit och ett där den inte gör det. Jämförelsen understryker hur inkorporering av specifik information kan anpassa svar för att bättre motsvara användarens behov, vilket ger djup och noggrannhet som annars kan saknas i en rent generativ modell.
En banbrytande tillvägagångssätt för att förbättra RALM är införandet av självresonemangsramverk. Idén bakom denna metod är att utnyttja språkmodellens egna förmågor för att generera explicita resonemangstraektorier, som sedan kan användas för att förbättra kvaliteten och tillförlitligheten hos dess utdata.
Låt oss bryta ner de viktigaste komponenterna i ett självresonemangsramverk:
- Relevansmedveten Process (RAP)
- Bevismedveten Selektiv Process (EAP)
- Traektorianalytisk Process (TAP)
Relevansmedveten Process (RAP)
RAP är utformat för att hantera en av de grundläggande utmaningarna med RALM: att bestämma om de hämtade dokumenten verkligen är relevanta för den givna frågan. Här är hur det fungerar:
- Systemet hämtar en uppsättning potentiellt relevanta dokument med hjälp av en hämtningsmodell (t.ex. DPR eller Contriever).
- Språkmodellen instrueras sedan att bedöma relevansen hos dessa dokument i förhållande till frågan.
- Modellen genererar explicita skäl som förklarar varför dokumenten anses relevanta eller irrelevanta.
Till exempel, givet frågan “När byggdes Eiffeltornet?”, kan RAP producera utdata som:
Relevant: Ja
Relevant Skäl: De hämtade dokumenten innehåller specifik information om Eiffeltornets byggnadsdatum, inklusive starten 1887 och färdigställandet 1889.Denna process hjälper till att filtrera bort irrelevant information tidigt i pipeline, vilket förbättrar den övergripande kvaliteten hos modellens svar.
Bevismedveten Selektiv Process (EAP)
EAP tar relevansbedömningen ett steg längre genom att instruera modellen att identifiera och citera specifika bevis från de relevanta dokumenten. Denna process liknar hur människor kan närma sig en forskningsuppgift, genom att välja ut nyckelsatser och förklara deras relevans. Här är vad EAP-utdata kan se ut som:
Citera innehåll: "Byggnaden av Eiffeltornet började den 28 januari 1887 och slutfördes den 31 mars 1889."
Anledning att citera: Denna mening tillhandahåller de exakta start- och sluttiderna för Eiffeltornets byggnad, vilket direkt besvarar frågan om när det byggdes.Genom att explicit citera källor och förklara relevansen av varje bevisbit förbättrar EAP spårbarheten och tolkbarheten hos modellens utdata.
Traektorianalytisk Process (TAP)
TAP är den sista fasen i självresonemangsramverket, där modellen konsoliderar alla resonemangstraektorier som genererats i de tidigare stegen. Den analyserar dessa traektorier och producerar en sammanfattning tillsammans med ett slutligt svar. TAP-utdata kan se ut som:
Analys: Eiffeltornet byggdes mellan 1887 och 1889. Byggnaden började den 28 januari 1887 och slutfördes den 31 mars 1889. Denna information stöds av flera tillförlitliga källor som tillhandahåller konsekventa datum för tornets byggnadsperiod.
Svar: Eiffeltornet byggdes från 1887 till 1889.
Denna process möjliggör för modellen att tillhandahålla både en detaljerad förklaring av sitt resonemang och ett kort svar, vilket tillgodoser olika användarbehov.
Implementering av Självresonemang i Praktiken
För att implementera detta självresonemangsramverk har forskare undersökt olika tillvägagångssätt, inklusive:
- Att instruera förtränade språkmodeller
- Finjustering av språkmodeller med parameter-effektiva tekniker som QLoRA
- Utveckling av specialiserade neurala arkitekturer, såsom multi-huvudmodeller
Var och en av dessa tillvägagångssätt har sina egna för- och nackdelar. Till exempel är den enklaste att implementera men kan inte alltid producera konsekventa resultat. Finjustering erbjuder en bra balans mellan prestanda och effektivitet, medan specialiserade arkitekturer kan ge den bästa prestandan men kräver mer beräkningskraft för att träna.
Här är ett förenklat exempel på hur du kan implementera RAP med en instruerad språkmodell:
import openai
<p>def relevance_aware_process(question, documents):</p>
prompt = f"""
Fråga: {question}
Hämtade dokument:
{documents}
Uppgift: Bestäm om de hämtade dokumenten är relevanta för att besvara frågan.
Utdataformat:
Relevant: [Sant/Falskt]
Relevant Skäl: [Förklaring]
Din analys:
"""
<p>response = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=150
)</p>
return response.choices[0].text.strip()
<p># Exempel på användning
question = "När byggdes Eiffeltornet?"
documents = "Eiffeltornet är en järnkonstruktion på Champ de Mars i Paris, Frankrike. Det är uppkallat efter ingenjören Gustave Eiffel, vars företag designade och byggde tornet. Byggt mellan 1887 och 1889 som ingångsbågen till världsutställningen 1889, var det initialt kritiserat av några av Frankrikes ledande konstnärer och intellektuella för sin design, men det har blivit en global kulturell ikon för Frankrike."</p>
<p>result = relevance_aware_process(question, documents)
print(result)
Detta exempel visar hur RAP kan implementeras med en enkel instruerad språkmodell. I praktiken skulle mer sofistikerade tekniker användas för att säkerställa konsekvens och hantera edge-fall.
Adaptiv Retrieval-Augmenterad Generering för Konversationsystem
Medan självresonemangsramverket fokuserar på att förbättra kvaliteten och tolkbarheten hos enskilda svar, har en annan forskningslinje undersökt hur man kan göra retrieval-augmenterad generering mer adaptiv i sammanhang av konversationsystem. Detta tillvägagångssätt, känt som adaptiv retrieval-augmenterad generering, syftar till att bestämma när extern kunskap bör användas i en konversation och hur den ska integreras effektivt.
Den viktigaste insikten bakom detta tillvägagångssätt är att inte varje tur i en konversation kräver extern kunskapsaugmentering. I vissa fall kan en alltför stor tillit till hämtad information leda till onaturliga eller för verbosa svar. Utmaningen är då att utveckla ett system som kan dynamiskt bestämma när att använda extern kunskap och när att förlita sig på modellens inneboende förmågor.
Komponenter i Adaptiv Retrieval-Augmenterad Generering
För att hantera denna utmaning har forskare föreslagit ett ramverk som kallas RAGate, som består av flera nyckelkomponenter:
- En binär kunskapsgrindmekanism
- En relevansmedveten process
- En bevismedveten selektiv process
- En traektorianalytisk process
Den Binära Kunskapsgrindmekanismen
Kärnan i RAGate-systemet är en binär kunskapsgrind som bestämmer om extern kunskap ska användas för en given konversationsomgång. Denna grind tar hänsyn till konversationskontexten och, om så önskas, de hämtade kunskapsbitarna för att fatta sitt beslut.
Här är en förenklad illustration av hur den binära kunskapsgrinden kan fungera:
def knowledge_gate(context, retrieved_knowledge=None): # Analysera kontexten och den hämtade kunskapen # Returnera Sant om extern kunskap bör användas, Falskt annars pass <p>def generate_response(context, knowledge=None):</p> if knowledge_gate(context, knowledge): # Använd retrieval-augmenterad generering return generate_with_knowledge(context, knowledge) else: # Använd standard språkmodellsgenerering return generate_without_knowledge(context)
Denna grindmekanism tillåter systemet att vara mer flexibelt och kontextmedvetet i sin användning av extern kunskap.
Implementering av RAGate
Denna bild illustrerar RAGate-ramverket, ett avancerat system designat för att inkorporera extern kunskap i LLM för förbättrad svarsgenerering. Denna arkitektur visar hur en grundläggande LLM kan kompletteras med kontext eller kunskap, antingen genom direkt inmatning eller genom integration med externa databaser under genereringsprocessen. Denna hybridmetod – som använder både modellens interna förmågor och extern data – möjliggör för LLM att ge mer precisa och kontextuellt relevanta svar. Denna hybridmetod brottar gapet mellan rå beräkningskraft och domänspecifik expertis.
Detta visar prestandamått för olika modellvarianter under RAGate-ramverket, som fokuserar på att integrera hämtning med parameter-effektiv finjustering (PEFT). Resultaten betonar överlägsenheten hos kontextintegrerade modeller, särskilt de som använder ner-know och ner-source-inbäddningar.
RAGate-PEFT och RAGate-MHA-modellerna visar betydande förbättringar i precision, återkallande och F1-poäng, vilket understryker fördelarna med att inkorporera både kontext och kunskapsinmatningar. Dessa finjusteringsstrategier möjliggör att modellerna presterar bättre på kunskapsintensiva uppgifter, vilket ger en mer robust och skalbar lösning för verkliga tillämpningar.
För att implementera RAGate har forskare undersökt flera tillvägagångssätt, inklusive:
- Användning av stora språkmodeller med noggrant utformade instruktioner
- Finjustering av språkmodeller med parameter-effektiva tekniker
- Utveckling av specialiserade neurala arkitekturer, såsom multi-huvudmodeller
Var och en av dessa tillvägagångssätt har sina egna styrkor och svagheter. Till exempel är den enklaste att implementera men kan inte alltid producera konsekventa resultat. Finjustering erbjuder en bra balans mellan prestanda och effektivitet, medan specialiserade arkitekturer kan ge den bästa prestandan men kräver mer beräkningskraft för att träna.
Här är ett förenklat exempel på hur du kan implementera ett RAGate-liknande system med en finjusterad språkmodell:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
<p>class RAGate:</p>
def __init__(self, model_name):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForSequenceClassification.from_pretrained(model_name)
<p>def should_use_knowledge(self, context, knowledge=None):</p>
inputs = self.tokenizer(context, knowledge or "", return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
outputs = self.model(**inputs)
probabilities = torch.softmax(outputs.logits, dim=1)
return probabilities[0][1].item() > 0.5 # Antagande binär klassificering (0: ingen kunskap, 1: använd kunskap)
<p>class ConversationSystem:</p>
def __init__(self, ragate, lm, retriever):
self.ragate = ragate
self.lm = lm
self.retriever = retriever
<p>def generate_response(self, context):</p>
knowledge = self.retriever.retrieve(context)
if self.ragate.should_use_knowledge(context, knowledge):
return self.lm.generate_with_knowledge(context, knowledge)
else:
return self.lm.generate_without_knowledge(context)
<p># Exempel på användning
ragate = RAGate("path/to/fine-tuned/model")
lm = LanguageModel() # Din föredragna språkmodell
retriever = KnowledgeRetriever() # Din kunskapshämtningssystem</p>
<p>conversation_system = ConversationSystem(ragate, lm, retriever)</p>
<p>context = "Användare: Vad är huvudstaden i Frankrike?\nSystem: Huvudstaden i Frankrike är Paris.\nAnvändare: Berätta mer om dess kända landmärken."
response = conversation_system.generate_response(context)
print(response)
Detta exempel visar hur ett RAGate-liknande system kan implementeras i praktiken. RAGate-klassen använder en finjusterad modell för att bestämma om extern kunskap ska användas, medan ConversationSystem-klassen orkestrerar interaktionen mellan grinden, språkmodellen och hämtningssystemet.
Utmaningar och Framtida Riktningar
Medan självresonemangsramverk och adaptiv retrieval-augmenterad generering visar stor potential, finns det fortfarande flera utmaningar som forskare arbetar för att hantera:
- BeräkningsEffektivitet: Båda tillvägagångssätten kan vara beräkningsintensiva, särskilt när man hanterar stora mängder hämtad information eller genererar långa resonemangstraektorier. Att optimera dessa processer för realtidsapplikationer förblir ett aktivt forskningsområde.
- Robusthet: Att säkerställa att dessa system presterar konsekvent över en bred range av ämnen och frågetyper är avgörande. Detta inkluderar hantering av edge-fall och motståndskraftiga inmatningar som kan förvirra relevansbedömningen eller grindmekanismen.
- Flerspråkig och Tvåspråkig Stöd: Att utöka dessa tillvägagångssätt för att fungera effektivt över flera språk och hantera tvåspråkig informationssökning och resonemang är en viktig framtida riktning.
- Integrering med Andra AI-Teknologier: Att undersöka hur dessa tillvägagångssätt kan kombineras med andra AI-teknologier, såsom multimodala modeller eller förstärkt inlärning, kan leda till ännu kraftfullare och flexibla system.
Slutsats
Utvecklingen av självresonemangsramverk och adaptiv retrieval-augmenterad generering representerar ett betydande steg framåt inom området för naturligt språkbehandling. Genom att möjliggöra för språkmodeller att resonera explicit om den information de använder och att anpassa sina kunskapsaugmenteringsstrategier dynamiskt, lovar dessa tillvägagångssätt att göra AI-system mer tillförlitliga, tolkningsbara och kontextmedvetna.
Medan forskningen inom detta område fortsätter att utvecklas, kan vi förvänta oss att se dessa tekniker förfinas och integreras i en bred range av applikationer, från frågesvars-system och virtuella assistenter till utbildningsverktyg och forskningshjälpmedel. Förmågan att kombinera den stora kunskapen som är kodad i stora språkmodeller med dynamiskt hämtad, aktuell information har potentialen att revolutionera hur vi interagerar med AI-system och kommer åt information.
Jag har tillbringat de senaste fem åren med att dyka djupt in i den fascinerande världen av Maskinlärning och Djupinlärning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också lett mig mot Naturlig Språkbehandling, ett område som jag är angelägen om att utforska vidare.
Upptäck mer


Vad är Retrieval‑augmented generation (RAG)? Hur AI svarar med extern kunskap


AI:s minnesproblem: Varför effektiv lång kontext förändrar allt, och vad som krävs för att göra det rätt


Varför din biomedicinska RAG döljer motsättningar för dig


Den verkliga anledningen till att din RAG-pipeline fortsätter att hallucinera


2026 års förutsägelse – Open Source kommer att följa AI:s våg in i sin nästa guldålder


AI-kontrollens dilemma: Risker och lösningar




