Augmented Generation (RAG) en indexen ophalen (klassiek)

Momenteel weergeven:Foundry -portalversie - (klassiek)Overschakelen naar versie voor de nieuwe Foundry-portal

Verzoeken voor Retrieval Augmented Generation (RAG) vormen een patroon dat zoekopdrachten combineert met grote taalmodellen (LLM's), zodat antwoorden gebaseerd zijn op uw gegevens. In dit artikel wordt uitgelegd hoe RAG werkt in Microsoft Foundry, welke rolindexen spelen en hoe agentisch ophalen klassieke RAG-patronen wijzigt.

LLM's worden getraind op openbare gegevens die beschikbaar zijn tijdens de training. Als u antwoorden nodig hebt op basis van uw persoonlijke gegevens of op vaak veranderende informatie, helpt RAG u het volgende:

  • Relevante informatie ophalen uit uw gegevens (vaak via een index).
  • Geef die informatie aan het model op als grondgegevens.
  • Genereer een antwoord met bronvermeldingen terug naar broninhoud.

Wat is RAG?

Grote taalmodellen (LLM's) zoals ChatGPT worden getraind op openbare internetgegevens die beschikbaar waren toen het model werd getraind. De openbare gegevens zijn mogelijk niet voldoende voor uw behoeften. U wilt bijvoorbeeld antwoorden op basis van privédocumenten, of misschien hebt u recente informatie nodig.

RAG lost dit op door relevante inhoud op te halen uit uw gegevens en deze op te halen in de modelinvoer. Het model kan vervolgens antwoorden genereren die zijn geaard in de opgehaalde inhoud.

Belangrijkste concepten voor RAG:

  • Ondersteunende gegevens: Inhoud die u aan het model verstrekt om het raden te verminderen.
  • Index: Een gegevensstructuur die is geoptimaliseerd voor ophalen (trefwoord, semantisch, vector of hybride zoeken).
  • Insluitingen: numerieke weergaven van inhoud die wordt gebruikt voor het zoeken naar vector-overeenkomsten. Zie Meer informatie over insluitingen.
  • Systeembericht en prompts: instructies die bepalen hoe het model gebruikmaakt van opgehaalde inhoud. Zie prompt-engineering en veiligheidssysteemberichten.

Hoe werkt RAG?

RAG volgt een stroom in drie stappen:

  1. Ophalen: Wanneer een gebruiker een vraag stelt, vraagt uw toepassing een index of gegevensarchief op om relevante inhoud te vinden.
  2. Augment: De app combineert de vraag van de gebruiker en de opgehaalde inhoud (grondgegevens) in een prompt.
  3. Genereren: Het model ontvangt de uitgebreide prompt en genereert een antwoord dat is geaard in de opgehaalde inhoud, waardoor onnauwkeurigheden worden verminderd en nauwkeurige bronvermeldingen mogelijk worden gemaakt.

Diagram met een gebruikersquery, ophalen uit een gegevensarchief en een geaard modelantwoord.

Wat is een index en waarom heb ik deze nodig?

RAG werkt het beste wanneer u snel en consistent relevante inhoud kunt ophalen. Een index helpt bij het ordenen van uw inhoud voor een efficiënte ophaalbewerking.

Veel RAG-oplossingen gebruiken een index die een of meer van deze ophaalmodi ondersteunt:

  • Trefwoorden zoeken
  • Semantische zoekopdracht
  • Vector Search
  • Hybride zoekopdracht (trefwoord + vector, soms met semantische rangschikking)

Een index kan ook velden opslaan die de bronvermeldingskwaliteit verbeteren (bijvoorbeeld documenttitels, URL's of bestandsnamen).

Diagram met het ophalen van een index en hoe de opgehaalde passages worden toegevoegd aan de modelprompt.

Foundry kan uw project verbinden met een Azure AI Zoeken-service en index voor het ophalen. Afhankelijk van de functie en het API-gebied dat u gebruikt, kunnen deze verbindingsgegevens worden weergegeven als een projectverbinding of een indexasset-id.

De preview-versie van foundry Project REST API bevat bijvoorbeeld een index_asset_id-veld voor Azure AI Zoeken indexbronnen. Zie Foundry Project REST API preview.

Azure AI Zoeken is een aanbevolen indexopslag voor RAG-scenario's. Azure AI Zoeken ondersteunt het ophalen van vector- en tekstgegevens die zijn opgeslagen in zoekindexen en kan ook andere doelen worden opgevraagd als u agentisch ophalen gebruikt. Zie What is Azure AI Zoeken?.

Agentic RAG: moderne benadering voor informatieophaling

Traditionele RAG-patronen gebruiken vaak één query om informatie op te halen uit uw gegevens. Agentisch ophalen, ook wel agentische RAG genoemd, is een evolutie in de ophaalarchitectuur die gebruikmaakt van een model om complexe invoer op te splitsen in meerdere gerichte subquery's, deze parallel uit te voeren en gestructureerde grondingsgegevens te retourneren die goed werken met modellen voor chatvoltooiing.

Agentic retrieval biedt verschillende voordelen ten opzichte van klassieke RAG:

  • Contextbewuste queryplanning : gebruikt gespreksgeschiedenis om context en intentie te begrijpen. Vervolgvragen behouden de context van eerdere uitwisselingen, waardoor meerledige gesprekken natuurlijker aanvoelen.
  • Parallelle uitvoering : voert meerdere gerichte subquery's tegelijk uit voor een betere dekking. In plaats van één query opeenvolgend op te halen, vermindert parallelle uitvoering de latentie en haalt meer diverse relevante resultaten op.
  • Gestructureerde antwoorden : retourneert grondgegevens, bronvermeldingen en uitvoeringsmetagegevens, samen met resultaten. Deze gestructureerde uitvoer maakt het eenvoudiger voor uw toepassing om bronnen nauwkeurig te citeren en de redenering achter antwoorden te traceren.
  • Ingebouwde semantische rangschikking : zorgt voor optimale relevantie van resultaten. Semantische classificatie filtert ruis en prioriteert echt relevante passages, wat vooral belangrijk is voor grote gegevenssets.
  • Optionele antwoordsynthese : kan antwoorden die met LLM zijn geformuleerd rechtstreeks in het antwoord van de query bevatten. U kunt er ook voor kiezen om onbewerkte, exacte passages te retourneren die door uw toepassing moeten worden verwerkt.

Zie Agentic retrieval and Quickstart: Agentic retrieval als u Azure AI Zoeken gebruikt als uw ophaalprogramma.

Een methode kiezen in Foundry

Foundry ondersteunt meerdere patronen voor het werken met persoonlijke gegevens. Kies op basis van de complexiteit van uw use-case en hoeveel controle u nodig hebt:

  • Gebruik RAG wanneer u antwoorden nodig hebt die zijn geaard in privé- of regelmatig veranderende gegevens.
  • Gebruik verfijning wanneer u modelgedrag, stijl of taakprestaties moet wijzigen in plaats van nieuwe kennis toe te voegen.
  • Gebruik een beheerde 'gebruik uw gegevens'-ervaring als u een meer begeleide manier wilt om verbinding te maken, op te nemen en te chatten over uw gegevens. Zie Azure OpenAI op uw gegevens en Quickstart: Chatten met Azure OpenAI-modellen met uw eigen gegevens.

Aan de slag met RAG in Foundry

Het implementeren van RAG in Foundry volgt doorgaans deze werkstroom:

  1. Uw gegevens voorbereiden: uw persoonlijke documenten of knowledge base ordenen en opdelen in doorzoekbare inhoud
  2. Een index instellen: Maak een Azure AI Zoeken index of gebruik een andere ophaalservice om uw inhoud te organiseren voor efficiënt zoeken
  3. Verbinding maken met Foundry: Maak een verbinding vanuit uw Foundry-project met uw index of ophaalservice
  4. Uw RAG-toepassing bouwen: Ophalen integreren met uw LLM-aanroepen met behulp van de Foundry SDK of REST API's
  5. Testen en evalueren: Controleer of de kwaliteit van het ophalen goed is en of antwoorden correct en correct zijn geciteerd

Volg deze handleidingen om aan de slag te gaan:

Beveiligings- en privacyoverwegingen

RAG-systemen kunnen gevoelige inhoud blootleggen als u de toegang en prompts niet zorgvuldig ontwerpt.

  • Pas toegangsbeheer toe tijdens het ophalen. Als u Azure AI Zoeken als gegevensbron gebruikt, kunt u toegangsbeheer op documentniveau gebruiken met beveiligingsfilters.
  • Verkies Microsoft Entra ID boven API-sleutels voor productie. API-sleutels zijn handig voor ontwikkeling, maar worden niet aanbevolen voor productiescenario's. Voor Azure AI Zoeken RBAC-richtlijnen, zie Connect to Azure AI Zoeken using roles.
  • Opgehaalde inhoud behandelen als niet-vertrouwde invoer. Uw systeembericht en toepassingslogica moeten het risico op promptinjectie van documenten en opgehaalde passages verminderen. Zie veiligheidssysteemberichten.

Overwegingen voor kosten en latentie

RAG voegt extra werk toe in vergelijking met een aanvraag voor alleen modellen:

  • Ophaalkosten en latentie: bij het uitvoeren van query's op een index worden ronde trips en computatie toegevoegd.
  • Embedding kosten en latentie: Vector search vereist embeddings tijdens indexering en vaak tijdens het opstellen van query's.
  • Tokengebruik: opgehaalde passages verhogen invoertokens, waardoor de kosten kunnen worden verhoogd.

Als u Azure AI Zoeken gebruikt, bevestigt u de servicelaag en prijzen vóór de productie-implementatie. Als u semantisch of hybride ophalen gebruikt, raadpleeg de prijzen en limieten van Azure AI Zoeken in de documentatie van Azure AI Zoeken.

Beperkingen en probleemoplossing

Bekende beperkingen

  • RAG-kwaliteit is afhankelijk van de voorbereiding van de inhoud, de configuratie van de retrieval en het promptontwerp. Slechte strategie voor gegevensvoorbereiding of indexering heeft rechtstreeks invloed op de responskwaliteit.
  • Als het ophalen irrelevante of onvolledige passages retourneert, kan het model nog steeds onvolledige of onnauwkeurige antwoorden produceren, ondanks de verankering.
  • Als u de toegang tot broninhoud niet beheert, kunnen onderbouwde antwoorden gevoelige informatie uit uw index lekken.

Veelvoorkomende uitdagingen en risicobeperking

  • Slechte ophaalkwaliteit: Als uw index geen relevante passages retourneert, controleer dan uw data-opdeelstrategie, de kwaliteit van het embeddingmodel en de zoekconfiguratie (trefwoord versus semantisch versus hybride).
  • Hallucinatie ondanks aarding: Zelfs met opgehaalde inhoud kunnen modellen nog steeds onnauwkeurige reacties genereren. Schakel bronvermeldingen in en gebruik duidelijke systeemberichten en prompts om het model te laten vasthouden aan opgehaalde inhoud.
  • Latentieproblemen: grote indexen kunnen langzaam worden opgehaald. Overweeg de indexeringsstrategie, het filteren en opnieuw rangschikken om het aantal verwerkte passages te verminderen.
  • Tokenbudget overschreden: opgehaalde passages kunnen snel tokenlimieten verbruiken. Implementeer het filteren van passages, ranking of samenvatting om binnen budget te blijven.

Zie de handleidingen en snelle starts in de sectie met gerelateerde inhoud hieronder voor hulp bij het evalueren van de RAG-effectiviteit.