Vector database — ฐานข้อมูลเวกเตอร์

From Systems analysis Wiki
Jump to navigation Jump to search

ฐานข้อมูลเวกเตอร์ คือระบบจัดเก็บและค้นหาข้อมูลเฉพาะทาง ที่ได้รับการปรับแต่งให้ทำงานกับการแทนค่าเชิงตัวเลขมิติสูง (เวกเตอร์) ของข้อมูลไม่มีโครงสร้าง[1] ในบริบทของโมเดลภาษาขนาดใหญ่ (LLM) ฐานข้อมูลเหล่านี้รองรับการค้นหาเชิงความหมายอย่างมีประสิทธิภาพ และเป็นองค์ประกอบสำคัญของระบบปัญญาประดิษฐ์สมัยใหม่ โดยเฉพาะในสถาปัตยกรรม RAG

แตกต่างจากฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมที่เน้นการจับคู่แบบตรงทั้งหมด ฐานข้อมูลเวกเตอร์เชี่ยวชาญด้านการค้นหาเพื่อนบ้านที่ใกล้เคียงที่สุดแบบประมาณ (Approximate Nearest Neighbor, ANN) เพื่อค้นหาวัตถุที่ใกล้เคียงกันเชิงความหมายในปริภูมิมิติสูง[2]

พื้นฐานของฐานข้อมูลเวกเตอร์

การแทนค่าเวกเตอร์ (Embeddings)

การแทนค่าเวกเตอร์ (embeddings) คือการแทนค่าเชิงตัวเลขของข้อความ รูปภาพ เสียง และข้อมูลประเภทอื่น ๆ ในรูปแบบเวกเตอร์ หลักการสำคัญคือวัตถุที่ใกล้เคียงกันเชิงความหมาย (เช่น คำที่มีความหมายคล้ายกัน) จะอยู่ใกล้กันในปริภูมิเวกเตอร์นี้[3]

การแทนค่าเชิงตัวเลขของข้อความในปัจจุบันถูกสร้างขึ้นโดยใช้โมเดลที่อิงสถาปัตยกรรม transformer ซึ่งใช้กลไก self-attention เพื่อทำความเข้าใจบริบท มิติของการแทนค่าดังกล่าวอยู่ในช่วง 256 ถึง 1024 มิติหรือมากกว่าสำหรับโมเดลสมัยใหม่ส่วนใหญ่[4]

เมตริกความคล้ายคลึง

สำหรับการวัด «ระยะทาง» หรือความคล้ายคลึงระหว่างเวกเตอร์ จะใช้เมตริกที่หลากหลาย:

  • ความคล้ายคลึงโคไซน์ (cosine similarity): วัดโคไซน์ของมุมระหว่างเวกเตอร์สองตัว มีประสิทธิภาพสูงเป็นพิเศษสำหรับ embedding ของข้อความ เนื่องจากคำนึงถึงทิศทางของเวกเตอร์ ไม่ใช่ขนาด[5]
  • ระยะทางแบบยุคลิด (L2): ระยะทางเส้นตรงมาตรฐานระหว่างสองจุดในปริภูมิ
  • ผลคูณภายใน (dot product): คล้ายกับความคล้ายคลึงโคไซน์ แต่ไม่ได้ทำการนอร์มอลไลซ์[6]

อัลกอริทึมการสร้างดัชนี

สำหรับการค้นหาอย่างรวดเร็วในปริภูมิมิติสูง จะใช้อัลกอริทึม ANN เฉพาะทาง

HNSW (Hierarchical Navigable Small World)

อัลกอริทึม HNSW ใช้แนวคิด «โลกขนาดเล็ก» และโครงสร้างกราฟลำดับชั้นหลายชั้น ชั้นบนมีการเชื่อมโยงระยะไกลเพื่อเคลื่อนที่ผ่านปริภูมิอย่างรวดเร็ว (การค้นหาแบบหยาบ) ส่วนชั้นล่างมีการเชื่อมโยงระยะสั้นเพื่อค้นหาเพื่อนบ้านอย่างแม่นยำ HNSW แสดงความซับซ้อนของเวลาแบบลอการิทึม O(log N) และเป็นตัวเลือกที่นิยมสำหรับฐานข้อมูลเวกเตอร์สมัยใหม่ส่วนใหญ่[7]

IVF (Inverted File)

อัลกอริทึม IVF แบ่งปริภูมิออกเป็นกลุ่มโดยใช้การจัดกลุ่มแบบ k-means การค้นหาเกิดขึ้นในจำนวนกลุ่มที่ใกล้เคียงที่สุดที่จำกัด ซึ่งช่วยเร่งกระบวนการได้อย่างมีนัยสำคัญ จำนวนกลุ่มโดยทั่วไปเลือกเป็น √N โดยที่ N คือจำนวนเวกเตอร์ทั้งหมดใน dataset[8]

LSH (Locality-Sensitive Hashing)

อัลกอริทึม LSH ใช้ตระกูลของฟังก์ชันแฮชที่มีความน่าจะเป็นสูงในการสร้างแฮชเดียวกันสำหรับเวกเตอร์ที่ใกล้เคียงกัน ทำให้สามารถจัดกลุ่มวัตถุที่คล้ายกันได้อย่างรวดเร็ว[9]

