Kunstig intelligens
Forbedring af udvidede sprogmodeller for genfinding: Selvfornuft og adaptiv forstærkning til samtalesystemer

By
Aayush Mittal Mittal
Store sprogmodeller kæmper ofte med at levere præcise og aktuelle oplysninger, især i komplekse videnbaserede opgaver. For at overvinde disse forhindringer undersøger forskere metoder til at forbedre disse modeller ved at integrere dem med eksterne datakilder.
To nye tilgange, der er dukket op på dette område er selvbegrundende rammer og adaptiv genfinding-augmented generation til samtalesystemerI denne artikel vil vi dykke dybt ned i disse innovative teknikker og undersøge, hvordan de flytter grænserne for, hvad der er muligt med sprogmodeller.
Løftet og faldgruberne ved genfindingsforstærkede sprogmodeller
Lad os forstå konceptet med Retrieval-Augmented Language Models (RALM'er). Kerneideen bag RALM'er er at kombinere den omfattende viden og sprogforståelsesevner, der findes i prætrænede sprogmodeller, med evnen til at tilgå og inkorporere ekstern, opdateret information under inferens.
Her er en simpel illustration af, hvordan en grundlæggende RALM kan fungere:
- En bruger stiller et spørgsmål: "Hvad var resultatet af de olympiske lege i 2024?"
- Systemet henter relevante dokumenter fra en ekstern videnbase.
- LLM behandler spørgsmålet sammen med den hentede information.
- Modellen genererer en respons baseret pĂĄ bĂĄde dens interne viden og de eksterne data.
Denne tilgang har vist meget lovende med hensyn til at forbedre nøjagtigheden og relevansen af ​​LLM-output, især for opgaver, der kræver adgang til aktuel information eller domænespecifik viden. RALM'er er dog ikke uden deres udfordringer. To nøglespørgsmål, som forskere har kæmpet med, er:
- PĂĄlidelighed: Hvordan kan vi sikre, at de hentede oplysninger er relevante og nyttige?
- SporbarhedHvordan kan vi gøre modellens ræsonnementsproces mere gennemsigtig og verificerbar?
Nyere forskning har foreslået innovative løsninger på disse udfordringer, som vi vil undersøge nærmere.
Selv-ræsonnement: Forbedring af RALM'er med eksplicitte ræsonnementer
Dette er arkitekturen og processen bag retrieval-augmented LLM'er, med fokus på et framework kaldet Self-Reasoning. Denne tilgang bruger baner til at forbedre modellens evne til at ræsonnere over hentede dokumenter.
Når et spørgsmål stilles, hentes og behandles relevante dokumenter gennem en række ræsonnementtrin. Self-Reasoning-mekanismen anvender evidensbevidste og baneanalyseprocesser til at filtrere og syntetisere information, før det endelige svar genereres. Denne metode øger ikke kun nøjagtigheden af ​​outputtet, men sikrer også, at begrundelsen bag svarene er gennemsigtige og sporbare.
I de ovennævnte eksempler, såsom bestemmelse af udgivelsesdatoen for filmen "Catch Me If You Can" eller identifikation af de kunstnere, der malede loftet i Firenzes domkirke, filtrerer modellen effektivt gennem de hentede dokumenter for at producere præcise, kontekstuelt understøttede svar.
Denne tabel præsenterer en komparativ analyse af forskellige LLM-varianter, inklusive LLaMA2-modeller og andre genfindingsforstærkede modeller på tværs af opgaver som NaturalQuestions, PopQA, FEVER og ASQA. Resultaterne er opdelt mellem basislinjer uden hentning og dem, der er forbedret med genfindingsmuligheder.
Dette billede viser et scenarie, hvor en LLM har til opgave at give forslag baseret på brugerforespørgsler og demonstrerer, hvordan brugen af ​​ekstern viden kan påvirke kvaliteten og relevansen af ​​svarene. Diagrammet fremhæver to tilgange: én, hvor modellen bruger et uddrag af viden, og én, hvor den ikke gør det. Sammenligningen understreger, hvordan inkorporering af specifikke oplysninger kan skræddersy svar, så de er bedre i overensstemmelse med brugerens behov, hvilket giver dybde og nøjagtighed, som ellers ville mangle i en rent generativ model.
En banebrydende tilgang til forbedring af RALM'er er introduktionen af ​​selvræsonnementsrammer. Kerneideen bag denne metode er at udnytte sprogmodellens egne evner til at generere eksplicitte ræsonnementsbaner, som derefter kan bruges til at forbedre kvaliteten og pålideligheden af ​​dens output.
Lad os gennemgå nøglekomponenterne i en selvræsonnementsramme:
- Relevansbevidst proces (RAP MUSIK)
- Evidensbevidst selektiv proces (EAP)
- Baneanalyseproces (TAP)
Relevansbevidst proces (RAP)
RAP'en er designet til at løse en af ​​de grundlæggende udfordringer ved RALM'er: at afgøre, om de hentede dokumenter rent faktisk er relevante for det givne spørgsmål. Sådan fungerer det:
- Systemet henter et sæt potentielt relevante dokumenter ved hjælp af en genfindingsmodel (f.eks. DPR eller Contriever).
- Sprogmodellen bliver derefter instrueret i at bedømme disse dokumenters relevans for spørgsmålet.
- Modellen genererer eksplicit begrundelser, der forklarer, hvorfor dokumenterne anses for relevante eller irrelevante.
For eksempel, givet spørgsmålet "Hvornår blev Eiffeltårnet bygget?", kan RAP producere output som dette:
Relevant: True
Relevant Reason: The retrieved documents contain specific information about the construction dates of the Eiffel Tower, including its commencement in 1887 and completion in 1889.
Denne proces hjælper med at filtrere irrelevante oplysninger fra tidligt i processen, hvilket forbedrer den samlede kvalitet af modellens svar.
Evidence-Aware Selective Process (EAP)
EAP'en tager relevansvurderingen et skridt videre ved at instruere modellen i at identificere og citere specifikke beviser fra de relevante dokumenter. Denne proces efterligner, hvordan mennesker kan gribe en forskningsopgave an, vælge nøglesætninger og forklare deres relevans. Sådan kan outputtet fra EAP'en se ud:
Cite content: "Construction of the Eiffel Tower began on January 28, 1887, and was completed on March 31, 1889."
Reason to cite: This sentence provides the exact start and end dates for the construction of the Eiffel Tower, directly answering the question about when it was built.
Ved eksplicit at citere kilder og forklare relevansen af ​​hvert enkelt bevismateriale forbedrer EAP'en sporbarheden og fortolkningen af ​​modellens output.
Trajectory Analysis Process (TAP)
TAP er den sidste fase af selvfornuftsrammen, hvor modellen konsoliderer alle de ræsonnementer, der er genereret i de foregående trin. Den analyserer disse baner og producerer en kortfattet oversigt sammen med et endeligt svar. Outputtet fra TAP kan se sådan ud:
Analysis: The Eiffel Tower was built between 1887 and 1889. Construction began on January 28, 1887, and was completed on March 31, 1889. This information is supported by multiple reliable sources that provide consistent dates for the tower's construction period.
Svar: EiffeltĂĄrnet blev bygget fra 1887 til 1889.
Denne proces gør det muligt for modellen at give både en detaljeret forklaring af dens begrundelse og et kortfattet svar, der imødekommer forskellige brugerbehov.
Implementering af selvfornuft i praksis
For at implementere denne selvfornuftsramme har forskere udforsket forskellige tilgange, herunder:
- Tilskyndelse til forudtrænede sprogmodeller
- Finjustering af sprogmodeller med parametereffektive teknikker som QLoRA
- Udvikling af specialiserede neurale arkitekturer, såsom multi-head opmærksomhedsmodeller
Hver af disse tilgange har sine egne afvejninger med hensyn til ydeevne, effektivitet og nem implementering. For eksempel er den prompte tilgang den enkleste at implementere, men den giver muligvis ikke altid konsistente resultater. Finjustering med QLoRA giver en god balance mellem ydeevne og effektivitet, mens specialiserede arkitekturer kan give den bedste ydeevne, men kræver flere beregningsressourcer at træne.
Her er et forenklet eksempel på, hvordan du kan implementere RAP'en ved hjælp af en prompting-tilgang med en sprogmodel som GPT-3:
import openai def relevance_aware_process(question, documents): prompt = f""" Question: {question} Retrieved documents: {documents} Task: Determine if the retrieved documents are relevant to answering the question. Output format: Relevant: [True/False] Relevant Reason: [Explanation] Your analysis: """ response = openai.Completion.create( engine="text-davinci-002", prompt=prompt, max_tokens=150 ) return response.choices[0].text.strip() # Example usage question = "When was the Eiffel Tower built?" documents = "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, France. It is named after the engineer Gustave Eiffel, whose company designed and built the tower. Constructed from 1887 to 1889 as the entrance arch to the 1889 World's Fair, it was initially criticized by some of France's leading artists and intellectuals for its design, but it has become a global cultural icon of France." result = relevance_aware_process(question, documents) print(result)
Dette eksempel viser, hvordan RAP kan implementeres ved hjælp af en simpel prompt-tilgang. I praksis vil mere sofistikerede teknikker blive brugt til at sikre konsistens og håndtere kantsager.
Adaptive Retrieval-Augmented Generation for Conversational Systems
Mens selvfornuftsrammen fokuserer på at forbedre kvaliteten og fortolkningen af ​​individuelle svar, har en anden forskningslinje været at udforske, hvordan man kan gøre genfinding-augmented generation mere adaptiv i sammenhæng med samtalesystemer. Denne tilgang, kendt som adaptive retrieval-augmented generation, har til formål at bestemme, hvornår ekstern viden skal bruges i en samtale, og hvordan den kan inkorporeres effektivt.
Den centrale indsigt bag denne tilgang er, at ikke alle vendinger i en samtale kræver ekstern videnforøgelse. I nogle tilfælde kan det at stole for meget på indhentede oplysninger føre til unaturlige eller alt for ordrige svar. Udfordringen er derfor at udvikle et system, der dynamisk kan beslutte, hvornår ekstern viden skal anvendes, og hvornår modellens iboende egenskaber skal anvendes.
Komponenter af Adaptive Retrieval-Augmented Generation
For at løse denne udfordring har forskere foreslået en ramme kaldet RAGate, som består af flere nøglekomponenter:
- En binær videnportmekanisme
- En relevansbevidst proces
- En evidensbevidst selektiv proces
- En baneanalyseproces
Den binære vidensportsmekanisme
Kernen i RAGate-systemet er en binær vidensport, der beslutter, om der skal bruges ekstern viden til en given samtale. Denne gate tager højde for samtalekonteksten og eventuelt de hentede vidensuddrag for at træffe sin beslutning.
Her er en forenklet illustration af, hvordan den binære vidensportal kan fungere:
def knowledge_gate(context, retrieved_knowledge=None): # Analyze the context and retrieved knowledge # Return True if external knowledge should be used, False otherwise pass def generate_response(context, knowledge=None): if knowledge_gate(context, knowledge): # Use retrieval-augmented generation return generate_with_knowledge(context, knowledge) else: # Use standard language model generation return generate_without_knowledge(context)
Denne portmekanisme gør det muligt for systemet at være mere fleksibelt og kontekstbevidst i dets brug af ekstern viden.
Implementering af RAGate
Dette billede illustrerer RAGate-rammen, et avanceret system designet til at inkorporere ekstern viden i LLM'er for forbedret responsgenerering. Denne arkitektur viser, hvordan en grundlæggende LLM kan suppleres med kontekst eller viden, enten gennem direkte input eller ved at integrere eksterne databaser under genereringsprocessen. Denne dobbelte tilgang – der bruger både interne modelfunktioner og eksterne data – gør det muligt for LLM at give mere nøjagtige og kontekstuelt relevante svar. Denne hybridmetode bygger bro mellem rå beregningskraft og domænespecifik ekspertise.
Dette viser ydeevnemålinger for forskellige modelvarianter under RAGate-rammen, som fokuserer på at integrere hentning med parametereffektiv finjustering (PEFT). Resultaterne fremhæver overlegenheden af ​​kontekstintegrerede modeller, især dem, der anvender ner-know og ner-source indlejringer.
RAGate-PEFT- og RAGate-MHA-modellerne viser væsentlige forbedringer i præcision, genkaldelse og F1-score, hvilket understreger fordelene ved at inkorporere både kontekst- og videninput. Disse finjusteringsstrategier gør det muligt for modeller at udføre mere effektivt på videntunge opgaver, hvilket giver en mere robust og skalerbar løsning til applikationer i den virkelige verden.
For at implementere RAGate har forskere udforsket flere tilgange, herunder:
- Brug af store sprogmodeller med omhyggeligt udformede prompter
- Finjustering af sprogmodeller ved hjælp af parametereffektive teknikker
- Udvikling af specialiserede neurale arkitekturer, såsom multi-head opmærksomhedsmodeller
Hver af disse tilgange har sine egne styrker og svagheder. For eksempel er tilskyndelsesmetoden relativt enkel at implementere, men giver muligvis ikke altid konsistente resultater. Finjustering giver en god balance mellem ydeevne og effektivitet, mens specialiserede arkitekturer kan give den bedste ydeevne, men kræver flere beregningsressourcer at træne.
Her er et forenklet eksempel på, hvordan du kan implementere et RAGate-lignende system ved hjælp af en finjusteret sprogmodel:
import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification class RAGate: def __init__(self, model_name): self.tokenizer = AutoTokenizer.from_pretrained(model_name) self.model = AutoModelForSequenceClassification.from_pretrained(model_name) def should_use_knowledge(self, context, knowledge=None): 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 # Assuming binary classification (0: no knowledge, 1: use knowledge) class ConversationSystem: def __init__(self, ragate, lm, retriever): self.ragate = ragate self.lm = lm self.retriever = retriever def generate_response(self, context): 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) # Example usage ragate = RAGate("path/to/fine-tuned/model") lm = LanguageModel() # Your preferred language model retriever = KnowledgeRetriever() # Your knowledge retrieval system conversation_system = ConversationSystem(ragate, lm, retriever) context = "User: What's the capital of France?\nSystem: The capital of France is Paris.\nUser: Tell me more about its famous landmarks." response = conversation_system.generate_response(context) print(response)
Dette eksempel viser, hvordan et RAGate-lignende system kan implementeres i praksis. De RAGate
klasse bruger en finjusteret model til at beslutte, om der skal bruges ekstern viden, mens den ConversationSystem
klasse orkestrerer samspillet mellem porten, sprogmodellen og retrieveren.
Udfordringer og fremtidige retninger
Mens selvfornuftsrammer og adaptiv genfinding-augmented generation viser store løfter, er der stadig flere udfordringer, som forskere arbejder på at løse:
- Beregningseffektivitet: Begge tilgange kan være beregningsintensive, især når man beskæftiger sig med store mængder hentet information eller genererer lange ræsonnementer. Optimering af disse processer til realtidsapplikationer er fortsat et aktivt forskningsområde.
- Robusthed: Det er afgørende at sikre, at disse systemer fungerer konsekvent på tværs af en lang række emner og spørgsmålstyper. Dette inkluderer håndtering af edge-sager og modstridende input, der kan forvirre relevansbedømmelsen eller gating-mekanismer.
- Flersproget og tværsproget support: Udvidelse af disse tilgange til at arbejde effektivt på tværs af flere sprog og til at håndtere tværsproget informationssøgning og ræsonnement er en vigtig retning for fremtidigt arbejde.
- Integration med andre AI-teknologier: At undersøge, hvordan disse tilgange kan kombineres med andre AI-teknologier, såsom multimodale modeller eller forstærkningslæring, kan føre til endnu mere kraftfulde og fleksible systemer.
Konklusion
Udviklingen af ​​selvfornuftsrammer og adaptiv genfinding-augmented generation repræsenterer et væsentligt skridt fremad inden for naturlig sprogbehandling. Ved at gøre det muligt for sprogmodeller at ræsonnere eksplicit om den information, de bruger, og til at tilpasse deres videnforøgelsesstrategier dynamisk, lover disse tilgange at gøre AI-systemer mere pålidelige, fortolkelige og kontekstbevidste.
Efterhånden som forskningen på dette område fortsætter med at udvikle sig, kan vi forvente at se disse teknikker raffineret og integreret i en bred vifte af applikationer, fra systemer til besvarelse af spørgsmål og virtuelle assistenter til uddannelsesværktøjer og forskningshjælpemidler. Evnen til at kombinere den store viden indkodet i store sprogmodeller med dynamisk hentet, opdateret information har potentialet til at revolutionere, hvordan vi interagerer med AI-systemer og får adgang til information.
Jeg har brugt de sidste fem år på at fordybe mig 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 engineering projekter, med særligt fokus på AI/ML. Min vedvarende nysgerrighed har også trukket mig hen imod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.
Du kan godt lide
-
AI-kontroldilemmaet: Risici og løsninger
-
Retrieval-Augmented Generation: SMB'ers løsning til at udnytte AI effektivt og effektivt
-
Post-RAG Evolution: AI's rejse fra informationssøgning til realtidsræsonnement
-
Fremkomsten af ​​selvrefleksion i AI: Hvordan store sprogmodeller bruger personlig indsigt til at udvikle sig
-
Holde LLM'er relevante: Sammenligning af RAG og CAG for AI-effektivitet og nøjagtighed
-
Ny forskning finder seksten store problemer med RAG-systemer, herunder forvirring