Mengoptimalkan pengambilan dokumen

Retrieval Augmented Generation (RAG) dengan LangChain

Meri Nova

Machine Learning Engineer

Menempatkan R dalam RAG...

Dokumen diambil dari basis data vektor dan dikirim kembali ke aplikasi untuk membuat respons.

Retrieval Augmented Generation (RAG) dengan LangChain

Dense

Mengenkode potongan sebagai satu vektor dengan komponen non-zero

Ruang vektor yang menampilkan istilah serupa dikelompokkan bersama: Large Language Model, AI, dan Machine Learning.

  • Kelebihan: Menangkap makna semantik
  • Kekurangan: Mahal secara komputasi
Retrieval Augmented Generation (RAG) dengan LangChain

Dense

Mengenkode potongan sebagai satu vektor dengan komponen non-zero

Istilah tersemat dalam ruang vektor dengan istilah yang lebih mirip secara semantik dikelompokkan lebih dekat.

  • Kelebihan: Menangkap makna semantik
  • Kekurangan: Mahal secara komputasi

Sparse

Mengenkode dengan pencocokan kata dengan sebagian besar komponen zero

Dokumen yang berisi kemunculan istilah tertentu, dengan dokumen yang berisi istilah terbanyak ditonjolkan.

  • Kelebihan: Presisi, dapat dijelaskan, menangani kata langka
  • Kekurangan: Generalisasi
Retrieval Augmented Generation (RAG) dengan LangChain

Metode retrieval sparse

TF-IDF: Mengenkode dokumen menggunakan kata-kata yang membuat dokumen unik

Dokumen yang berisi kemunculan istilah tertentu, dengan dokumen yang berisi istilah terbanyak ditonjolkan.

BM25: Membantu mengurangi kejenuhan dari kata berfrekuensi tinggi dalam pengkodean

Retrieval Augmented Generation (RAG) dengan LangChain

Pencarian BM25

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

Pencarian BM25

results = bm25_retriever.invoke("When was Python created?")
print("Most Relevant Document:")
print(results[0].page_content)
Dokumen Paling Relevan:
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) dengan LangChain

BM25 dalam 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) dengan LangChain

BM25 dalam RAG

print(chain.invoke("How can LLM hallucination impact a RAG application?"))
Aplikasi RAG dapat menghasilkan jawaban yang melenceng atau tidak akurat.
Retrieval Augmented Generation (RAG) dengan LangChain

Ayo berlatih!

Retrieval Augmented Generation (RAG) dengan LangChain

Preparing Video For Download...