ฐานข้อมูลเวกเตอร์ยอดนิยม

  • Pinecone: ฐานข้อมูลเวกเตอร์บนคลาวด์แบบจัดการครบวงจรที่มีสถาปัตยกรรม serverless
  • Qdrant: ฐานข้อมูลประสิทธิภาพสูงที่เขียนด้วย Rust รองรับการกรองขั้นสูงและธุรกรรมที่รองรับ ACID
  • Milvus: ฐานข้อมูล open-source ที่ปรับขนาดได้พร้อมสถาปัตยกรรม cloud-native รองรับประเภทดัชนีหลายประเภท รวมถึงแบบที่เร่งด้วย GPU
  • Weaviate: ฐานข้อมูลเวกเตอร์ open-source ที่มี GraphQL API และรองรับกราฟความรู้
  • Chroma: ฐานข้อมูล open-source น้ำหนักเบา ปรับแต่งสำหรับการสร้างต้นแบบและการทดลองอย่างรวดเร็ว
  • FAISS: ไลบรารีจาก Meta ที่ไม่ใช่ฐานข้อมูลครบวงจร แต่ให้อัลกอริทึมการสร้างดัชนีประสิทธิภาพสูงสำหรับข้อมูลแบบคงที่

การใช้งานร่วมกับ LLM: สถาปัตยกรรม RAG

Retrieval-Augmented Generation (RAG) คือสถาปัตยกรรมที่ LLM ถูกเสริมด้วยฐานความรู้ภายนอกผ่านการค้นหาเชิงเวกเตอร์ ระบบ RAG ประกอบด้วยองค์ประกอบหลักสองส่วน[10]:

  1. ตัวดึงข้อมูล (Retriever): ส่วนประกอบการค้นหาที่ใช้ฐานข้อมูลเวกเตอร์เพื่อค้นหาข้อมูลที่เกี่ยวข้องตามคำขอของผู้ใช้
  2. ตัวสร้างข้อความ (Generator): LLM ที่ใช้คำขอเดิมและข้อมูลที่ตัวดึงค้นพบเพื่อสร้างคำตอบ

เพื่อให้ RAG ทำงานได้อย่างมีประสิทธิภาพ จะใช้ การค้นหาแบบไฮบริด ซึ่งเป็นการผสมผสานระหว่างการค้นหาเชิงความหมาย (เวกเตอร์) และการค้นหาเชิงคำศัพท์ (ตามคำหลัก เช่น BM25) ซึ่งให้ผลลัพธ์ที่แม่นยำและเกี่ยวข้องมากขึ้น

แนวโน้มและการพัฒนาในอนาคต

ตลาดฐานข้อมูลเวกเตอร์แสดงการเติบโตอย่างรวดเร็ว โดยคาดการณ์ว่าจะเพิ่มจาก 1.98 พันล้านดอลลาร์สหรัฐในปี 2566 เป็น 7.13 พันล้านดอลลาร์สหรัฐภายในปี 2572 (CAGR 23.7%)[11] ทิศทางการพัฒนาหลัก ได้แก่:

  • ระบบมัลติโมดัล: รองรับการค้นหาพร้อมกันข้ามข้อความ รูปภาพ เสียง และวิดีโอในปริภูมิเวกเตอร์เดียวกัน
  • การปรับแต่งอัตโนมัติ: การใช้ ML เพื่อเลือกดัชนีและพารามิเตอร์ที่เหมาะสมที่สุดโดยอัตโนมัติ
  • Edge computing: การพัฒนาโซลูชันขนาดกะทัดรัดสำหรับอุปกรณ์มือถือและ IoT
  • การประมวลผลแบบควอนตัม: การเร่งความเร็วการค้นหาความคล้ายคลึงแบบเอกซ์โพเนนเชียลที่มีศักยภาพ
  • ชิปนิวโรมอร์ฟิก: การจำลองการทำงานของสมองเพื่อการใช้พลังงานต่ำมากขณะทำการค้นหา

ลิงก์ภายนอก

  • เว็บไซต์ทางการของ Pinecone
  • เว็บไซต์ทางการของ Qdrant
  • เว็บไซต์ทางการของ Milvus
  • เว็บไซต์ทางการของ Weaviate

บรรณานุกรม

  • Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
  • Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
  • Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
  • Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
  • Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
  • Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
  • Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
  • Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
  • Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.

หมายเหตุ

  1. «What Is a Vector Database?». CloudRaft. [1]
  2. «What is a Vector Database?». Qdrant Blog. [2]
  3. «What Are Vector Embeddings?». LakeFS. [3]
  4. «What are embeddings?». Zilliz. [4]
  5. Sahoo, A., Maiti, J. «A Comparative Study of Similarity Metrics for Textual Embeddings». arXiv:2501.01234. [5]
  6. «Vector search and dense vector fields». Elastic. [6]
  7. Malkov, Y. A., Yashunin, D. A. «Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs». arXiv:1603.09320. [7]
  8. «The index IVF». FAISS Wiki. [8]
  9. Datar, M., et al. «Locality-Sensitive Hashing Scheme Based on p-Stable Distributions». Symposium on Computational Geometry. [9]
  10. Lewis, P., et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv:2005.11401. [10]
  11. «Vector Database Global Market Report 2024». The Business Research Company. [11]