
Hybrid Search ช่วยยกระดับให้ AI ค้นหาได้แม่นยำ ทั้งคำและความหมาย
NEXT4I Developer
Founder & Software EngineerHybrid Search ช่วยยกระดับให้ AI ค้นหาได้แม่นยำ ทั้งคำและความหมาย
สิ่งที่ขัดใจในระบบค้นหาเอกสารไม่ใช่แค่ค้นไม่เจอ และบางครั้งมันค้นหาเจอแล้ว แต่คำตอบก็ยังใช้ไม่ได้
เอกสารบอกถึงการเบิกค่าเดินทางเหมือนกัน แต่เป็นนโยบายสำหรับคนละกลุ่ม หรือเป็นฉบับที่หมดอายุไปแล้ว ระบบตอบได้ลื่นมาก แต่เราเอาคำตอบนั้นไปใช้งานไม่ได้
ความเกี่ยวข้องของเนื้อหาเป็นจุดเริ่มต้นของคำตอบ แต่ไม่ใช่คำตอบที่ถูกต้อง
User แต่ละคนก็มีสไตล์ของตัวเอง หรือประโยคของตัวเองที่ใช้พูด
user ถามว่า “ทำงานที่บ้านได้กี่วัน?” เอกสารเขียนว่า “ปฏิบัติงานจากที่พักได้ไม่เกินสองวันต่อสัปดาห์”
ถ้าระบบต้องรอให้คนถามใช้ถ้อยคำเหมือนเอกสารทุกครั้ง ประสบการณ์ก็จะฝืน ผู้ใช้ต้องรู้คำตอบบางส่วนก่อน ถึงจะถามหาคำตอบได้
Vector Search ช่วยลดภาระนี้ โมเดล Embedding แปลงข้อความเป็นชุดตัวเลข แล้วระบบค้นหาข้อความที่มีความใกล้เคียงตามการแทนข้อความนั้น และเชื่อมคำถามกับข้อความที่ใช้สำนวนต่างกันได้ในหลายกรณี ขึ้นกับโมเดล ภาษา และข้อมูล
บางอย่างไม่ได้ต้องการหาการใกล้เคียง แต่ต้องการ code ที่ตรงกันเป๊ะๆ
การค้นหาด้วยความหมาย ไม่ใช่สิ่งที่เราใช้กับรหัส
เช่น รหัสอะไรสักอย่าง AF-240B กับ AF-2408 คล้ายกันมาก แต่ถ้ามันเป็นรหัสอะไหล่ มันอาจใช้แทนกันไม่ได้ ดังนั้นเคสแบบนี้ เอาความคล้ายมาเทียบอย่างเดียวไม่ได้ เช่น iPhone 6 กับ iPhone 16 มันคนละเรื่องกันเลย
Keyword Search ทำให้ การค้นหาตรงๆ มันแม่นยำกว่า หรือในข้อมูลบางอย่างก็อาจปรับให้ค้นหา แบบ search คำที่มีอยู่ก็ได้เช่น หาด้วย AF-240 แล้วต้องการให้เจอทั้ง AF-240A และ AF-240B
ผมจึงไม่มองว่า Vector กับ Keyword ที่เราต้องเลือก ผมมองว่ามันควรไปด้วยกันมากกว่า ซึ่งนี่แหล่ะครับ คือ Hybrid Search
เมื่อมีผลการค้นหาจาก 2 วิธี ปัญหาก็จะตามมา
ผลจาการค้นหา ทั้ง 2 แบบ ที่เราได้นั้น เราต้องหาวิธีในการจัดอันดับมันครับ เพื่อให้ แม่นยำและการเรียงลำดับจากการค้นหานั้นจริงๆ แต่หน่วยในการวัดความแม่นจำ มันจะเป็นคนละหน่วย เราจึงต้องหาอะไรสักอย่างที่เป็นหน่วย กลางเพื่อทำให้ เราจัดอันดับจากผลการค้นหาได้
เมื่อได้ผลลัพท์แล้ว มีอีกหลายวิธีในการจัดอันดับออกมาเพื่อจำนำมาปั้นเป็นคำตอบนะครับ แต่ก็มีอีกปัญหานะครับว่า
- ข้อมูลนั้นเป็นปัจจุบันหรือเปล่า อันไหนเก่ากว่า ใหม่กว่า แล้วจะเชื่ออันไหน
- ข้อมูลที่ออกมานั้น ได้รับการอนุญาตให้ user เข้าถึง ข้อมูลนั้นไหม
- ถ้าได้ผลลัพท์มา หลายชิ้น จะแสดงอะไรก่อน ถ้ามีคะแนน (ที่เราจัดอันดับ) เท่าๆกัน
- ผู้ถามต้องการข้อมูลอะไรจากผลที่หามาเจอ ผลลัพท์ที่ได้ ตอบคำถาม user ได้หรือยัง
พวกนี้เป็นปัญหาเบื้องต้นนะครับ ที่ระบบที่ดีต้องคิดเรื่องพวกนี้ต่อ บางอย่างตรงเป๊ะแต่คนะเรื่องเลยนะครับ เช่น user คุยเรื่อง ทำขนมอยู่ แล้วถามหา "นมแมว" แล้วในการค้นหา ด้วย Vector Search อาจจะเจอ "กลิ่นนมแมว" ที่เป็นกลิ่นทำขนมจริงๆ ให้คะแนนความตรงกับเนื้อหา 99% แต่ Keyword Search ก็เจอ "นมแมว" นมของแมวจริงๆ ให้คะแนนความตรงกับเนื้อหา 99% เหมือนกัน (ซึ่งมันไม่ผิดเลย) ถ้าคุณให้ ความสำคัญ 2 อย่างนี้เท่ากัน แล้วโยนไปให้ AI ตอบ... บอกเลยครับว่าเคสนี้ บรรเทิง แน่นอน ผมว่าคุณก็น่าจะเคยเจออะไรแบบนี้มาก่อนแน่ๆ
หรือจะมีอีกเคสเช่น User ถามหาข้อมูล iPhone 16 แต่ Vector Search ไปเจอ ข้อมูล iPhone 6,iPhone 16 pro (เพราะด้วยความใกล้เคียง) แล้ว เอาข้อมูลเหล่านี้มาให้ AI ตอบผสมกันมั่วไปหมดก็เป็นไปได้ ซึ่งเป็นสิ่งที่เราเจอได้แน่นอนครับถ้าเรายังปรับแต่งมาไม่ดีพอ
ยังมีปัญหาเรื่องความครบถ้วนของข้อมูลที่เกิดขึ้นได้
แม้ว่าระบบที่เราเลือกและค้นหาข้อมูลต้นฉบับ ทำได้ดีแล้ว ก็ยังต้องดูว่าข้อความที่ส่งให้โมเดลครบพอหรือไม่
เช่น มีวงเงินแต่ไม่มีข้อยกเว้น มีหัวข้อแต่ไม่มีเงื่อนไข หรือมีประโยคที่อ้างถึงตาราง แต่ไม่มีตารางนั้น สิ่งเหล่านี้แม้จะเกี่ยวข้องกับข้อความ แต่ไม่พอสำหรับคำตอบแน่นอน
และปัญหานี้เกิดจากการแบ่ง Chunk ของข้อมูลครับ บทความนี้ผมได้เสนอไปแล้วก่อนหน้า https://www.next4i.com/dev-notes/en/chunking-in-rag-dev-en ดังนั้นการแบ่งข้อมูลเป็น Chunk และการประกอบบริบทจึงสำคัญพอๆ กับวิธีค้นหา เราอาจค้นหาเจอ แต่ต้องอ่านส่วนที่เกี่ยวข้องเพิ่มภายในขอบเขตและสิทธิ์ที่ถูกต้อง
เราสามารถวัดคุณภาพจากได้จากคำถาม ที่ยากและซับซ้อน
เราวัดผลด้วยคะแนนเฉลี่ยเพื่อดูภาพรวม แต่คำถามที่ยากช่วยให้เราเห็นข้อจำกัดของระบบเรา
ผมจะแยกชุดทดสอบเป็นคำพ้อง รหัสที่คล้ายกัน นโยบายต่างเวอร์ชัน เงื่อนไขหลายข้อ และ case ที่ไม่มีข้อมูลหรือไม่มีสิทธิ์
ดูว่าหลักฐานต้นฉบับที่เป็นคำตอบติดผลค้นหาหรือไม่ อยู่ลำดับต้นๆไหม และลำดับนั้นมันเพียงพอกับที่จะถูกนำมาส่งให้ AI ตอบไหม และคำตอบที่ AI รวบรวมมาตอบน้ำใช้ข้อความจริงหรือเปล่า แต่งประโยค แต่ส่วนสำคัญคัญถูกแต่งให้ผิดเพี้ยนไหม แล้วค่อยไปดูเรื่องเวลาและต้นทุนที่เพิ่ม ต่อการใช้งานแต่ละครั้ง
แล้วก็ถ้าเราถามในสิ่งที่ไม่มีคำตอบ ระบบต้องยอมบอกว่ามีข้อมูลไม่พอ และไม่ใช่ตอบมั่วโดยที่ไม่มีข้อมูลต้นฉบับ
สุดท้ายแล้ว
Hybrid Search ไม่ได้รับประกันความแม่นยำ แต่เป็นเครื่องมือให้ระบบมีหลายทางในการพบหลักฐาน
สิ่งที่ผมอยากให้เห็นคือคำถามหนึ่งข้อมีเส้นทางที่ตรวจสอบได้: ค้นอะไรมา เลือกอะไรออก เงื่อนไขไหนถูกบังคับ และหลักฐานอะไรไปถึงโมเดล
ติดตามการเดินทางของ NEXT4I ได้โดยตรงผ่านเว็บไซต์นี้ และสามารถลงทะเบียนเพื่อทดลองใช้ผลิตภัณฑ์ → ได้ที่นี่
Related Articles
All Journey

