中文点这里
Vqlite هو محرك بحث خفيف الوزن وبسيط متشابه استنادًا إلى Google Scann. يوفر VQLite واجهة برمجة تطبيقات بسيطة لاستخدام خدمات البحث في المتجهات.
السبب في أننا ننشئ هذا المشروع هو أنه لا يوجد حاليًا أي حل يلبي احتياجاتنا (كما هو موضح في الفقرة التالية) ، ونشعر أن محركات البحث المتجه المتوفرة في السوق ثقيلة للغاية ، وغالبًا ما تتطلب مجموعة Kubernetes مع نسخ متماثلة متعددة. هذا يمكن أن يكون مضيعة للموارد وعبء للعديد من المشاريع.
تتم إدارة محركات البحث التي تُستخدم بشكل شائع للتشابه في المتجه (مثل Milvus ، QDrant ، Vearch) بواسطة أبعاد المتجهات وتعمل على المتجهات. في المقابل ، تقوم VQLite بمعالجة البيانات بناءً على المستندات كأبعاد. لقد وجدنا أنه في كثير من الحالات ، لا توجد علاقة فردية بين المستندات والمتجهات ، بل هي علاقة واحدة إلى حد ما حيث قد يكون للوثيقة متجهات متعددة. يمكن أن تكون إدارة البيانات القائمة فقط على المتجهات مرهقة وتؤدي إلى موارد ضائعة عند تخزين نسخ بيانات تعريف متعددة. لذلك ، يسمح تصميم VQLite بمتجهات متعددة لكل مستند مع السماح أيضًا بتخزين البيانات الوصفية دون الاعتماد على حلول تخزين إضافية مثل MySQL أو Redis.
إذا كنت ترغب حقًا في استخدام هذا المشروع ، وفهم هيكل وتصميم VQlite ، أو إذا كنت ترغب في إجراء بعض التعديلات على VQlite لتكييفه مع احتياجاتك الخاصة ، فمن المستحسن بشدة أن تقرأ Design.md.
بالطبع ، الجانب الأكثر أهمية هو سرعة الاسترجاع ؛ لذلك ، نستخدم Scann من Google في صميم نظامنا لأنه قد يكون حاليًا أسرع طريقة البحث عن تشابه المتجه العام المتاحة. في الواقع ، نحن ببساطة نغلف السجل
الصورة التالية تأتي من السجل.

استخدمنا 13 مليون متجه لإنشاء قاعدة البيانات على آلات AWS. فيما يلي نتائج الاختبار.
| آلة | QPs | params (nprobe ، إعادة ترتيب ، topk) |
|---|---|---|
| C5.9xlarge | 7600 | 256،256،30 |
| C7G.8xlarge | 2900 | 256،256،30 |
| R5.8xlarge | 6900 | 256،256،30 |
نحن نقدم طريقتين لاستخدامه ، والتجميع من رمز المصدر واستخدام Docker. نوصي باستخدام 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 لعينة رمز.