GraphRAG: ใช้ Knowledge Graph กับ AI
เมื่อคำถามคือภาพรวมของเอกสารทั้งคลัง RAG แบบปกติอาจไม่พอ เข้าใจ Knowledge Graph และ GraphRAG ว่าทำงานยังไง เหมาะกับงานไหน และต้นทุนที่ต้องรู้
ผู้จัดการฝ่ายบริการลูกค้ามีบันทึกการโทรหลายพันรายการ และอยากถาม AI ว่า "ปีนี้ลูกค้าบ่นเรื่องอะไรมากที่สุด และแต่ละเรื่องเชื่อมโยงกับสินค้าตัวไหน" RAG แบบปกติตอบคำถามนี้ได้ไม่ดี เพราะมันถนัดหาข้อความไม่กี่ชิ้นที่ตรงกับคำถาม ไม่ใช่สรุปภาพรวมจากเอกสารทั้งคลัง นี่คือโจทย์ที่ GraphRAG ถูกออกแบบมาแก้
Knowledge Graph และ GraphRAG คืออะไร
Knowledge Graph คือการเก็บความรู้เป็นเครือข่ายของ "สิ่ง" (entity) กับ "ความสัมพันธ์" (relationship) เช่น "สินค้า A" ผลิตโดย "โรงงานลำพูน" และ "ลูกค้ากลุ่ม B" ร้องเรียนเรื่อง "การจัดส่งล่าช้า" ของ "สินค้า A" แต่ละสิ่งคือจุด (node) และแต่ละความสัมพันธ์คือเส้นเชื่อม (edge)
GraphRAG คือการใช้ knowledge graph เป็นส่วนหนึ่งของการค้นและสรุปข้อมูลก่อนให้ AI ตอบ แนวทางที่ถูกพูดถึงมากคือของ Microsoft ซึ่งเผยแพร่ในงานวิจัย From Local to Global: A Graph RAG Approach to Query-Focused Summarization (2024)
GraphRAG ของ Microsoft ทำงานยังไง
1. หั่นเอกสารและสกัดความรู้
เอกสารถูกหั่นเป็น chunk แล้วให้ LLM อ่านแต่ละชิ้นเพื่อดึง entity ความสัมพันธ์ และข้อกล่าวอ้าง (claims) ออกมา พร้อมคำอธิบายสั้นๆ
2. สร้างกราฟและแบ่งกลุ่ม
entity กลายเป็นจุด ความสัมพันธ์กลายเป็นเส้น จากนั้นใช้อัลกอริทึม Leiden แบ่งกราฟเป็นกลุ่ม (community) ของเรื่องที่เกี่ยวข้องกัน ซ้อนกันเป็นหลายระดับ
3. เขียนสรุปของแต่ละกลุ่ม
LLM เขียนรายงานสรุปของแต่ละ community ไว้ล่วงหน้า เหมือนมีบทสรุปผู้บริหารของแต่ละหัวข้อเตรียมไว้
4. ตอบคำถามภาพรวม
เมื่อมีคำถาม ระบบให้ LLM อ่านสรุปของแต่ละกลุ่มเพื่อเขียนคำตอบย่อย แล้วรวมคำตอบที่มีประโยชน์ที่สุดเป็นคำตอบสุดท้าย
ผลวิจัยบอกอะไร
งานวิจัยทดสอบกับชุดข้อมูลสองชุด คือบทถอดความพอดแคสต์และข่าว ขนาดชุดละราว 1 ล้าน token โดยใช้ LLM เป็นผู้ตัดสิน ผลคือ GraphRAG ให้คำตอบที่ครอบคลุมและหลากหลายกว่า vector RAG สำหรับคำถามเชิงภาพรวม ขณะที่ vector RAG ให้คำตอบที่ตรงประเด็นกว่า ผู้วิจัยเองระบุข้อจำกัดว่าทดสอบเพียงสองชุดข้อมูล และยังไม่ได้วัดอัตราการแต่งข้อมูล
เหมาะกับงานแบบไหน
- คำถามภาพรวม: ธีมหลักในความเห็นลูกค้า แบบสำรวจพนักงาน หรือรายงานวิจัยจำนวนมาก
- ข้อมูลที่ความสัมพันธ์สำคัญ: ใครเกี่ยวข้องกับใคร ซัพพลายเออร์รายไหนส่งวัตถุดิบให้สินค้าตัวไหน
- คำถามหลายทอด: ที่ต้องเชื่อมข้อมูลจากหลายเอกสารเข้าด้วยกัน
ส่วนคำถามข้อเท็จจริงเฉพาะจุด เช่น "ลาพักร้อนได้กี่วัน" RAG แบบปกติยังเหมาะกว่า ทั้งเร็วกว่าและถูกกว่า
ตัวอย่างในองค์กรไทย
ทีม HR ของบริษัทที่มีพนักงานหลายพันคน ได้ผลแบบสำรวจความผูกพันพร้อมความเห็นปลายเปิดจำนวนมาก แทนที่จะให้คนอ่านทีละข้อ ทีมลองใช้ GraphRAG สกัดหัวข้อ เช่น ภาระงาน หัวหน้างาน และการเดินทาง แล้วดูว่าแต่ละหัวข้อเชื่อมกับแผนกหรือสาขาไหน ผลที่ได้เป็นจุดตั้งต้นให้ทีมเลือกประเด็นไปคุยต่อ ไม่ใช่ข้อสรุปสุดท้าย
ข้อควรระวัง
- ต้นทุนการสร้างดัชนีสูง: ทุก chunk ต้องผ่าน LLM งานวิจัยรายงานว่าการสร้างดัชนีชุดข้อมูลพอดแคสต์ใช้เวลา 281 นาทีบน gpt-4-turbo
- กราฟผิดได้: LLM อาจดึง entity ผิด หรือรวมสิ่งที่ชื่อคล้ายกันเป็นสิ่งเดียว ต้องสุ่มตรวจ
- อัปเดตยากกว่า: เอกสารเปลี่ยนบ่อยหมายถึงต้องสร้างกราฟและสรุปใหม่บ่อย
- ข้อมูลอ่อนไหว: กราฟที่เชื่อมคน โครงการ และเหตุการณ์ อาจเผยข้อมูลที่แต่ละเอกสารไม่ได้เผยเมื่อแยกกันอยู่ ต้องวางสิทธิ์อย่างระมัดระวัง
Vector RAG หาเข็มในกองฟาง GraphRAG บอกว่ากองฟางมีรูปร่างแบบไหน
เริ่มต้นยังไง
- ตรวจว่าคำถามของผู้ใช้ส่วนใหญ่เป็นคำถามเฉพาะจุดหรือคำถามภาพรวม
- ถ้าเป็นเฉพาะจุด ทำ RAG แบบปกติให้ดีก่อน
- ถ้าเป็นภาพรวม ทดลอง GraphRAG กับชุดเอกสารเล็กๆ และประเมินต้นทุนการสร้างดัชนี
- เทียบคำตอบของทั้งสองแบบกับคำถามจริง โดยให้ผู้เชี่ยวชาญในเรื่องนั้นช่วยตัดสิน
- ตัดสินใจจากคุณค่าที่ได้เทียบกับต้นทุน ไม่ใช่จากความใหม่ของเทคนิค
ถ้ายังไม่แน่ใจเรื่องพื้นฐาน เริ่มจาก RAG คืออะไร และถ้าคุณกำลังมองหางานสาย Data หรือ AI ที่ได้ทำโปรเจกต์แบบนี้ ดู ตำแหน่งงานบน Plants.work