Optimera dokumenthämtning

Retrieval Augmented Generation (RAG) med LangChain

Meri Nova

Machine Learning Engineer

R:et i RAG...

Dokument som hämtas från en vektordatabas och skickas tillbaka till applikationen för att generera ett svar.

Retrieval Augmented Generation (RAG) med LangChain

Tät

Kodar textstycken som en enda vektor med icke-noll-komponenter

Ett vektorrum där liknande termer grupperas: Large Language Model, AI och Machine Learning.

  • Fördelar: Fångar semantisk betydelse
  • Nackdelar: Beräkningsintensivt
Retrieval Augmented Generation (RAG) med LangChain

Tät

Kodar textstycken som en enda vektor med icke-noll-komponenter

Inbäddade termer i ett vektorrum där semantiskt liknande termer grupperas tätare.

  • Fördelar: Fångar semantisk betydelse
  • Nackdelar: Beräkningsintensivt

Gles

Kodar med ordmatchning och mestadels noll-komponenter

Dokument som innehåller specifika termer, där dokument med flest träffar markeras.

  • Fördelar: Precis, förklarbar, hanterar ovanliga ord
  • Nackdelar: Generaliserbarhet
Retrieval Augmented Generation (RAG) med LangChain

Glesa hämtningsmetoder

TF-IDF: Kodar dokument utifrån de ord som gör varje dokument unikt

Dokument som innehåller specifika termer, där dokument med flest träffar markeras.

BM25: Motverkar att högfrekventa ord dominerar kodningen

Retrieval Augmented Generation (RAG) med LangChain

BM25-hämtning

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) med LangChain

BM25-hämtning

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) med LangChain

BM25 i 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) med LangChain

BM25 i RAG

print(chain.invoke("How can LLM hallucination impact a RAG application?"))
The RAG application may generate responses that are off-topic or inaccurate.
Retrieval Augmented Generation (RAG) med LangChain

Nu kör vi en övning!

Retrieval Augmented Generation (RAG) med LangChain

Preparing Video For Download...