Vector Database คืออะไร และเลือกยังไง
เข้าใจ Vector Database แบบไม่ต้องเขียนโค้ด: ทำงานยังไง ต่างจากฐานข้อมูลปกติตรงไหน และคำถามที่ควรถามก่อนเลือกใช้
ในประชุมโปรเจกต์ AI ครั้งแรก ทีม IT มักโยนคำถามขึ้นมาว่า "เราต้องซื้อ Vector Database ไหม" แล้วทุกคนในห้องก็เงียบ เพราะไม่มีใครแน่ใจว่ามันคืออะไร จำเป็นแค่ไหน และต่างจากฐานข้อมูลที่บริษัทใช้อยู่แล้วยังไง บทความนี้จะช่วยให้คุณคุยเรื่องนี้กับทีมได้อย่างมั่นใจ
Vector Database คืออะไร
Vector Database คือระบบที่ออกแบบมาเพื่อเก็บและค้นหา vector หรือ embedding ซึ่งเป็นชุดตัวเลขที่แทนความหมายของข้อความ รูปภาพ หรือข้อมูลอื่นๆ งานหลักของมันคือตอบคำถามว่า "ข้อมูลชิ้นไหนมีความหมายใกล้กับสิ่งที่ถามมากที่สุด" ซึ่งเป็นหัวใจของขั้นตอนค้นหาในระบบ RAG
ฐานข้อมูลทั่วไปถนัดค้นแบบตรงตัว เช่น "หาพนักงานที่รหัส 1024" แต่ Vector Database ถนัดค้นแบบ "ใกล้เคียง" เช่น คำถาม "ลาไปงานบวชพี่ชายได้ไหม" ควรเจอเอกสารเรื่องการลาเพื่ออุปสมบท แม้จะใช้คำไม่เหมือนกันเลย
มันค้นเร็วได้ยังไง
Exact search: เทียบทุกชิ้น
วิธีตรงไปตรงมาคือเอาคำถามไปเทียบกับทุก vector ในคลัง ได้ผลแม่นที่สุด แต่ช้าลงเรื่อยๆ เมื่อข้อมูลมีเป็นล้านชิ้น
Approximate search: ยอมแลกความแม่นนิดหน่อยเพื่อความเร็ว
ระบบส่วนใหญ่จึงใช้ดัชนีแบบประมาณ (Approximate Nearest Neighbor) ที่นิยมมากคือ HNSW ซึ่งมาจากงานวิจัยของ Malkov และ Yashunin (2016) หลักการคล้ายการหาบ้านในเมืองใหญ่ เริ่มจากแผนที่ระดับประเทศ ซูมเป็นจังหวัด อำเภอ แล้วค่อยไล่หาซอย แทนที่จะเดินเคาะทุกบ้าน
เอกสารของ pgvector ซึ่งเป็นส่วนขยายของ PostgreSQL อธิบายว่า การค้นแบบประมาณ "แลก recall บางส่วนเพื่อความเร็ว" ผลค้นจึงอาจต่างจากการค้นแบบเทียบทุกชิ้นเล็กน้อย และ HNSW ให้สมดุลความเร็วกับ recall ดีกว่าดัชนีแบบ IVFFlat แต่สร้างดัชนีช้ากว่าและใช้หน่วยความจำมากกว่า
ทางเลือกหลักที่มีในตลาด
- ส่วนขยายของฐานข้อมูลเดิม: เช่น pgvector บน PostgreSQL เหมาะถ้าทีมใช้ Postgres อยู่แล้ว ข้อมูลธุรกิจกับ vector อยู่ที่เดียวกัน ดูแลง่าย
- Vector Database เฉพาะทาง: เช่น Pinecone, Weaviate, Milvus, Qdrant หรือ Chroma ออกแบบมาเพื่องานนี้โดยตรง มีทั้งแบบบริการคลาวด์และแบบติดตั้งเอง
- Search engine ที่เพิ่มความสามารถด้าน vector: ระบบค้นหาหลายตัวรองรับทั้งการค้นแบบคีย์เวิร์ดและ vector ในที่เดียว เหมาะกับงานที่ต้องการ hybrid search
คำถามที่ควรถามก่อนเลือก
- ข้อมูลมีมากแค่ไหน: เอกสารไม่กี่พันหน้ากับสินค้าหลายล้านรายการต้องการระบบต่างกันมาก
- ทีมคุ้นกับอะไร: ระบบที่ทีมดูแลเป็นอยู่แล้วมักคุ้มกว่าระบบที่เก่งกว่าแต่ไม่มีใครเข้าใจ
- ต้องกรองด้วยเงื่อนไขไหม: เช่น ค้นเฉพาะเอกสารของแผนกตัวเอง หรือเฉพาะฉบับปีล่าสุด
- ข้อมูลต้องอยู่ที่ไหน: บางองค์กรต้องเก็บข้อมูลในประเทศหรือในระบบของตัวเอง ตามนโยบายและ PDPA
- ต้นทุนระยะยาว: ทั้งค่าบริการ ค่าเครื่อง และเวลาของทีมที่ต้องดูแล
ตัวอย่างการตัดสินใจ
บริษัทประกันขนาดกลางต้องการ Chatbot ตอบคำถามตัวแทนขายจากคู่มือผลิตภัณฑ์ราวร้อยฉบับ และใช้ PostgreSQL อยู่แล้ว ทีมจึงเลือกเปิด pgvector ในระบบเดิม ไม่ต้องเพิ่มระบบใหม่ ส่วนร้านค้าออนไลน์ที่มีสินค้าหลายล้านรายการ และต้องค้นแบบเข้าใจความหมายทุกครั้งที่ลูกค้าพิมพ์ อาจคุ้มกว่าที่จะใช้ระบบเฉพาะทางที่ออกแบบมาเพื่อปริมาณมาก
ข้อควรระวัง
- อย่าเลือกจากกระแสหรือ benchmark ของผู้ขายอย่างเดียว ทดสอบกับข้อมูลและคำถามจริงของคุณ
- การค้นแบบประมาณอาจพลาดเอกสารที่เกี่ยวข้องบางชิ้น ควรวัด recall เทียบกับการค้นแบบเทียบทุกชิ้นเป็นระยะ
- Vector Database ไม่ได้แก้ปัญหาเอกสารคุณภาพต่ำ ถ้าเนื้อหาผิดหรือหั่นไม่ดี ค้นเร็วแค่ไหนก็ได้คำตอบผิด
- วางระบบสิทธิ์การเข้าถึงให้ตรงกับเอกสารต้นฉบับ ไม่ใช่ให้ทุกคนค้นเจอทุกอย่าง
ฐานข้อมูลที่ดีที่สุด คือฐานข้อมูลที่ทีมของคุณดูแลได้จริง
เริ่มต้นยังไง
- สำรวจว่าองค์กรใช้ฐานข้อมูลอะไรอยู่ และรองรับ vector แล้วหรือยัง
- ประเมินปริมาณเอกสารและจำนวนคำถามต่อวันแบบคร่าวๆ
- ทำต้นแบบเล็กๆ ด้วยตัวเลือกที่ง่ายที่สุดก่อน
- วัดผลด้วยชุดคำถามทดสอบ ทั้งความแม่นและความเร็ว
- ค่อยขยับไปใช้ระบบเฉพาะทางเมื่อมีตัวเลขยืนยันว่าจำเป็น
อยากเข้าใจขั้นตอนก่อนหน้าที่สร้าง vector ขึ้นมา อ่าน Chunking และ Embedding ต่อได้เลย และถ้าคุณสนใจงานสาย Data และ AI ลองดู ตำแหน่งงานบน Plants.work