RAG-pipeline

forkortelse for Retrieval-Augmented Generation pipeline

En RAG-pipeline er en systemarkitektur, der kombinerer en retriever til at hente relevante dokumenter fra en ekstern videnbase og en generator til at producere svar baseret på disse dokumenter.

Kort fortalt

En RAG-pipeline lader en sprogmodel søge i en database efter relevant information, før den svarer, så svarene bliver mere præcise og opdaterede.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En RAG-pipeline er en sekventiel arkitektur bestående af en retriever, der henter relevante dokumenter fra en videnbase, og en generator, der producerer et svar på baggrund af disse dokumenter og brugerens forespørgsel.

    • RAG-pipelinen starter med at omdanne brugerens spørgsmål til en embedding, som bruges til at søge i vektordatabasen.
    • Ved at integrere en RAG-pipeline kan virksomheder sikre, at deres chatbot altid svarer med den nyeste information fra deres interne dokumenter.

Hvornår bruges det

RAG-pipelines bruges i praksis til at forbedre faktuel nøjagtighed i sprogmodeller, især i chatbots og Q&A-systemer, hvor modellen har brug for adgang til specialiseret viden. Implementeringen kræver typisk en vektordatabase til indeksering af dokumenter og en prompt, der inkluderer de hentede kontekster.

Kodeeksempel

from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.llms import OpenAI
from langchain.chains import RetrievalQA

documents = ["..."]
vectorstore = FAISS.from_documents(documents, OpenAIEmbeddings())
llm = OpenAI()
qa = RetrievalQA.from_chain_type(llm, retriever=vectorstore.as_retriever())
response = qa.run("What is RAG?")

Eksempel på en simpel RAG-pipeline implementeret med LangChain og FAISS vektordatabase.

Oprindelse

Termen opstod med introduktionen af Retrieval-Augmented Generation (RAG) af Lewis et al. (2020), som en metode til at integrere retrieval i neurale sprogmodeller.

Afledte ord

2

Kilder

1
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)