ทำไมไฟล์ Markdown (.md) ถึงคือที่สุดในยุค AI บทเรียนจากสงคราม PDF ของผม

LLM ทำงานอย่างไร? จากการเดาคำ สู่ระบบสถาปัตยกรรมอัจฉริยะของ NEXT4I

Token คืออะไรในโลก AI? เจาะลึกการคิดเงิน ภาษาไทยกิน Token ? และเทคนิคประหยัด Token สูงสุด 50-80%

Skill File สำหรับ AI คืออะไร และจำเป็นต้องทำ Index ไหม

RAG คืออะไร? AI รู้ข้อมูลใหม่ หรือข้อมูลเฉพาะของเราได้อย่างไร และวิธีการให้ AI “เปิดหนังสือ” ก่อนที่จะตอบคำถามเรา

การค้นหาเนื้อหาในไฟล์ และการให้ AI ตอบคำถามจากไฟล์ จาก Ctrl + F สู่ระบบค้นหาข้อมูลในยุค AI

การทำระบบให้ AI ตอบคำถาม Chunking คืออะไร สำคัญอย่างไร?
Be the first to try it
ลงชื่อเพื่อรับแจ้งเตือน และร่วมเป็นผู้ใช้งานกลุ่มแรกพร้อมรับสิทธิพิเศษ
Drop your email to get notified. Early access members get exclusive perks!
We hate spam as much as you do. Only big updates, no junk.
No subscriptions. No annual fees. No lock-ins.
NEXT4I