การประเมินด้วย String
ถึงเวลาประเมินผลลัพธ์สุดท้ายอย่างจริงจัง โดยเปรียบเทียบกับคำตอบที่เขียนโดยผู้เชี่ยวชาญในสาขานั้น ๆ จะใช้คลาส LangChainStringEvaluator ของ LangSmith เพื่อทำการเปรียบเทียบ string นี้
prompt_template สำหรับการประเมินแบบ string ได้เตรียมไว้ให้แล้วดังนี้:
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:
ผลลัพธ์จาก RAG chain ถูกเก็บไว้ในตัวแปร predicted_answer และคำตอบของผู้เชี่ยวชาญถูกเก็บไว้ใน ref_answer
คลาสที่จำเป็นทั้งหมดได้ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Retrieval Augmented Generation (RAG) ด้วย LangChain
คำแนะนำการฝึกหัด
- สร้าง QA string evaluator ของ LangSmith โดยใช้
eval_llmและprompt_templateที่เตรียมไว้ - ประเมินผลลัพธ์จาก RAG ที่เก็บอยู่ใน
predicted_answerโดยเปรียบเทียบกับคำตอบของผู้เชี่ยวชาญสำหรับqueryซึ่งเก็บอยู่ในref_answer
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create the QA string evaluator
qa_evaluator = ____(
"____",
config={
"llm": ____,
"prompt": ____
}
)
query = "How does RAG improve question answering with LLMs?"
# Evaluate the RAG output by evaluating strings
score = qa_evaluator.evaluator.____(
prediction=____,
reference=____,
input=____
)
print(f"Score: {score}")