Giới thiệu về đánh giá RAG

Retrieval Augmented Generation (RAG) với LangChain

Meri Nova

Machine Learning Engineer

Các loại đánh giá RAG

Quy trình RAG làm nổi bật các bước có thể đánh giá: truy hồi, ảo giác của LLM, mức liên quan của câu trả lời với câu hỏi đầu vào, và so sánh câu trả lời với câu trả lời tham chiếu.

1 Nguồn ảnh: LangSmith
Retrieval Augmented Generation (RAG) với LangChain

Độ chính xác đầu ra: đánh giá chuỗi

query = "What are the main components of RAG architecture?"
predicted_answer = "Training and encoding"
ref_answer = "Retrieval and Generation"
Retrieval Augmented Generation (RAG) với LangChain

Độ chính xác đầu ra: đánh giá chuỗi

prompt_template = """You are an expert professor specialized in grading students' answers to questions.
You are grading the following question:{query}
Here is the real answer:{answer}
You are grading the following predicted answer:{result}
Respond with CORRECT or INCORRECT:
Grade:"""

prompt = PromptTemplate(
    input_variables=["query", "answer", "result"],
    template=prompt_template
)

eval_llm = ChatOpenAI(temperature=0, model="gpt-4o-mini", openai_api_key='...')
Retrieval Augmented Generation (RAG) với LangChain

Độ chính xác đầu ra: đánh giá chuỗi

from langsmith.evaluation import LangChainStringEvaluator

qa_evaluator = LangChainStringEvaluator(
    "qa",
    config={
        "llm": eval_llm,
        "prompt": PROMPT
    }
)

score = qa_evaluator.evaluator.evaluate_strings( prediction=predicted_answer, reference=ref_answer, input=query )
Retrieval Augmented Generation (RAG) với LangChain

Độ chính xác đầu ra: đánh giá chuỗi

print(f"Score: {score}")
Score: {'reasoning': 'INCORRECT', 'value': 'INCORRECT', 'score': 0}
query = "What are the main components of RAG architecture?"
predicted_answer = "Training and encoding"
ref_answer = "Retrieval and Generation"
Retrieval Augmented Generation (RAG) với LangChain

Khung Ragas

Bảng so sánh chỉ số sinh với chỉ số truy hồi.

1 Nguồn ảnh: Ragas
Retrieval Augmented Generation (RAG) với LangChain

Tính trung thực (Faithfulness)

  • Đầu ra sinh ra có trung thực với ngữ cảnh không?

 

$$ \text{Faithfulness} = \frac{\text{Số mệnh đề suy ra được từ ngữ cảnh}}{\text{Tổng số mệnh đề}} $$

  • Chuẩn hóa về (0, 1)
Retrieval Augmented Generation (RAG) với LangChain

Đánh giá tính trung thực

from langchain_openai import ChatOpenAI, OpenAIEmbeddings

from ragas.integrations.langchain import EvaluatorChain from ragas.metrics import faithfulness
llm = ChatOpenAI(model="gpt-4o-mini", api_key="...") embeddings = OpenAIEmbeddings(model="text-embedding-3-small", api_key="...")
faithfulness_chain = EvaluatorChain( metric=faithfulness, llm=llm, embeddings=embeddings )
Retrieval Augmented Generation (RAG) với LangChain

Đánh giá tính trung thực

eval_result = faithfulness_chain({

"question": "How does the RAG model improve question answering with LLMs?",
"answer": "The RAG model improves question answering by combining the retrieval of documents...",
"contexts": [ "The RAG model integrates document retrieval with LLMs by first retrieving relevant passages...", "By incorporating retrieval mechanisms, RAG leverages external knowledge sources, allowing the...", ]
})
print(eval_result)
'faithfulness': 1.0
Retrieval Augmented Generation (RAG) với LangChain

Độ chính xác ngữ cảnh

  • Tài liệu truy hồi liên quan với truy vấn đến mức nào?
  • Chuẩn hóa về (0, 1)1 = rất liên quan
from ragas.metrics import context_precision

llm = ChatOpenAI(model="gpt-4o-mini", api_key="...")
embeddings = OpenAIEmbeddings(model="text-embedding-3-small", api_key="...")

context_precision_chain = EvaluatorChain(
    metric=context_precision,
    llm=llm,
    embeddings=embeddings
)
Retrieval Augmented Generation (RAG) với LangChain

Đánh giá độ chính xác ngữ cảnh

eval_result = context_precision_chain({
  "question": "How does the RAG model improve question answering with large language models?",
  "ground_truth": "The RAG model improves question answering by combining the retrieval of...",
  "contexts": [
    "The RAG model integrates document retrieval with LLMs by first retrieving...",
    "By incorporating retrieval mechanisms, RAG leverages external knowledge sources...",
  ]
})

print(f"Context Precision: {eval_result['context_precision']}")
Context Precision: 0.99999999995
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...