ทำความเข้าใจเรื่อง Multi-Hop Reasoning

Vector database ทำงานได้ดีสำหรับการค้นหาเชิงความหมาย (semantic search) แต่มีปัญหาเมื่อต้องใช้การให้เหตุผลแบบหลายขั้นตอน (multi-step reasoning) ที่เชื่อมโยงระหว่างบุคคล ระบบ และเหตุการณ์ต่างๆ

Standard RAG ดึงข้อมูลข้อความ (text chunks) โดยใช้หลักการทางคณิตศาสตร์ ซึ่งทำให้พลาดความเชื่อมโยงระหว่างจุดข้อมูลต่างๆ GraphRAG เข้ามาแก้ปัญหานี้ โดยการเชื่อมต่อ Large Language Models เข้ากับ Knowledge Graph ที่มีการอัปเดตอยู่ตลอดเวลา

Text-Attributed Graph ประกอบด้วยโหนด (nodes) และเส้นเชื่อม (edges)

  • โหนด (Nodes) คือ เอนทิตี (entities) เช่น ผู้ใช้ หรือ ผลิตภัณฑ์
  • เส้นเชื่อม (Edges) คือ ความสัมพันธ์ เช่น "IMPACTS" หรือ "CLONED_FROM"
  • "Hop" คือการเคลื่อนที่จากโหนดหนึ่งไปยังอีกโหนดหนึ่งผ่านเส้นเชื่อม

Multi-hop reasoning ช่วยค้นหาความเชื่อมโยงที่ไม่มีปรากฏอยู่ในเอกสารฉบับใดฉบับหนึ่งเพียงฉบับเดียว

ตัวอย่าง: ผู้ใช้ถามว่า "ฉันจะแก้ไขข้อผิดพลาดในการอัปโหลด CSV ได้อย่างไร?"

Standard RAG จะค้นหาจากคำสำคัญ (keywords) ซึ่งอาจจะคืนค่าเป็น FAQ เก่าๆ หรือรายงานบั๊กทั่วไป โดยที่พลาดบริบททางธุรกิจ (business context) ไป

GraphRAG จะติดตามเส้นทางที่แม่นยำ: (User Bug Report) -> [CLONED_FROM] -> (Master Engineering Ticket) -> [HAS_RESOLUTION] -> (Patch Deployed)

สิ่งนี้ช่วยให้ LLM ได้รับขั้นตอนที่ผ่านการตรวจสอบแล้ว แทนที่จะเป็นการคาดเดาแบบลอยๆ

คุณสามารถควบคุมสิ่งนี้ได้ผ่านสองวิธีการ:

  1. Depth Traversal ใช้เพื่อเจาะลึกลงไปในรายละเอียดเฉพาะเจาะจง ซึ่งมีประโยชน์สำหรับการวิเคราะห์หาสาเหตุที่แท้จริง (root-cause analysis) ในภาษา Cypher คุณสามารถกำหนดช่วงของ hop ได้ โดยการคิวรีอาจจะค้นหาลึกลงไป 1 ถึง 5 ชั้น เพื่อค้นหาขั้นตอนการจำลองบั๊ก (reproduction steps)

  2. Breadth Traversal ใช้เพื่อดูภาพรวมของระบบนิเวศ (ecosystem) ทั้งหมด โดยจะขยายออกในแนวราบเพื่อดูความเชื่อมโยงที่ใกล้ที่สุดทั้งหมด วิธีนี้ช่วยให้คุณเห็นตั๋วสนับสนุน (support ticket) ทุกใบที่ส่งผลกระทบต่อผลิตภัณฑ์หนึ่งๆ ได้ในคราวเดียว

ในการสร้าง AI ขั้นสูง อย่าเขียนคำสั่งคิวรีแบบตายตัว (hard-code) แต่ให้ใช้ระบบ multi-agent แทน:

  • The Coordinator Agent: เอเจนต์ตัวนี้ทำหน้าที่วางแผนการคิวรี โดยตัดสินใจว่าคำถามนั้นต้องการการค้นหาแบบกว้าง (breadth) หรือแบบลึก (depth) และจะเปลี่ยนคำสั่งของผู้ใช้ (user prompt) ให้กลายเป็นพารามิเตอร์ทางคณิตศาสตร์สำหรับการคิวรีในกราฟ
  • The Recursive Retrieval Agent: เอเจนต์ตัวนี้จะประเมินโหนดต่างๆ ในขณะที่ฐานข้อมูลค้นพบ โดยจะเก็บข้อมูลที่สำคัญไว้และกำจัดข้อมูลที่ไม่เกี่ยวข้อง (noise) ออกไปก่อนที่ LLM จะได้รับข้อมูล

สถาปัตยกรรมนี้ช่วยสร้างระบบที่สามารถขยายขอบเขตการสืบค้นได้ ทำให้คุณได้รับคำตอบที่สมบูรณ์ซึ่งการค้นหาแบบ vector search ไม่สามารถให้ได้

Source: https://dev.to/imhyke/understanding-multi-hop-reasoning-how-graph-databases-traverse-data-for-ai-31ml

Optional learning community: https://t.me/GyaanSetuAi