Augmented Generation (RAG) en indexen ophalen

Retrieval-Augmented Generation (RAG) is een patroon dat zoekopdrachten combineert met LLM's (Large Language Models), zodat de antwoorden zijn gebaseerd 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 vertrouwelijke documenten, of mogelijk hebt u actuele 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:

  • Grondgegevens: Opgehaalde gegevens die u aan het model verstrekt om giswerk 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 zoeken
  • 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 informatieherstel

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.

Agentische informatieophaling 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 meerlagige gesprekken natuurlijker worden.
  • 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 agenthulpprogramma's wanneer u een agent bouwt die retrieval als hulpprogramma vereist. Zie bijvoorbeeld hulpprogramma voor bestandszoekopdrachten voor agenten.

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

Kies een van deze paden op basis van uw behoeften om aan de slag te gaan:

  • Agent met informatieophaling: Als u een agent bouwt, gebruikt u informatieophaling als hulpprogramma. Zie de zoektool voor bestanden voor agenten.
  • Aangepaste RAG-toepassing: bouw een volledige RAG-app met de Foundry SDK voor volledige controle.

Beveiligings- en privacyoverwegingen

RAG-systemen kunnen gevoelige inhoud blootleggen als u de toegang en aansturing 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.
  • Prefer Microsoft Entra ID boven API-sleutels voor productie. API-sleutels zijn handig voor ontwikkeling, maar worden niet aanbevolen voor productiescenario's. Raadpleeg Verbinding maken met Azure AI Zoeken met behulp van rollen voor Azure AI Zoeken RBAC-richtlijnen.
  • 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:

  • Ophaal- en latentiekosten: Bij het opvragen van een index worden rondreizen en rekenkracht toegevoegd.
  • Kosten en latentie van embeddings: Vector search vereist embedden tijdens het indexeren en vaak tijdens 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 semantische of hybride zoekopdrachten gebruikt, raadpleegt u de prijzen en limieten voor Azure AI Zoeken in de Azure AI Zoeken-documentatie.

Beperkingen en probleemoplossing

Bekende beperkingen

  • RAG-kwaliteit is afhankelijk van de inhoudsvoorbereiding, de ophaalconfiguratie 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, zelfs met onderbouwing.
  • Als u de toegang tot broninhoud niet beheert, kunnen geaarde antwoorden gevoelige informatie uit uw index lekken.

Veelvoorkomende uitdagingen en risicobeperking

  • Slechte ophaalkwaliteit: Als uw index geen relevante passages ophaalt, controleer dan uw strategie voor het opdelen van gegevens, de kwaliteit van het inbeddingsmodel 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 passagefilters, rangschikking of samenvatting om binnen het budget te blijven.

Zie de zelfstudies en quickstarts in de sectie met gerelateerde inhoud hieronder voor begeleiding bij het evalueren van de effectiviteit van RAG.