การค้นหาข้อมูลโดยคำนึงถึงบริบทใน RAG คืออะไร?
การค้นหาข้อมูลโดยคำนึงถึงบริบทใน RAG หมายถึงการดึงเอกสารโดยพิจารณาประวัติการสนทนา เจตนาของผู้ใช้ และข้อมูลเมตา แทนที่จะพิจารณาเพียงแค่คำค้นหาดิบๆ โดยทั่วไปแล้วจะเกี่ยวข้องกับการเขียนคำค้นหาใหม่ การฝังบริบท หรือการกรองตามเซสชัน เพื่อให้แน่ใจว่าข้อความที่ดึงมานั้นตอบคำถามที่ผู้ใช้ต้องการในบริบทนั้นๆ อย่างแท้จริง
การค้นหาข้อมูลโดยไม่คำนึงถึงบริบททำงานอย่างไร?
การค้นหาแบบไม่คำนึงถึงบริบททำงานโดยการจับคู่คำค้นหาของผู้ใช้กับดัชนีโดยไม่คำนึงถึงการโต้ตอบก่อนหน้า การค้นหาคำหลักแบบคลาสสิก BM25 และการค้นหาเวกเตอร์หนาแน่นพื้นฐานจัดอยู่ในประเภทนี้ คำค้นหาแต่ละรายการจะถูก treated เป็นคำขอใหม่ที่แยกจากกัน ซึ่งทำให้ระบบทำงานได้รวดเร็วและคาดการณ์ได้
การค้นหาข้อมูลโดยคำนึงถึงบริบท หรือการค้นหาข้อมูลโดยไม่คำนึงถึงบริบท แบบไหนดีกว่าสำหรับแชทบอท?
การค้นหาข้อมูลโดยคำนึงถึงบริบทนั้นดีกว่าสำหรับแชทบอทเกือบทุกครั้ง เพราะผู้ใช้มักถามคำถามเพิ่มเติมที่ขึ้นอยู่กับคำตอบก่อนหน้า หากไม่มีบริบท ระบบจะไม่สามารถระบุคำสรรพนามหรือการอ้างอิง เช่น 'อันนั้น' หรือ 'ตัวเลือกก่อนหน้า' ได้ ทำให้ได้คำตอบที่ไม่เกี่ยวข้อง
คุณสามารถผสานรวมวิธีการดึงข้อมูลทั้งสองแบบได้หรือไม่?
ใช่ ระบบค้นหาแบบไฮบริดผสมผสานการค้นหาด้วยคำหลัก (ไม่คำนึงถึงบริบท) และการค้นหาเชิงความหมาย (มักคำนึงถึงบริบท) เพื่อสร้างสมดุลระหว่างความเร็วและความเกี่ยวข้อง ระบบที่ใช้งานจริงหลายระบบใช้ BM25 ร่วมกับการฝังข้อมูลแบบหนาแน่น จากนั้นรวมผลลัพธ์ด้วยการหลอมรวมอันดับแบบผกผันก่อนที่จะใช้ตัวกรองตามบริบท
การค้นหาข้อมูลโดยคำนึงถึงบริบทนั้นมีต้นทุนการทำงานสูงกว่าหรือไม่?
โดยทั่วไปแล้วจะเป็นเช่นนั้น เพราะคุณจำเป็นต้องจัดเก็บสถานะเซสชัน เรียกใช้โมเดลการเขียนคำค้นหาใหม่ และใช้ตัวกรองเมตาเดต้า ค่าใช้จ่ายเพิ่มเติมจะแตกต่างกันไป แต่คาดว่าจะมีความหน่วงและการประมวลผลเพิ่มขึ้นประมาณ 20-50% เมื่อเทียบกับการค้นหาเวกเตอร์แบบธรรมดา ขึ้นอยู่กับความซับซ้อนของการจัดการบริบท
การเขียนคำค้นหาใหม่ในการค้นหาข้อมูลโดยคำนึงถึงบริบทคืออะไร?
การเขียนคำถามใหม่ (Query rewriting) คือกระบวนการแปลงคำถามที่ไม่ชัดเจนและขึ้นอยู่กับบริบท ให้เป็นคำถามที่สมบูรณ์ในตัวเองก่อนที่จะทำการค้นหา ตัวอย่างเช่น คำถามว่า 'ราคาเป็นอย่างไรบ้าง?' อาจถูกเขียนใหม่เป็น 'ราคาของ iPhone 15 คือเท่าไหร่?' โดยอิงจากประวัติการสนทนา นี่เป็นหนึ่งในเทคนิคที่ใช้กันทั่วไปในระบบที่คำนึงถึงบริบท
BM25 ไม่คำนึงถึงบริบทหรือไม่?
ใช่แล้ว BM25 แบบดั้งเดิมนั้นไม่คำนึงถึงบริบท มันให้คะแนนเอกสารโดยพิจารณาจากความถี่ของคำและความถี่ผกผันของเอกสารเทียบกับคำค้นหาปัจจุบันเท่านั้น อย่างไรก็ตาม คุณสามารถนำ BM25 มาใช้ในกระบวนการประมวลผลที่คำนึงถึงบริบทได้โดยการเขียนคำค้นหาใหม่ก่อน หรือกรองผลลัพธ์โดยใช้เมตาเดต้าของเซสชัน
เกณฑ์ใดบ้างที่ใช้วัดประสิทธิภาพการค้นหาข้อมูลโดยคำนึงถึงบริบท?
เกณฑ์มาตรฐานที่ใช้กันทั่วไป ได้แก่ QReCC (Question Rewriting in Conversational Context), TopiOCQA (Topic-Oriented Conversational QA) และ CAsT (Conversational Assistance Track) ชุดข้อมูลเหล่านี้ประเมินว่าระบบจัดการกับคำถามแบบหลายรอบได้ดีเพียงใด โดยที่บริบทมีความสำคัญต่อการค้นหาคำตอบที่ถูกต้อง
ฐานข้อมูลเวกเตอร์ทั้งหมดรองรับการเรียกค้นข้อมูลตามบริบทหรือไม่?
ฐานข้อมูลเวกเตอร์สมัยใหม่ส่วนใหญ่ เช่น Pinecone, Weaviate, Chroma และ Qdrant รองรับการกรองเมตาเดต้าและการค้นหาแบบไฮบริด ซึ่งเป็นองค์ประกอบพื้นฐานสำหรับการเรียกค้นข้อมูลที่คำนึงถึงบริบท อย่างไรก็ตาม การจัดการบริบทที่แท้จริง เช่น การเขียนคำค้นหาใหม่ หน่วยความจำเซสชัน มักจะถูกนำไปใช้ในระดับแอปพลิเคชันบนฐานข้อมูล
ฉันควรใช้การค้นหาแบบไม่คำนึงถึงบริบทเมื่อใด?
การค้นหาข้อมูลโดยไม่คำนึงถึงบริบทนั้นเหมาะสมอย่างยิ่งเมื่อคำค้นหาไม่สมบูรณ์ ไม่จำเป็นต้องปรับแต่งให้เข้ากับแต่ละบุคคล และความเร็วในการตอบสนองหรือต้นทุนเป็นสิ่งสำคัญ ตัวอย่างเช่น การค้นหาเอกสารภายใน การค้นหาข้อมูลทางกฎหมาย การค้นหาสินค้าในเว็บไซต์อีคอมเมิร์ซ และสถานการณ์ใดๆ ก็ตามที่ผู้ใช้มักพิมพ์คำถามที่สมบูรณ์และเฉพาะเจาะจง