Redigera

Dela via


LLM-utvärdering från slutpunkt till slutpunkt

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

När du når den här fasen har du redan genererat ditt sökindex och fastställt vilka sökningar du vill utföra. Den här fasen behandlar processen för att utvärdera din RAG-lösning (Retrieval-Augmented Generation) med tanke på utvärderingen av förväntade användarprompter som innehåller hämtade grunddata mot den stora språkmodellen. Innan du når den här fasen bör du slutföra förberedelsefasen där du samlar in dina testdokument och frågor, segmentera dina testdokument, berika segmenten, bädda in segmenten, skapa ett sökindex och implementera en sökstrategi. Du bör utvärdera var och en av dessa faser och vara nöjd med resultatet. Nu bör du känna dig bekväm med att din lösning returnerar relevanta grunddata för en användarfråga.

Dessa grunddata utgör kontexten för uppmaningen som du skickar till den stora språkmodellen för att hantera användarens fråga. Teknikstrategier för frågor ligger utanför omfånget för den här artikeln. Den här artikeln behandlar utvärderingen av det konstruerade anropet till den stora språkmodellen utifrån jordningsdata. Den här artikeln beskriver några vanliga mått för utvärdering av stora språkmodeller och vissa specifika likhets- och utvärderingsmått som kan användas i utvärderingsberäkningar för stora språkmodeller eller som fristående mått.

Den här artikeln försöker inte tillhandahålla en fullständig lista över vare sig stora språkmodellmått eller likhets- och utvärderingsmått. Antalet dessa mått ökar varje dag. Det som är viktigt för dig att ta bort från den här artikeln är att det finns olika mått, var och en med sina egna distinkta användningsfall. Du är den enda som har en holistisk förståelse för din arbetsbelastning. Du och dina dataexperter måste avgöra vad det är du vill mäta och vilka mått som hjälper dig att utföra den uppgiften.

Den här artikeln ingår i en serie. Läs introduktionen.

Utvärderingsmått för stora språkmodeller

Det finns flera mått som du kan använda för att utvärdera svar från den stora språkmodellen, inklusive grundlighet, fullständighet, användning och relevans.

Viktigt!

Svar på stora språkmodeller är icke-deterministiska, vilket innebär att samma uppmaning till en stor språkmodell kan och ofta returnerar olika resultat. Det här är viktigt att förstå när du använder en stor språkmodell som en del av utvärderingsprocessen. Överväg att använda ett målintervall över ett enda mål när du utvärderar med hjälp av en stor språkmodell.

Grundstötning

Grundadhet, som ibland kallas trofasthet, mäter om svaret är helt baserat på sammanhanget. Den verifierar att svaret inte använder annan information än vad som finns i kontexten. Ett mått med låg grundnivå indikerar att den stora språkmodellen kan glida in i fantasifullt eller meningslöst territorium som kallas hallucinationer.

Beräknande

Utvärdera

Om grunderna är låga indikerar det att den stora språkmodellen inte ser segmenten som relevanta. Du bör utvärdera om du behöver lägga till data i din corpus, justera segmenteringsstrategin eller segmentstorleken eller finjustera din fråga.

Fullständighet

Fullständighet mäter om svaret besvarar alla delar av frågan. Fullständighet hjälper dig att förstå om segmenten i kontexten är relevanta och direkt relaterade till frågan och ger ett fullständigt svar.

Beräknande

  • AI-assisterad: Fråga om hämtningspoäng
  • En stor språkmodell kan hjälpa dig att mäta kvaliteten på svaret på den stora språkmodellen. Du behöver frågan, kontexten och det genererade svaret för att utföra den här mätningen. Följande beskriver processen på hög nivå:
    1. Använd den stora språkmodellen för att formulera om, sammanfatta eller förenkla frågan. Det här steget identifierar avsikten.
    2. Be modellen att kontrollera om avsikten eller svaret på avsikten hittas eller kan härledas från hämtade dokument där svaret kan vara "Nej" eller "Ja" för varje dokument. Svar som börjar med "Ja" anger att de hämtade dokumenten är relevanta för avsikten eller svaret på avsikten.
    3. Beräkna förhållandet mellan de avsikter som har ett svar som börjar med "Ja".
    4. Kvadratera poängen för att markera felen.

Utvärdera

Om fullständigheten är låg börjar du med att utvärdera inbäddningsmodellen. Jämför vokabulären i ditt innehåll med vokabulären i din valda inbäddningsmodell. Avgör om du behöver en domänspecifik inbäddningsmodell eller om du behöver finjustera en befintlig modell. Som ett nästa steg utvärderar du din segmenteringsstrategi. Om du använder fast längd bör du överväga att öka segmentstorleken. Du kan också utvärdera om dina testdata har tillräckligt med data för att helt åtgärda frågan.

Utnyttjande

