14 คะแนน โดย GN⁺ 2023-11-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • VectorDB เป็นแพ็กเกจ Python สำหรับการจัดเก็บและค้นคืนข้อความ โดยใช้เทคนิคการแบ่งข้อความเป็นชิ้น, การทำ embedding และการค้นหาเวกเตอร์
  • มีอินเทอร์เฟซที่ใช้งานง่าย และเหมาะสำหรับการจัดเก็บ ค้นหา และจัดการข้อมูลข้อความที่เชื่อมโยงกับเมทาดาทา
  • ออกแบบมาสำหรับกรณีการใช้งานที่ต้องการ latency ต่ำ

วิธีติดตั้งและใช้งาน

  • VectorDB เป็นโอเพนซอร์ส และสามารถดูโค้ดกับเอกสารทั้งหมดได้บน GitHub
  • ติดตั้งได้ด้วยคำสั่ง pip install vectordb2
  • ใช้งานโดยการสร้างออบเจ็กต์หน่วยความจำ จัดเก็บข้อความและเมทาดาทา แล้วค้นคืนชิ้นข้อความที่เกี่ยวข้อง

ความสำคัญของการค้นหาเวกเตอร์และ embedding

  • เมื่อต้องทำงานกับโมเดลภาษาขนาดใหญ่ การค้นหาเวกเตอร์และ embedding ช่วยให้ค้นคืนข้อมูลได้อย่างมีประสิทธิภาพและแม่นยำ
  • โดยแปลงข้อความเป็นเวกเตอร์หลายมิติ เพื่อรองรับการเปรียบเทียบและค้นหาอย่างรวดเร็ว พร้อมจับความหมายเชิงความหมายของข้อความเพื่อยกระดับคุณภาพของผลการค้นหา

ตัวอย่าง

  • ใช้ออบเจ็กต์ Memory เพื่อกำหนดกลยุทธ์การแบ่งข้อความเป็นชิ้น และจัดเก็บข้อความกับเมทาดาทาเกี่ยวกับแมชชีนเลิร์นนิงและปัญญาประดิษฐ์
  • ค้นคืนชิ้นข้อความที่เกี่ยวข้องสูงสุด n รายการสำหรับคิวรีที่กำหนด แล้วแสดงผลลัพธ์

ความเห็นของ GN⁺

ประเด็นสำคัญที่สุดของบทความนี้คือ VectorDB เป็นแพ็กเกจ Python ที่ช่วยให้จัดเก็บและค้นคืนข้อมูลข้อความได้อย่างมีประสิทธิภาพ ด้วยการใช้เทคโนโลยีการค้นหาเวกเตอร์และ embedding จึงสามารถค้นหาข้อมูลจากชุดข้อมูลขนาดใหญ่ได้อย่างรวดเร็วและแม่นยำ ซึ่งชี้ให้เห็นว่าสามารถประยุกต์ใช้ได้ในหลากหลายสาขา เช่น การตัดสินใจบนฐานข้อมูลและการประมวลผลภาษาธรรมชาติ เทคโนโลยีนี้จะยิ่งมีความสำคัญมากขึ้นในสังคมยุคปัจจุบันที่ปริมาณข้อมูลเพิ่มขึ้นอย่างต่อเนื่อง และด้วยเหตุนี้จึงเป็นหัวข้อที่น่าสนใจสำหรับผู้ที่สนใจด้านวิศวกรรมซอฟต์แวร์ วิทยาการข้อมูล และปัญญาประดิษฐ์

1 ความคิดเห็น

 
GN⁺ 2023-11-27
ความคิดเห็นบน Hacker News
  • ความเห็นจากผู้พัฒนา:

    • ผลิตภัณฑ์นี้ไม่ใช่ฐานข้อมูลจริง ๆ แต่เป็น wrapper ที่ทำงานบนเครื่อง local โดยอิงจาก embedding และ FAISS/mrpt
    • มีการทำ benchmarking จำนวนมากเพื่อกำหนดค่าเริ่มต้นที่เหมาะสมเพื่อลด latency ให้ต่ำที่สุด
    • แชร์ตัวอย่างสมุดบันทึก Colab ที่ใช้กรองเนื้อหาจากฟีด RSS ของ Kagi Small Web ตามความสนใจของผู้ใช้
  • ความเห็นเกี่ยวกับ FAISS:

    • FAISS เป็นไลบรารีสำหรับค้นหาเวกเตอร์ที่มี API แบบเรียบง่าย
    • ถ้าไม่จำเป็นต้องใช้ไลบรารีขนาดใหญ่ที่ VectorDB ต้องพึ่งพา เช่น PyTorch, Tensorflow, Transformers การใช้ FAISS อาจเหมาะสมกว่า
  • ความเห็นเกี่ยวกับการผสานกับ Postgres:

    • ทีมที่ใช้ Postgres เป็น operational store อยู่แล้วควรใช้ส่วนขยาย PGVector
    • เมื่อข้อมูลและความสามารถในการค้นหาเวกเตอร์อยู่ด้วยกัน ก็จะลดสิ่งที่ต้องดูแลในเทคสแตกลง
  • ฟีดแบ็กเชิงบวกต่อ Kagi Search:

    • หลังจากใช้ Kagi Search มาหลายเดือนก็รู้สึกทึ่ง
    • ถ้าเทคโนโลยีนี้เป็นพลังขับเคลื่อนของ Kagi Search ก็ทำให้มองในแง่ดี
  • คำถามเกี่ยวกับการจัดเก็บข้อมูลและข้อจำกัด:

    • สงสัยว่าข้อมูลถูกเก็บไว้ที่ไหน และทำให้คงอยู่ถาวรอย่างไร
    • ถามว่าเทคโนโลยีนี้มีข้อจำกัดอะไรบ้าง และทำงานได้ดีกับข้อความยาว 500-1000 คำหรือคอลเลกชันข้อความที่ไม่ใช่ระดับประโยคหรือไม่
  • ความสงสัยเกี่ยวกับการใช้ภาษา Crystal:

    • สงสัยว่าทำไมถึงไม่ได้ใช้ภาษา Crystal
  • คำถามเกี่ยวกับการเปรียบเทียบ vector database:

    • มีคำถามว่ามีข้อมูลเปรียบเทียบ vector DB หลาย ๆ ตัวหรือไม่ ควรเลือกตัวไหนตาม use case ที่ต่างกัน และแต่ละตัวแตกต่างกันอย่างไร
  • ความสนใจในเฟรมเวิร์กแบบ "อย่างน้อยที่สุด":

    • การตัดการพึ่งพา HF Transformers ออกไป และการปรับแต่ง chunking เป็นเรื่องที่น่าสนใจ
    • นี่ไม่ใช่การวิจารณ์โปรเจกต์นี้ แต่เป็นการมองหาส่วนที่อาจเป็นประโยชน์ได้
  • คำถามเกี่ยวกับการสร้าง embedding:

    • มีคำถามว่าแท้จริงแล้วใช้อะไรในการสร้าง embedding
  • การแชร์ลิงก์บล็อกเกี่ยวกับ vector database:

    • มีการแชร์ลิงก์บล็อกที่พูดถึงว่าไม่จำเป็นต้องใช้ vector database