Sparse retrieval ด้วย BM25
ลองใช้งาน sparse retrieval กัน! จะสร้าง BM25 retriever เพื่อตอบคำถามเกี่ยวกับบทความวิชาการด้าน RAG ซึ่งถูกแบ่งออกเป็น chunk แล้วในตัวแปรชื่อ chunks นอกจากนี้ยังมีโมเดล OpenAI chat และ prompt ที่กำหนดไว้แล้วในชื่อ llm และ prompt ตามลำดับ สามารถดู prompt ที่เตรียมไว้ได้โดยพิมพ์ลงใน console
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Retrieval Augmented Generation (RAG) ด้วย LangChain
คำแนะนำการฝึกหัด
- สร้าง BM25 sparse retriever จากเอกสารที่เก็บอยู่ใน
chunksโดยกำหนดให้คืนค่าเอกสาร5รายการในการดึงข้อมูลแต่ละครั้ง - สร้าง LCEL retrieval chain เพื่อเชื่อม BM25 retriever เข้ากับ
llmและpromptที่เตรียมไว้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a BM25 retriever from chunks
retriever = ____
# Create the LCEL retrieval chain
chain = ({"context": ____, "question": ____}
| ____
| ____
| StrOutputParser()
)
print(chain.invoke("What are knowledge-intensive tasks?"))