Documentopvraging optimaliseren

Retrieval Augmented Generation (RAG) met LangChain

Meri Nova

Machine Learning Engineer

De R van RAG...

Documenten worden opgehaald uit een vectordatabase en teruggestuurd naar de applicatie om een antwoord te genereren.

Retrieval Augmented Generation (RAG) met LangChain

Dense

Codeer chunks als één vector met niet-nul componenten

Een vectorruimte met soortgelijke termen gegroepeerd: Large Language Model, AI en Machine Learning.

  • Voordelen: Vangt semantiek
  • Nadelen: Rekenintensief
Retrieval Augmented Generation (RAG) met LangChain

Dense

Codeer chunks als één vector met niet-nul componenten

Ingebedde termen in een vectorruimte, waarbij semantisch vergelijkbare termen dichter bij elkaar staan.

  • Voordelen: Vangt semantiek
  • Nadelen: Rekenintensief

Sparse

Codeer met woordovereenkomst met vooral nul componenten

De documenten met voorbeelden van bepaalde termen, waarbij de documenten met de meeste termen zijn gemarkeerd.

  • Voordelen: Precies, uitlegbaar, zeldzame-woordverwerking
  • Nadelen: Generaliseerbaarheid
Retrieval Augmented Generation (RAG) met LangChain

Sparse-opvraagmethoden

TF-IDF: Codeert documenten via woorden die het document uniek maken

De documenten met voorbeelden van bepaalde termen, waarbij de documenten met de meeste termen zijn gemarkeerd.

BM25: Dempt effect van zeer frequente woorden in de encoding

Retrieval Augmented Generation (RAG) met LangChain

BM25-opvraging

from langchain_community.retrievers import BM25Retriever

chunks = [ "Python was created by Guido van Rossum and released in 1991.", "Python is a popular language for machine learning (ML).", "The PyTorch library is a popular Python library for AI and ML." ]
bm25_retriever = BM25Retriever.from_texts(chunks, k=3)
Retrieval Augmented Generation (RAG) met LangChain

BM25-opvraging

results = bm25_retriever.invoke("When was Python created?")
print("Most Relevant Document:")
print(results[0].page_content)
Most Relevant Document:
Python was created by Guido van Rossum and released in 1991.
  • Python was created by Guido van Rossum and released in 1991."
  • "Python is a popular language for machine learning (ML)."
  • "The PyTorch library is a popular Python library for AI/ML."
Retrieval Augmented Generation (RAG) met LangChain

BM25 in RAG

retriever = BM25Retriever.from_documents(
    documents=chunks, 
    k=5
)

chain = ({"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() )
1 https://www.datacamp.com/blog/what-is-retrieval-augmented-generation-rag
Retrieval Augmented Generation (RAG) met LangChain

BM25 in RAG

print(chain.invoke("How can LLM hallucination impact a RAG application?"))
De RAG-app kan antwoorden genereren die off-topic of onjuist zijn.
Retrieval Augmented Generation (RAG) met LangChain

Laten we oefenen!

Retrieval Augmented Generation (RAG) met LangChain

Preparing Video For Download...