Dela via


RAG (Retrieval Augmented Generation) på Azure Databricks

RAG (Retrieval Augmented Generation) är en kraftfull teknik som kombinerar stora språkmodeller (LLM) med datahämtning i realtid för att generera mer exakta, up-to-date och kontextuellt relevanta svar.

Den här metoden är särskilt värdefull för att besvara frågor om patentskyddad, ofta föränderlig eller domänspecifik information.

Vad är hämtningsförhöjd generation?

I den enklaste formen gör en RAG-agent följande:

  1. Hämtning: Användarens begäran används för att fråga en extern kunskapsbas, till exempel ett vektorarkiv, nyckelordssökning eller SQL-databas. Målet är att få stöddata för LLM:s svar.
  2. Förstärkning: Stöddata kombineras med användarens begäran, ofta med hjälp av en mall med ytterligare formatering och instruktioner till LLM, för att skapa en uppmaning.
  3. Generation: Uppmaningen skickas till LLM för att generera ett svar på användarens begäran.

Flödet för ett RAG-program från användarbegäran till datahämtning och svar.

RAG-förmåner

RAG förbättrar LLM:er på följande sätt:

  • Patentskyddad kunskap: RAG kan innehålla upphovsrättsskyddad information som inte ursprungligen används för att träna LLM, till exempel pm, e-postmeddelanden och dokument för att besvara domänspecifika frågor.
  • Uppdaterad information: Ett RAG-program kan förse LLM med information från en uppdaterad kunskapsbas.
  • Med hänvisning till källor: RAG gör det möjligt för LLM:er att citera specifika källor, vilket gör det möjligt för användare att kontrollera att svaren är korrekta.
  • ACL (Data Security and Access Control Lists): Hämtningssteget kan utformas för att selektivt hämta personlig eller upphovsrättsskyddad information baserat på användarautentiseringsuppgifter.

RAG-komponenter

Ett typiskt RAG-program omfattar flera steg:

  1. Datapipeline: Förprocess- och indexdokument, tabeller eller andra data för snabb och korrekt hämtning.

  2. RAG-kedja (Hämtning, Förstärkning, Generation): Anropa en serie (eller kedja) med steg för att:

    • Förstå användarens fråga.
    • Hämta stöddata.
    • Utöka prompten med stöddata.
    • Generera ett svar från en LLM med hjälp av den utökade prompten.
  3. Utvärdering och övervakning: Utvärdera RAG-programmet för att fastställa dess kvalitet, kostnad och svarstid för att säkerställa att det uppfyller dina affärskrav.

  4. Styrning och LLMOps: Spåra och hantera livscykel för varje komponent, inklusive datahärkomst och åtkomstkontroller.

Diagram över RAG-programkomponenter.

Typer av RAG-data: strukturerade och ostrukturerade

RAG-arkitekturen kan fungera med antingen ostrukturerade eller strukturerade stöddata. Vilka data du använder med RAG beror på ditt användningsfall.

Ostrukturerade data: Data utan en specifik struktur eller organisation.

  • PDF-filer
  • Google/Office-dokument
  • Wikis
  • Avbildningar
  • Videor

Strukturerade data: Tabelldata ordnade i rader och kolumner med ett specifikt schema, till exempel tabeller i en databas.

  • Kundposter i ett BI- eller datalagersystem
  • Transaktionsdata från en SQL-databas
  • Data från program-API:er (t.ex. SAP, Salesforce osv.)

Utvärdering och övervakning

Utvärdering och övervakning hjälper dig att avgöra om DITT RAG-program uppfyller kraven på kvalitet, kostnad och svarstid. Utvärderingen sker under utvecklingen, medan övervakning sker när programmet har distribuerats till produktion.

RAG över ostrukturerade data har många komponenter som påverkar kvaliteten. Dataformateringsändringar kan till exempel påverka de hämtade segmenten och LLM:s möjlighet att generera relevanta svar. Därför är det viktigt att utvärdera enskilda komponenter utöver det övergripande programmet.

Mer information finns i Mosaic AI Agent Evaluation (MLflow 2).

RAG på Databricks

Databricks erbjuder en plattform från slutpunkt till slutpunkt för RAG-utveckling, inklusive:

Nästa steg