Användningen mäter i vilken utsträckning svaret består av information från segmenten i kontexten. Målet är att fastställa i vilken utsträckning varje segment är en del av svaret. Låg användning indikerar att dina resultat kanske inte är relevanta för frågan. Användningen bör utvärderas vid sidan av fullständigheten.

Beräknande

Du kan använda en stor språkmodell för att beräkna användningen. Du kan skicka svaret och kontexten som innehåller segmenten till den stora språkmodellen. Du kan be den stora språkmodellen att fastställa antalet segment som innebär svaret.

Utvärdera

Följande tabell innehåller vägledning som tar både fullständighet och användning tillsammans.

Hög användning Låg användning
Hög fullständighet Ingen åtgärd krävs I det här fallet kan de data som returneras hantera frågan, men irrelevanta segment returnerades. Överväg att minska parametervärdet top-k för att ge mer sannolika/deterministiska resultat.
Låg fullständighet I det här fallet används de segment som du tillhandahåller, men tar inte upp frågan fullt ut. Tänk också på följande:
  • Granska segmenteringsstrategin för att öka kontexten i segmenten
  • Öka antalet segment genom att öka parametervärdet top-k
  • Utvärdera om du har segment som inte returnerades som kan öka fullständigheten. I så fall undersöker du varför de inte returnerades.
  • Följ vägledningen i avsnittet om fullständighet
I det här fallet svarar du inte helt på frågan och de segment som du tillhandahåller används inte väl. Överväg följande för att åtgärda dessa problem:
  • Granska segmenteringsstrategin för att öka kontexten i segmenten. Om du använder segmentering med fast storlek kan du överväga att öka segmentstorlekarna.
  • Justera dina frågor för att förbättra svaren

Relevans

Mäter i vilken utsträckning den stora språkmodellens svar är relevant och relaterat till frågan.

Beräknande

Utvärdera

När relevansen är låg utvärderar du följande:

  • Se till att segmenten som tillhandahålls till den stora språkmodellen är relevanta.
    • Avgör om det finns livskraftiga segment som är relevanta och som inte returnerades. Om det finns det utvärderar du inbäddningsmodellen.
    • Om det inte finns några livskraftiga segment kan du se om relevanta data finns. Om det gör det utvärderar du din segmenteringsstrategi.
  • Om relevanta segment returnerades utvärderar du din fråga.

Andra utvärderingsmetoder som Completeness ska beräknas och ge liknande poäng som de som observerats i relevansmåttet.

Likhets- och utvärderingsmått

Som vi nämnde i introduktionen finns det hundratals likhets- och utvärderingsmått som används inom datavetenskap. Vissa algoritmer är specifika för en domän, till exempel tal till text eller språk till språköversättning. Varje algoritm har en unik strategi för att beräkna dess mått.

Dataexperten avgör vad du vill mäta och vilket mått eller vilken kombination av mått du kan använda för att mäta det. När det till exempel gäller språköversättning kontrollerar Bleu-måttet hur många n-gram som visas i både maskinöversättningen och den mänskliga översättningen för att mäta likheten baserat på samma ord. Cosinélikhet använder inbäddningar mellan datorn och mänskliga översättningar för att mäta semantisk likhet. Om ditt mål var att ha hög semantisk likhet och använda liknande ord som den mänskliga översättningen, skulle ditt mål vara en hög Bleu-poäng med hög cosinuslikhet. Om du bara brydde dig om semantisk likhet skulle du fokusera på cosinisk likhet.

Följande lista innehåller ett litet urval av vanliga likhets- och utvärderingsmått. Observera att likhetsmåtten som anges beskrivs som tokenbaserade, sekvensbaserade eller redigeringsbaserade, vilket illustrerar hur de använder mycket olika metoder för att beräkna likheter. Observera också att listan innehåller tre algoritmer för att utvärdera kvaliteten på textöversättning från ett språk till ett annat.

  • Längst vanlig delsträng – Sekvensbaserad algoritm som hittar den längsta gemensamma delsträngen mellan två strängar. Den längsta gemensamma delsträngsprocenten tar den längsta gemensamma delsträngen och delar den med antingen antalet tecken i den mindre eller större indatasträngen.
  • Längsta vanliga undersekvens (LCS) – Sekvensbaserad algoritm som hittar den längsta underfrågan mellan två strängar. LCS kräver inte att underfrågorna är i efterföljande ordning.
  • Cosinélikhet – tokenbaserad algoritm som beräknar vinkelns cosiné mellan de två vektorerna.
  • Jaro Winkler – Redigera baserad algoritm som räknar det minsta antalet steg för att omvandla en sträng till en annan.
  • Hamming – Redigera baserad algoritm som mäter det minsta antalet ersättningar som krävs för att transformera en sträng till en annan.
  • Jaccard – Tokenbaserad algoritm som beräknar likhet genom att dela skärningspunkten mellan två strängar med union av dessa strängar.
  • Levenshtein – Redigera baserad algoritm som beräknar likhet genom att fastställa det minsta antalet redigeringar med ett tecken som krävs för att transformera en sträng till en annan.
  • BLEU – Utvärderar kvaliteten på text som är resultatet av maskinöversättning från ett språk till ett annat. Bleu beräknar överlappningen av n-gram mellan en maskinöversättning och en översättning av mänsklig kvalitet för att göra denna utvärdering.
  • ROUGE – Jämför en maskinöversättning av ett språk med ett annat med en översättning som skapats av en människa. Det finns flera ROUGE-varianter som använder överlappningen av n-gram, skip-bigrams eller längsta vanliga subsequence.
  • METEOR – Utvärderar kvaliteten på text som är resultatet av maskinöversättning genom att titta på exakta matchningar, matchningar efter härstamning, synonymer, parafraser och justering.

