Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den första fasen av utveckling och experimentering av hämtningsförhöjd generation (RAG) är förberedelsefasen. Under den här fasen definierar du affärsdomänen för din lösning. När du har definierat domänen samlar du in dokument, utför dokumentanalys och samlar in exempelfrågor som är relevanta för domänen. Du utför dessa steg parallellt eftersom de är kopplade till varandra. Dokumentanalys hjälper dig till exempel att avgöra vilka testdokument och testfrågor du ska samla in. De frågor som du ställer måste besvaras med innehåll i dokumenten och dokumenten måste besvara relevanta frågor.
Den här artikeln är en del av en serie. Läs introduktionen.
Fastställa lösningsdomänen
Det första steget i den här processen är att tydligt definiera affärskraven för lösningen eller användningsfallet. Dessa krav hjälper dig att avgöra vilken typ av frågor lösningen ska besvara och vilka källdata eller dokument som hjälper dig att besvara dessa frågor. I senare faser hjälper lösningsdomänen till att informera din strategi för inbäddningsmodell.
Dokumentanalys
Målet med dokumentanalys är att samla in tillräckligt med information om din dokumentsamling för att hjälpa dig att förstå:
De olika klassificeringarna av dokument. Du kan till exempel ha produktspecifikationer, kvartalsrapporter, bilförsäkringsavtal eller sjukförsäkringsavtal.
De olika typerna av dokument. Du kan till exempel ha PDF-filer, Markdown-filer, HTML-filer eller DOCX-filer.
Säkerhetsbegränsningarna. Du kan till exempel kräva autentisering och auktorisering för att få åtkomst till dokumenten beroende på om de är offentligt tillgängliga.
Dokumentens struktur. Dokumentlängden kan till exempel variera. Eller så kan de ha ämnesbrytningar, sammanhangsberoende relevanta bilder eller tabelldata.
I följande avsnitt beskrivs hur den här informationen hjälper dig att välja dina strategier för laddning och segmentering.
Klassificering av dokument
Du måste förstå de olika klassificeringarna av dokument som hjälper dig att fastställa antalet testdokument som du behöver. Den här delen av analysen bör berätta om klassificeringar på hög nivå, till exempel försäkring eller ekonomi. Det bör också berätta om underklassificeringar, till exempel sjukförsäkringsdokument eller bilförsäkringsdokument. Du vill också veta om underklassificeringarna har olika strukturer eller innehåll.
Målet är att förstå alla olika dokumentvarianter som du har. Sedan kan du fastställa antalet och uppdelningen av de testdokument som du behöver. Du vill inte över- eller underrepresentera en specifik dokumentklassificering i dina experiment.
Dokumenttyper
Genom att förstå de olika filformaten i samlingen kan du fastställa antalet och uppdelningen av testdokument. Om du till exempel har PDF- och Open XML-dokumenttyper för kvartalsrapporter behöver du testdokument för var och en av dessa dokumenttyper. Att förstå dina dokumenttyper hjälper dig också att förstå dina tekniska krav för att läsa in och segmentera dina dokument. Dessa tekniska krav omfattar specifika bibliotek som kan bearbeta dessa filformat.
Säkerhetsbegränsningar
Att förstå säkerhetsbegränsningar är avgörande för att fastställa dina inläsnings- och segmenteringsstrategier. Du måste till exempel identifiera om vissa eller alla dokument kräver autentisering, auktorisering eller nätverkssynlighet. Om dokumenten finns inom en säker perimeter kontrollerar du att koden kan komma åt dem eller implementera en process för att på ett säkert sätt replikera dokumenten till en tillgänglig plats för din bearbetningskod.
Dokument refererar ibland till multimedia som bilder eller ljud som är viktiga för dokumentets kontext. Det mediet kan också omfattas av liknande åtkomstkontroller som själva dokumentet. Om mediet kräver autentisering eller nätverkslinje måste du se till att koden kan komma åt mediet eller att du har en process på plats som har åtkomst och kan replikera innehållet.
Om din arbetsbelastning kräver att olika användare bara har åtkomst till distinkta dokument eller dokumentsegment kontrollerar du att du förstår hur du behåller dessa åtkomstbehörigheter i segmenteringslösningen.
Dokumentstruktur
Du måste förstå dokumentets struktur, inklusive dess layout och typer av innehåll i dokumentet. Genom att förstå strukturen och innehållet i dina dokument kan du göra följande:
Om dokumentet kräver förbearbetning för att rensa brus, extrahera media, formatera om innehåll eller kommentera objekt att ignorera
Oavsett om du vill ignorera eller exkludera innehåll i dokumentet
Vilka delar av dokumentet som du vill samla in
Så här vill du dela upp dokumentet
Hur du vill hantera bilder, tabeller, diagram och andra inbäddade medier
I följande avsnitt listas kategoriserade frågor som du kan använda för att göra några av dessa beslut.
Fastställ de objekt som du kan ignorera
Vissa strukturella element kanske inte lägger till mening i dokumentet och kan ignoreras vid segmentering. I vissa situationer kan dessa element lägga till värdefull kontext och förbättra relevansen för frågor till ditt index, men inte alla. Ställ följande frågor om vanliga dokumentfunktioner för att se om de lägger till relevans eller bör ignoreras.
Innehåller dokumentet en innehållsförteckning?
Finns det sidhuvuden eller sidfötter?
Finns det upphovsrätt eller ansvarsfriskrivningar?
Finns det fotnoter eller slutkommentarer?
Finns det vattenstämplar?
Finns det anteckningar eller kommentarer?
Fastställa en förbearbetnings- och segmenteringsstrategi
Följande frågor om dokumentets struktur kan hjälpa dig att avgöra om du behöver förbearbeta dokumentet för att göra det enklare att bearbeta det. De hjälper dig också att välja en segmenteringsstrategi.
Finns det flerspaltiga data eller flerspaltiga stycken? Du vill inte parsa innehåll med flera kolumner på samma sätt som innehåll med en kolumn.
Hur är dokumentet strukturerat? HTML-filer använder till exempel ibland tabeller som måste skiljas från inbäddade tabelldata.
Hur många stycken finns det? Hur länge är styckena? Är styckena lika långa?
Vilka språk, språkvarianter eller dialekter finns i dokumenten?
Innehåller dokumentet Unicode-tecken?
Hur formateras tal? Innehåller de kommatecken eller decimaler? Är de konsekventa?
Vilka delar av dokumentet är enhetliga och vilka delar är inte enhetliga?
Finns det en rubrikstruktur där semantisk betydelse kan extraheras?
Finns det punkter eller meningsfulla indrag?
Fastställa kraven för bildbearbetning
Att förstå bilderna i dokumentet kan hjälpa dig att välja en strategi för bildbearbetning. Du behöver veta vilken typ av bilder du har, om de har tillräcklig upplösning för att bearbeta och om bilden innehåller all nödvändig information. Följande frågor hjälper dig att förstå dina krav på bildbearbetning.
Innehåller dokumentet bilder?
Vilken upplösning är bilderna?
Finns det text inbäddad i bilderna?
Finns det abstrakta bilder som inte lägger till värde? Ikoner kanske till exempel inte lägger till något semantiskt värde. Att lägga till en beskrivning av ikoner kan vara skadligt för din lösning eftersom ikonen vanligtvis inte är relevant för dokumentets innehåll.
Vad är relationen mellan bilderna och den omgivande texten? Avgör om bilderna har fristående innehåll eller om det finns kontext runt bilden som du bör använda när du skickar den till en språkmodell. Bildtexter är ett exempel på omgivande text som kan ha värdefull kontext som inte ingår i bilden.
Finns det rik textrepresentation, som tillgänglighetsbeskrivningar av bilderna?
Fastställ dina krav för tabell, diagram och annan mediebearbetning
Att förstå vilken information som är inkapslad i tabeller, diagram och andra medier kan hjälpa dig att bestämma hur du vill bearbeta den. Följande frågor hjälper dig att förstå dina krav på tabell, diagram och annan mediebearbetning.
Har dokumentet diagram som innehåller siffror?
Innehåller dokumentet tabeller?
Är tabellerna komplexa, till exempel kapslade tabeller eller icke-komplexa?
Finns det undertexter för tabellerna?
Hur länge är tabellerna? Långa tabeller kan kräva upprepade rubriker i segment.
Finns det andra typer av inbäddade medier, till exempel videor eller ljud?
Finns det några matematiska ekvationer eller vetenskapliga notationer i dokumentet?
Samla representativa testdokument
I det här steget samlar du in dokument som bäst representerar de dokument som du använder i din lösning. Dokumenten måste hantera det definierade användningsfallet och besvara de frågor som du samlade in i den parallella frågeinsamlingsfasen.
Överväganden
Tänk på följande områden när du utvärderar potentiella representativa testdokument:
Pertinence: Dokumenten måste uppfylla affärskraven för konversationsapplikationen. Om du till exempel skapar en chattrobot som hjälper kunder att utföra bankåtgärder måste dokumenten uppfylla det kravet. Dokumenten bör till exempel visa hur du öppnar eller stänger ett bankkonto. Dokumenten måste kunna hantera de testfrågor som du samlar in i det parallella steget. Om dokumenten inte har information som är relevant för frågorna kan lösningen inte ge ett giltigt svar.
Representation: Dokumenten ska representera de olika typer av dokument som din lösning använder. Ett bilförsäkringsdokument innehåller till exempel annan information än ett hälso- eller livförsäkringsdokument. Anta att användningsfallet kräver lösningen för att stödja alla tre av dessa försäkringstyper, men du har bara bilförsäkringsdokument. Din lösning kan fungera dåligt för hälso- och livförsäkringsåtgärder. Du bör ha minst två dokument för varje variant.
Fysisk dokumentkvalitet: Dokumenten måste vara i användbar form. Skannade bilder kanske till exempel inte låter dig extrahera användbar information.
Dokumentinnehållskvalitet: Dokumenten måste ha innehåll av hög kvalitet. De får inte innehålla felstavningar eller grammatiska fel. Språkmodeller fungerar inte bra om du ger dem innehåll av dålig kvalitet.
Om du vill samla in testdokument bör du vara kvalitativt säker att testdokumenten helt och korrekt representerar din specifika domän.
Vägledning för testdokument
Välj riktiga dokument framför syntetiska dokument. Verkliga dokument måste genomgå en rensningsprocess för att ta bort personuppgifter.
Överväg att selektivt utöka dina dokument med syntetiska data. Den här processen hjälper dig att se till att dina dokument täcker alla typer av scenarier, inklusive förutsagda framtida scenarier. Om du måste använda syntetiska data gör du ditt bästa för att få dem att likna verkliga data så mycket som möjligt.
Kontrollera att dokumenten kan hantera de frågor som du samlar in.
Ha minst två dokument för varje dokumentvariant.
Använd språkmodeller eller andra verktyg för att utvärdera dokumentens kvalitet.
Samla in testfrågor
I det här steget samlar du in testfrågor som du använder för att utvärdera dina segment, din söklösning och din promptteknik. Gör det här steget när du samlar in de representativa dokumenten. Du bör samla in frågorna och bestämma hur de representativa dokumenten hanterar dessa frågor samtidigt. Genom att ha både exempelfrågorna och de delar av exempeldokumenten som hanterar dessa frågor kan du utvärdera varje steg i RAG-lösningen medan du experimenterar med olika strategier och metoder.
Samla in testfrågeutdata
Utdata från den här fasen innehåller innehåll från samla in representativa testfrågor steg och samla in representativa testdokument steg. Utdata är en samling som innehåller följande data:
Fråga: Frågan, som representerar en legitim användares potentiella begäran.
Kontext: En samling med all faktisk text i dokumenten som adresserar frågan. För varje kontext bör du inkludera sidan och den faktiska texten.
Svar: Ett giltigt svar på frågan. Svaret kan vara innehåll som är direkt från dokumenten, eller så kan det omformuleras från en eller flera kontexter.
Skapa syntetiska frågor
Det är ofta svårt för ämnesexperterna (små och medelstora företag) för en viss domän att sammanställa en omfattande lista med frågor för användningsfallet. En lösning på den här utmaningen är att generera syntetiska frågor från de representativa testdokument som du samlar in. Följande steg beskriver en verklig metod för att generera syntetiska frågor från representativa dokument:
Dela upp dokumenten i segment. Dela upp dokumenten i segment. Använd inte segmenteringsstrategin för din övergripande lösning. Använd det här engångssteget som du använder för att generera syntetiska frågor. Du kan utföra segmenteringen manuellt om antalet dokument är rimligt.
Generera frågor för varje segment. För varje segment genererar du frågor antingen manuellt eller med hjälp av en språkmodell. När du använder en språkmodell börjar du vanligtvis med att generera två frågor för varje segment. Du kan också använda språkmodellen för att skapa svaret. I följande exempel visas en uppmaning som genererar frågor och svar för ett segment.
Please read the following CONTEXT and generate two question and answer JSON objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern-matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT. Provide concise answers to each question, and directly quote the text from the provided context. Provide the array output in strict JSON format as shown in the output format. Ensure that the generated JSON is completely structurally correct, including proper nesting, comma placement, and quotation marks. There shouldn't be a comma after the last element in the array. Output format: [ { "question": "Question 1", "answer": "Answer 1" }, { "question": "Question 2", "answer": "Answer 2" } ] CONTEXT:Kontrollera utdata. Kontrollera att frågorna är relevanta för användningsfallet och att svaren löser frågan. Ett litet eller medelstora företag bör utföra den här verifieringen.
Oadresserade frågor
Det är viktigt att samla in frågor som dokumenten inte adresserar och de frågor som de hanterar. När du testar din lösning, och särskilt när du testar språkmodellen, måste du bestämma hur lösningen ska svara på frågor som den inte har tillräcklig kontext för att besvara. Lösningen kan svara på frågor som lösningen inte kan hantera:
Ange att den inte vet svaret.
Ange att den inte känner till svaret och ange en länk där användaren kan hitta mer information.
Samla in testfrågor för inbäddade medier
Precis som med text bör du samla in en mängd olika frågor som innebär att använda det inbäddade mediet för att generera mycket relevanta svar. Om du har bilder med grafer, tabeller eller skärmbilder kontrollerar du att du har frågor som täcker alla användningsfall. Om du bestämmer i bilddelen av dokumentanalyssteget att texten före eller efter bilden krävs för att besvara några frågor, kontrollerar du att frågorna finns med i dina testfrågor.
Samla in vägledning för testfrågor
Ta reda på om det finns ett system som innehåller verkliga kundfrågor som du kan använda. Om du till exempel skapar en chattrobot för att besvara kundfrågor kan du kanske använda kundfrågor från supportavdelningen, vanliga frågor och svar eller biljettsystem.
Kunden eller SME för användningsfallet bör fungera som en kvalitetsgrind för att avgöra om de insamlade dokumenten, de associerade testfrågorna och svaren på frågorna från dokumenten är omfattande, representativa och korrekta.
Granska brödtexten med frågor och svar regelbundet för att säkerställa att de fortsätter att återspegla källdokumenten korrekt.