中文点这里
VQLite เป็นเครื่องมือค้นหาที่มีความคล้ายคลึงกันของเวกเตอร์ที่มีน้ำหนักเบาและเรียบง่ายขึ้นอยู่กับ Google Scann VQLite ให้บริการ API ที่เรียบง่ายสำหรับการสร้างบริการค้นหาความคล้ายคลึงกันของเวกเตอร์
เหตุผลที่เรากำลังสร้างโครงการนี้คือขณะนี้ไม่มีวิธีแก้ปัญหาที่ตรงกับความต้องการของเรา (ตามที่อธิบายไว้ในย่อหน้าต่อไปนี้) และเรารู้สึกว่าเครื่องมือค้นหาเวกเตอร์ที่มีอยู่ในตลาดนั้นหนักเกินไป นี่อาจเป็นการสิ้นเปลืองทรัพยากรและเป็นภาระสำหรับหลายโครงการ
เครื่องมือค้นหาความคล้ายคลึงกันของเวกเตอร์ที่ใช้กันทั่วไป (เช่น Milvus, Qdrant, VEARCH) ได้รับการจัดการโดยขนาดเวกเตอร์และทำงานบนเวกเตอร์ ในทางตรงกันข้าม VQLite ประมวลผลข้อมูลตามเอกสารเป็นขนาด เราพบว่าในหลายกรณีไม่มีความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างเอกสารและเวกเตอร์ แต่เป็นความสัมพันธ์แบบหนึ่งต่อหลาย ๆ ซึ่งเอกสารอาจมีเวกเตอร์หลายตัว การจัดการข้อมูลตามเวกเตอร์เพียงอย่างเดียวอาจยุ่งยากและส่งผลให้ทรัพยากรสูญเปล่าเมื่อเก็บสำเนาข้อมูลเมตาหลายชุด ดังนั้นการออกแบบของ VQLite อนุญาตให้มีเวกเตอร์หลายตัวต่อเอกสารในขณะเดียวกันก็อนุญาตให้มีการจัดเก็บข้อมูลเมตาโดยไม่ต้องพึ่งพาโซลูชันการจัดเก็บเพิ่มเติมเช่น MySQL หรือ REDIS
หากคุณต้องการใช้โครงการนี้เข้าใจโครงสร้างและการออกแบบของ VQLite หรือหากคุณต้องการทำการปรับเปลี่ยน VQLite เพื่อปรับให้เข้ากับความต้องการของคุณเองขอแนะนำอย่างยิ่งให้คุณอ่าน Design.md
แน่นอนว่าสิ่งที่สำคัญที่สุดคือความเร็วในการดึงข้อมูล ดังนั้นเราจึงใช้สแกนของ Google เป็นแกนหลักของระบบของเราเนื่องจากในปัจจุบันอาจเป็นวิธีการค้นหาความคล้ายคลึงกันของเวกเตอร์สาธารณะที่เร็วที่สุด อันที่จริงเราแค่ห่อหุ้มสแกน
ภาพต่อไปนี้มาจากสแกน

เราใช้เวกเตอร์ 13 ล้านตัวเพื่อสร้างฐานข้อมูลบนเครื่อง AWS ด้านล่างคือผลการทดสอบ
| เครื่องจักร | QPS | params (nprobe, reorder, topk) |
|---|---|---|
| c5.9xlarge | 7600 | 256,256,30 |
| c7g.8xlarge | 2900 | 256,256,30 |
| r5.8xlarge | 6900 | 256,256,30 |
เราให้สองวิธีในการใช้งานรวบรวมจากซอร์สโค้ดและใช้ Docker เราขอแนะนำให้ใช้นักเทียบท่า
git clone --recurse-submodules https://github.com/VQLite/VQLite.git
# git submodule update --remote --merge
cd vqindex
bash build.sh vqindex_api
cp bazel-bin/scann/scann_ops/cc/libvqlite_api.so /usr/local/lib/
cp bazel-bin//external/local_config_tf/libtensorflow_framework. * /usr/local/lib/
cd ..
go build cmd/vqlite.goก่อนอื่นให้คัดลอก vqlite.yaml ไปยังเครื่องของคุณและทำการดัดแปลงที่เหมาะสม
docker pull ghcr.io/vqlite/vqlite:latest
docker run --restart=always -d --name vqlite -p 8880:8880
-v $( pwd ) /vqlite.yaml:/app/vqlite.yaml
-v $( pwd ) /vqlite_data:/app/vqlite_data
vqliteคุณสามารถตรวจสอบไดเรกทอรี Python_SDK สำหรับรหัสตัวอย่าง