Se följande resurser för vanliga likhets- och utvärderingsmått:

Dokumentation, rapportering och aggregering

Du bör dokumentera både de hyperparametrar som du valde för ett experiment och de resulterande utvärderingsmåtten så att du kan förstå effekten av hyperparametrar på dina resultat. Du bör dokumentera hyperparametrar och resultat på detaljerade nivåer som inbäddning eller sökutvärdering och på makronivå, som att testa hela systemet från slutpunkt till slutpunkt.

Under design och utveckling kanske du kan spåra hyperparametrar och resultat manuellt. Men när du utför flera utvärderingar mot hela testdokumentet och testfråge corpus kan det innebära hundratals utvärderingskörningar och tusentals resultat. Du bör automatisera beständigheten för parametrar och resultat för dina utvärderingar.

När dina hyperparametrar och resultat har sparats bör du överväga att skapa diagram och grafer så att du enklare kan visualisera de effekter som alternativen för hyperparametrar har på måtten. Visualisering hjälper dig att identifiera vilka alternativ som leder till prestandadippar eller toppar.

Det är viktigt att du förstår att det inte är en engångsåtgärd att utforma och utvärdera DIN RAG-lösning. Din dokumentkorus ändras med tiden. De frågor som dina kunder ställer kommer att förändras med tiden och din förståelse för vilka typer av frågor som kommer att utvecklas när du lär dig av produktionen. Du bör gå tillbaka till den här processen om och om igen. Att underhålla dokumentation om tidigare utvärderingar är avgörande för framtida design- och utvärderingsarbete.

RAG-experimentacceleratorn

De här artiklarna beskriver alla faser och designval som ingår i utformningen och utvärderingen av en RAG-lösning. Artiklarna fokuserar på vad du bör göra, inte hur du gör det. Ett ingenjörsteam som arbetar med Microsofts främsta kunder utvecklade ett verktyg som kallas RAG Experiment Accelerator. RAG Experiment Accelerator är ett toppmodernt experimentramverk som är utformat för att optimera och förbättra utvecklingen av RAG-lösningar (Retrieval Augmented Generation). RAG Experiment Accelerator gör det möjligt för forskare och utvecklare att effektivt utforska och finjustera de kritiska komponenter som driver RAG-prestanda, vilket i slutändan leder till mer exakt och sammanhängande textgenerering.

Med dess CLI-baserade gränssnitt kan du enkelt experimentera med olika inbäddningsmodeller, förfina segmenteringsstrategier och utvärdera olika sökmetoder för att frigöra hela potentialen i ditt RAG-system. Det gör att du kan fokusera på kärnaspekterna av RAG-utveckling samtidigt som du abstraherar bort komplexiteten i hyperparameterjustering med hjälp av enkel konfiguration.

Dessutom ger ramverket omfattande stöd för konfiguration av stora språkmodeller så att du kan hitta den perfekta balansen mellan modellkomplexitet och generationskvalitet. Med det här verktyget kan du effektivisera experimenteringsprocessen, spara värdefull tid och avsevärt förbättra prestandan för dina RAG-modeller.

Oavsett om du är en erfaren forskare som tänjer på gränserna för förståelse av naturligt språk eller en branschproffs som vill förbättra textgenereringsfunktionerna är det här experimentramverket den ultimata lösningen för att påskynda din RAG-utvecklingsresa. Ta till dig framtidens RAG-experimentering och lås upp den verkliga potentialen hos dina modeller med det här banbrytande verktyget.

RAG med Vision Application Framework

Mycket av vägledningen i den här artikeln om att arbeta med media i din RAG-lösning kom från ett annat ingenjörsteam som arbetar med Microsofts främsta kunder. Det här teamet skrev ett ramverk som kallas RAG med Vision Application Framework. Det här ramverket tillhandahåller en Python-baserad RAG-pipeline (retrieval augmented generation) som bearbetar både text- och bildinnehåll från MHTML-dokument.

Ramverket läser in, segment och berikar både text och bilder från MHTML-filer och matar in segmenten till Azure Search. Ramverket implementerar cachelagring för bildberikning för både bearbetning och kostnadseffektivitet. Ramverket omfattar även utvärdering som en del av pipelinen.

Deltagare

Nästa steg