Tối ưu hóa truy xuất tài liệu

Retrieval Augmented Generation (RAG) với LangChain

Meri Nova

Machine Learning Engineer

Đặt chữ R vào RAG...

Truy xuất tài liệu từ cơ sở dữ liệu vector và gửi lại ứng dụng để tạo phản hồi.

Retrieval Augmented Generation (RAG) với LangChain

Dense

Mã hóa các đoạn thành một vector với các thành phần khác 0

Một không gian vector với các thuật ngữ tương tự được nhóm gần nhau: Large Language Model, AI, và Machine Learning.

  • Ưu: Bắt được ngữ nghĩa
  • Nhược: Tốn tài nguyên tính toán
Retrieval Augmented Generation (RAG) với LangChain

Dense

Mã hóa các đoạn thành một vector với các thành phần khác 0

Các thuật ngữ được nhúng trong không gian vector, những thuật ngữ tương đồng ngữ nghĩa gần nhau hơn.

  • Ưu: Bắt được ngữ nghĩa
  • Nhược: Tốn tài nguyên tính toán

Sparse

Mã hóa bằng khớp từ với đa số thành phần là 0

Các tài liệu chứa những thuật ngữ cụ thể, trong đó tài liệu có nhiều thuật ngữ được tô sáng nhất.

  • Ưu: Chính xác, dễ giải thích, xử lý từ hiếm
  • Nhược: Khả năng khái quát hóa
Retrieval Augmented Generation (RAG) với LangChain

Phương pháp truy xuất dạng thưa

TF-IDF: Mã hóa tài liệu bằng các từ làm tài liệu trở nên khác biệt

Các tài liệu chứa những thuật ngữ cụ thể, trong đó tài liệu có nhiều thuật ngữ được tô sáng nhất.

BM25: Giảm tác động bão hòa do các từ xuất hiện quá thường xuyên

Retrieval Augmented Generation (RAG) với LangChain

Truy xuất 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) với LangChain

Truy xuất BM25

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) với LangChain

BM25 trong 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) với LangChain

BM25 trong RAG

print(chain.invoke("How can LLM hallucination impact a RAG application?"))
Ứng dụng RAG có thể tạo phản hồi lạc đề hoặc thiếu chính xác.
Retrieval Augmented Generation (RAG) với LangChain

Cùng luyện tập nào!

Retrieval Augmented Generation (RAG) với LangChain

Preparing Video For Download...