Opbygning af en vidensbase til RAG-applikationer
Når du bygger en RAG-applikation, står du over for et fundamentalt valg om, hvor information skal gemmes og hentes. Du kan investere i en komplet vidensgraf, der indfanger enheder og relationer med præcis struktur, eller du kan vælge en mere traditionel tilgang ved at opbygge en vidensbase bygget på dokumentsamlinger og vektorsøgning.
Vidensgrafer er fremragende til at modellere relationer og understøtte multi-hop-ræsonnement. Der er dog stærke argumenter for at starte med en vidensbase til RAG-applikationer.
I denne artikel guider vi dig gennem formålet med en vidensbase med hensyn til RAG, hvordan man designer og implementerer en, og hvilke bedste fremgangsmåder du kan følge for at sikre ydeevne og nøjagtighed, efterhånden som dit indhold vokser.
En oversigt over Retrieval Augmented Generation (RAG)
Hentningsforøget generation eller RAG er simpelthen en LLM Brug af en ekstern kilde, såsom en vidensbase, til at generere kontekstuelt relevante svar. RAG har to komponenter:
- En hentefunktion til at hente relevante oplysninger fra en ekstern kilde
- En generator til at syntetisere disse oplysninger til et sammenhængende svar
Ved forespørgselstidspunktet henter systemet relevante data fra en tilsluttet kilde og bruger disse data til at generere output. Denne tilgang hjælper med at overvinde hallucinationstendenserne i rene generationsmodeller og gør det muligt for dem at levere opdaterede svar eller domænespecifikke detaljer.
At opbygge en virkelig effektiv RAG rørledning, du har brug for en fremragende vidensbase. Det er det, der bestemmer det indhold, modellen kan bruge, og hvor hurtigt den kan hente det.
Hvad er en vidensbase i RAG?
En vidensbase (KB) er et lager af relevante data eller oplysninger, som du kan trække på, når du har brug for at finde svar på almindelige spørgsmål eller fejlfinde problemer.
I forbindelse med RAG er en vidensbase typisk en samling af tekstpassager eller dokumentfragmenter. I modsætning til traditionelle databaser, der lagrer strukturerede data, indeholder en vidensbase primært indhold i naturligt sprog, såsom din organisations produktmanualer eller dokumentation.
Dette indhold er indekseret til meningsbaseret søgning. Det betyder, at RAG-systemet finder og udtrækker passager, der handler om de samme emner eller ideer som dit spørgsmål, selvom disse passager ikke bruger præcis de samme ord. Det opnår dette ved at konvertere indholdet i naturligt sprog (ved hjælp af avancerede AI-modeller som transformere) til højdimensionelle vektorer.
Hvorfor en vidensbase er helt fundamental for RAG
Uden en vidensbase er der intet at hente. Generatoren vil som standard bruge sine forudtrænede parametre, hvilket betyder, at den kan producere hallucineret indhold.
Vidensbaser er primært vigtige, fordi de fungerer som hukommelse for LLM'en. Her er tre nøgleting, som LLM'er ikke kan opnå uden en vidensbase:
- JordforbindelseEn specialiseret vidensbase giver faktuel kontekst for at reducere hallucinationer fra sprogmodellen.
- DomænetilpasningEn vidensbase gør det muligt for RAG at "injicere" domænespecifik viden uden at skulle omtræne eller finjustere modellen.
- RettidighedVidensbaser muliggør opdaterede svar ved at hente nyligt offentliggjort indhold, selvom basismodellen blev trænet for længe siden.
Kort sagt, uden en vidensbase er et RAG-system blot endnu en tekstgenerator – begrænset, generisk og upålidelig.
Skal du gå all-in med en vidensgraf til RAG?
Med al den hype omkring vidensgrafer til RAG-applikationer er det nemt at undre sig over, om de virkelig er den mest levedygtige løsning til at bygge LLM'er på. Så hvorfor starte med en vidensbase, før man investerer i vidensgrafer?
Her er et par flere grunde:
Enkelhed ved vektorbaseret indeksering
For det første findes det meste af verdens information i ustruktureret eller semistruktureret tekst såsom rapporter, e-mails, wikisider og andre dokumenter. At omdanne alt dette materiale til et kanonisk grafskema kræver en intensiv indsats for at fjerne flertydigheder, genkendelse af enheder, relationer og løbende kuratering.
I modsætning hertil giver en vektorbaseret vidensbase dig mulighed for at indeksere tekststykker direkte efter deres betydning. Du kan gå fra rå filer til et søgbart arkiv på få timer i stedet for uger.
Agile opdateringer
For det andet drager du fordel af problemfri opdateringer. Når nye dokumenter ankommer, konverterer du dem blot til indlejringer og tilføjer dem til dit indeks. Du undgår den skrøbelige natur af et stift grafskema, der skal genindtages og genannoteres, når emner ændrer sig, eller nye entitetstyper dukker op. Med en vektorbaseret tilgang afvejer du noget af den rigeste relationelle semantik for at opnå dramatisk hurtigere værdiskabelse og lavere operationel kompleksitet.
Skalerbar ydeevne til almindelige RAG-applikationer
Endelig skalerer vektorsøgemaskiner elegant. De fordeler dine indlejringsvektorer på tværs af shards og udnytter tilnærmede nærmeste neighbor-algoritmer, der opretholder hentningshastigheden, selv når dit korpus vokser til hundredvis af millioner af passager.
For mange almindelige RAG-brugsscenarier, såsom kundesupport, assistance til vidensmedarbejdere eller compliance-undersøgelser, opvejer omkostningerne ved at administrere en stor graf de marginale præcisionsgevinster, man kan opnå ved komplekse grafgennemgange.
Sådan opbygger du en vidensbase til RAG
Her er de trin, du skal igennem for at opbygge din vidensbase:
Trin 1: Forstå dit domæne og dine brugerspørgsmål
Der er nogle grundlæggende spørgsmål, du bør stille dig selv, før du rører ved data:
- Hvilke spørgsmål skal RAG-systemet besvare? Vær specifik omkring emnerne, domænerne og det nødvendige detaljeringsniveau.
- Hvem er målgruppen, og hvilken slags svar har de brug for? Dette vil påvirke sproget, kompleksiteten og typen af information, der inkluderes.
- Hvilke datakilder betragtes som pålidelige? RAG-systemets nøjagtighed afhænger af troværdigheden og korrektheden af de indlæste oplysninger.
- Hvad er de vigtigste enheder og koncepter? Identificér de kernemner, som din vidensbase vil dreje sig om.
Hvis du for eksempel bygger en supportassistent til din softwareplatform, vil brugerne sandsynligvis være interesserede i at søge information om dit produkts funktioner, integrationstrin eller fejlfindingsmetoder. Med disse nøgleoplysninger får du en klar retning om, at din vidensbase har brug for indhold såsom brugermanualer, ofte stillede spørgsmål, ændringslogge og forumdiskussioner som dine kernekilder.
Trin 2: Indsaml og rens dataene
Når du har klarhed over typen og dybden af det indhold, der er nødvendigt for din vidensbase, har du brug for en mekanisme til at indtage de relevante data og formatere dem i almindelig tekstform. Dette er vigtigt, fordi almindelig tekst er det universelle sprog for LLM-pipelines, og alt - fra chunking til embedding til generering - afhænger af, at det er rent og velformateret. Alt andet øger støjen og reducerer både relevans og svarkvalitet.
Du kan udtrække almindelig tekst fra forskellige filformater, herunder dokumenter, billeder og lydfiler, ved hjælp af Text Converter. Asteras dataudtrækningsplatform. Specifikt kan du bruge Text Convert til at udtrække tekst fra:
- Dokumenter og filer som PDF'er, DOC/DOCX, XLS/XLSX osv.
- Billeder ved hjælp af optisk tegngenkendelse (OCR)
- HTML-baserede filer
- MD-, MARKDOWN-, MKD-, MKDN-, MDWN- og MDOWN-filer
Husk, at målet her er at skabe et ensartet tekstkorpus, uanset de originale filtyper.
Trin 3: Opdel dataene i bidder
Da LLM'er har et begrænset kontekstvindue, kan de kun behandle en bestemt mængde tekst ad gangen. Det betyder, at du skal forbehandle og opdele store dokumenter i mindre, håndterbare "chunks", der passer inden for modellens token-grænser, dvs. er lette for den at fordøje. Denne proces kaldes chunking eller opdeling.
Astera's Text Splitter kan opdele teksten via almindeligt anvendte chunking-teknikker, såsom rekursiv, sætningsbaseret, HTML-baseret og afgrænserbaseret opdeling.
Trin 4: Generer indlejringer for hver chunk (vektorisering)
Du skal konvertere hvert tekststykke til en numerisk vektor – en liste af tal, der matematisk repræsenterer den semantiske betydning af det pågældende stykke, eller med andre ord, hvad teksten handler om på et konceptuelt niveau. For eksempel kan udtrykkene "genstart systemet" og "genstart maskinen" se forskellige ud, men indlejringsmodeller kan genkende, at de ofte optræder i lignende kontekster, og tildele dem lignende vektorer.
Denne proces kaldes vektorindlejring, og det er det, der gør det muligt for et RAG-system at sammenligne og hente relevante oplysninger baseret på betydning snarere end præcis ordlyd.
Du kan bruge objektet Build Embeddings indeni Asterabrugergrænseflade til:
- Indfang betydningen af din tekst ved hjælp af semantiske vektorindlejringer
- Udfør søgeordsbaseret matchning ved hjælp af TS-vektorer
Trin 5: Gem chunks i en vektordatabase
For at dine chunks sammen med deres indlejringer og metadata skal være tilgængelige for dit RAG-system, skal du gemme dem i en vektordatabase (vektorlager). Dette er vigtigt, fordi en vektordatabase muliggør:
- lighedssøgning: Sammenligner forespørgsler med prælagrede indlejringer af dokumentstykker. Målet er hurtigt at identificere stykker med lignende betydninger.
- Metadatafiltrering: Moderne vektordatabaser giver dig også mulighed for at filtrere resultater efter metadata, såsom kilde, dato eller dokumenttype. Dette gør det muligt for dit RAG-system at hente ikke kun relevant indhold, men også relevant indhold fra den rigtige kontekst, hvilket er afgørende for nøjagtighed og troværdighed i virksomhedsbrugssager. Hvis en bruger f.eks. spørger om en nyligt offentliggjort politik, kan du prioritere passager fra de nyeste dokumenter.
Eksempler på vektordatabaser inkluderer:
- Administrerede vektordatabaser (cloud): Pinecone, Zilliz Cloud (Milvus), Google Vertex AI Vector Search, Weaviate Cloud
- Selvhostede vektordatabaser: Milvus, ChromaDB, Qdrant
- Vektorindeksbiblioteker og søgning som en tjeneste: FAISS, Azure Cognitive Search
Typisk er det næste trin implementeringen af din hentningspipeline. Det vedrører dog opbygningen af RAG-applikationen, hvorimod vores fokus i denne artikel er på at opbygge vidensbasen.
Bedste praksis at huske på
En ren og pålidelig vidensbase er en stor hjælp til at optimere dit RAG-systems ydeevne, især da dit indhold sandsynligvis vil fortsætte med at vokse. Følgende bedste praksisser vil hjælpe dig med at designe en vidensbase.
- Opdel indhold efter betydning, ikke længde.
Opdel dine dokumenter i tydelige sektioner eller afsnit i stedet for at opdele dem efter antal tokens. Dette bevarer konteksten og forbedrer relevansen af de indsamlede svar. - Sørg for ensartet formatering på tværs af alle kilder.
Brug den samme struktur til overskrifter, lister og afstand, så din pipeline kan håndtere indhold ensartet. Dette reducerer fejl under chunking og hentning. - Mærk hver del med nyttige metadata.
Inkluder etiketter som emne, kilde, dato og type for at muliggøre filtreret og omfangsbaseret hentning senere. Metadata hjælper også med at organisere og administrere indholdet. - Fjern dubletter og forældede versioner.
Sørg for, at hvert stykke indhold kun vises én gang, og at ældre versioner ikke forbliver i indekset. Dette undgår forvirring og forbedrer svarenes pålidelighed. - Brug rene og pålidelige inputkilder.
Start med velskrevne og præcise dokumenter for at holde dit grundlag stærkt. Dårlig inputkvalitet fører til dårlig genfinding og svag generering.
Hvornår skal man bevæge sig hen imod en vidensgraf?
Selvom en vidensbase vil være nyttig i de tidlige stadier, kan du tilføje en graf, der refererer til de samme dokumenter, der er gemt i dit vektorindeks, når din use case begynder at kræve mere end "find mig den nærmeste tekstklump".
I praksis betyder det situationer, hvor:
- Kompleks entitetsræsonnement er påkrævet.
Hvis brugere for eksempel rutinemæssigt stiller multi-hop-spørgsmål (spørgsmål, der kræver ræsonnement på tværs af flere informationer for at kunne besvares korrekt) som "Hvilke forfattere på institution X udgav om emne Y efter 2020?", vil du drage fordel af en eksplicit graf over forfattere, institutioner, emner og udgivelsesdatoer.
- Flertydighedsproblemer eller koreferencer kan ikke løses alene ud fra kontekst.
Når det samme udtryk refererer til helt forskellige enheder, for eksempel kan ordet Merkur referere til en planet, et element eller endda en nu udgået bilproducent, vil en lille graf over entitetstyper og relationer dramatisk forbedre hentningspræcisionen.
- Hierarkiske taksonomier eller ontologier understøtter dit indhold.
Hvis din viden naturligt findes i lag, for eksempel produktlinjer, SKU'er og specifikationer, eller sygdomskategorier, undertyper og behandlinger, giver en graf dig mulighed for at bevæge dig op eller ned i hierarkiet for mere fleksible forespørgsler.
Husk, at introduktion af en graf ikke betyder at kassere dit fundament af vektorbaseret datalager; snarere at du beriger det. Du kan fortsætte med at udføre dit hårde arbejde via indlejringer (hurtig, skalerbar hentning af kandidatpassager) og derefter konsultere grafen kun for at forfine, filtrere eller udvide disse resultater. Og fordi denne hybridmodel kun tilføjer kompleksitet, hvor det er nødvendigt, holder du din kerne-pipeline slank.
Opbyg din vidensbase for RAG med Astera
For at oprette en vidensbase til RAG skal du gennemgå en række datacentrerede opgaver:
- Indtagelse af råt indhold fra dokumenter, websider og databaser
- Rensning og normalisering af teksten
- Opdel det i sammenhængende bidder
- Transformering af hvert segment til vektorindlejringer
- Indeksering af disse indlejringer for hurtig lighedssøgning.
Hvert af disse trin er afgørende for at sikre, at dit hentningslag præcist kan finde de mest relevante passager som svar på en forespørgsel, men hvert trin medfører også sine egne udfordringer, såsom:
- Skrivning af brugerdefinerede parsere til PDF-filer
- Justering af tekstopdelingslogik for at respektere semantiske grænser
- Afhængighed af forskellige værktøjer til generering af indlejring og vektorlagring
Det er her Astera kan gøre forskellen med sin AI-drevne datastak.
I stedet for at administrere flere scripts og API'er på tværs af forskellige værktøjer, kan du definere hele arbejdsgangen i et enkelt miljø. Dette forenkler overgangen mellem trin, reducerer risikoen for uoverensstemmelser og giver dig mulighed for at fokusere på at forbedre nøjagtigheden af hentning og integrere din sprogmodel til generering af svar.
specifikt Astera automatiserer processen med at oprette din RAG-vidensbase ved at levere:
- Træk-og-slip-forbindelser til almindelige kilder
- Forudbyggede transformationer til fjernelse af støj og tekstkonvertering
- Konfigurerbare chunking-moduler
- Generering af indlejring fra starten
Konklusion
Opbygning af en vidensbase til RAG tilbyder en pragmatisk vej til effektive applikationer med forbedret søgefunktion. Du udnytter den enorme mængde ustruktureret tekst med minimal kurateringsomkostninger, samtidig med at du får hurtig værdiskabelse og skalerbar ydeevne.
Og når dine krav udvikler sig, kan du altid udvide dit system med en vidensgraf til at håndtere avancerede ræsonnementsopgaver. Start med en veludviklet vidensbase, og du vil lægge et solidt fundament for fremtidige forbedringer af dine RAG-applikationer.
Vidensbase: Ofte stillede spørgsmål (FAQ)
Hvad er vidensstyring?
Videnstyring er processen med at indsamle, organisere, dele og vedligeholde en organisations kollektive ekspertise og informationsaktiver. I forbindelse med RAG involverer videnstyring indtagelse, indeksering og vedligeholdelse af indhold som dokumenter, ofte stillede spørgsmål, produktspecifikationer osv., så en AI-agent kan hente de mest relevante uddrag i realtid.
Hvad kendetegner en god vidensbase?
En stærk vidensbase er en, der dækker hele spektret af emner, som din AI vil støde på. Derudover skal alle dens artikler eller indlæg faktatjekkes og gennemgås af fageksperter. Endelig skal den være let tilgængelig for dine teammedlemmer og AI-systemer.
Hvad skal en vidensbase indeholde?
Der findes ikke et enkelt, universelt accepteret sæt kriterier, der dikterer det præcise indhold, en vidensbase skal indeholde. Generelt vil du dog opdage, at det meste indhold i vidensbasen består af strukturerede artikler, ustrukturerede dokumenter, ofte stillede spørgsmål og ordlister, ændringslogge, opdateringer og brugerfeedback.
Hvordan strukturerer du din vidensbase?
Kerneprincippet er at gøre informationen så let som muligt for en algoritme at finde den mest relevante kontekst til at besvare en brugers forespørgsel. Så en struktureret vidensbase til RAG-applikationer er en udfyldt vektordatabase, hvor hver post består af indholdsstykket, vektorindlejringen og metadataene.
Hvordan opretter jeg min egen vidensbase til RAG-applikationer?
Overordnet set kan du oprette en vidensbase på en af to måder: enten ved at kombinere bredt tilgængelige programmeringsbiblioteker og -tjenester selv, eller ved at udnytte en nøglefærdig løsning. I sidstnævnte tilfælde, Astera tilbyder et visuelt miljø med alt hvad du behøver for at opbygge en fuldt funktionel vidensbase til RAG.


