Vector database สำหรับระบบ embedding

การสร้าง Embeddings ด้วย OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

ข้อจำกัดของแนวทางปัจจุบัน

  • โหลด embedding ทั้งหมดเข้าหน่วยความจำ (1536 floats ~ 13kB/embedding)
  • คำนวณ embedding ใหม่ทุกครั้งที่มี query
  • การคำนวณ cosine distance ทุก embedding และเรียงลำดับนั้นช้า และขยายเชิงเส้น

แผนภาพแสดงการ embed เอกสารและ query ใหม่ทุกครั้งโดยไม่มีระบบจัดเก็บ

การสร้าง Embeddings ด้วย OpenAI API

Vector database

  • เอกสารที่ embed แล้วจะถูก จัดเก็บ และ ค้นหา จาก vector database

แผนภาพแสดงการใช้ vector database เพื่อจัดเก็บ embedding ของเอกสารและส่งผลลัพธ์จาก query กลับไปยังผู้ใช้

การสร้าง Embeddings ด้วย OpenAI API

 

NoSQL Database
  • โครงสร้างยืดหยุ่นกว่า ช่วยให้ค้นหาได้เร็วขึ้น

ตัวอย่าง schema ของ NoSQL database รวมถึง key:value, document และ graph database

 

SQL/Relational Database
  • จัดเก็บข้อมูลในรูปแบบตาราง แถว และคอลัมน์

ตารางที่มีคอลัมน์และแถวใน SQL หรือ relational database

การสร้าง Embeddings ด้วย OpenAI API

สิ่งที่ควรจัดเก็บ

 

  • Embedding
  • ข้อความต้นฉบับ
  • Metadata
    • ID และการอ้างอิง
    • ข้อมูลเพิ่มเติมที่ใช้สำหรับกรองผลลัพธ์

 

เคล็ดลับ: อย่าจัดเก็บข้อความต้นฉบับเป็น metadata!

ไอคอน vector database

การสร้าง Embeddings ด้วย OpenAI API

ภาพรวม vector database

โซลูชัน vector database ยอดนิยม จัดกลุ่มตามแบบ closed source หรือ open source และแบบ dedicated vector database หรือไม่

1 เครดิตภาพ: Yingjun Wu
การสร้าง Embeddings ด้วย OpenAI API

เลือกโซลูชันใดดี?

 

  • การจัดการฐานข้อมูล:
    • Managed → ค่าใช้จ่ายสูงกว่าแต่ลดภาระงาน
    • Self-managed → ประหยัดกว่าแต่ต้องใช้เวลาและความเชี่ยวชาญ
  • Open source หรือเชิงพาณิชย์?
    • Open source → ยืดหยุ่นและคุ้มค่า
    • เชิงพาณิชย์ → ซัพพอร์ตดีกว่า ฟีเจอร์ครบกว่า และรองรับการปฏิบัติตามข้อกำหนด

 

  • Data model: ประเภทข้อมูลเหมาะกับฐานข้อมูลประเภทใด?
  • ฟีเจอร์เฉพาะ: use case ต้องการฟังก์ชันพิเศษหรือไม่ เช่น multi-modal storage?

โลโก้ Chroma

การสร้าง Embeddings ด้วย OpenAI API

มาฝึกกันเถอะ!

การสร้าง Embeddings ด้วย OpenAI API

Preparing Video For Download...