中文点这里
VQLite adalah mesin pencari kesamaan vektor yang ringan dan sederhana berdasarkan Google Scann. VQLite menyediakan API Restful sederhana untuk membangun layanan pencarian kesamaan vektor.
Alasan kami membuat proyek ini adalah karena saat ini tidak ada solusi yang memenuhi kebutuhan kami (seperti yang dijelaskan dalam paragraf berikut), dan kami merasa bahwa mesin pencari vektor yang tersedia di pasaran terlalu berat, seringkali membutuhkan kluster Kubernetes dengan beberapa replika. Ini bisa menjadi buang -buang sumber daya dan beban bagi banyak proyek.
Mesin pencari kesamaan vektor yang umum digunakan (seperti milvus, qdrant, vearch) dikelola oleh dimensi vektor dan beroperasi pada vektor. Sebaliknya, VQLite memproses data berdasarkan dokumen sebagai dimensi. Kami menemukan bahwa dalam banyak kasus, tidak ada hubungan satu-ke-satu antara dokumen dan vektor melainkan hubungan satu-ke-banyak di mana dokumen mungkin memiliki banyak vektor. Mengelola data semata -mata pada vektor dapat menjadi rumit dan menghasilkan sumber daya yang terbuang saat menyimpan beberapa salinan metadata. Oleh karena itu, desain VQLite memungkinkan untuk beberapa vektor per dokumen sementara juga memungkinkan penyimpanan metadata tanpa mengandalkan solusi penyimpanan tambahan seperti MySQL atau Redis.
Jika Anda benar -benar ingin menggunakan proyek ini, pahami struktur dan desain VQLite, atau jika Anda ingin membuat beberapa modifikasi untuk VQLite untuk menyesuaikannya dengan kebutuhan Anda sendiri, sangat disarankan agar Anda membaca Design.md.
Tentu saja, aspek yang paling penting adalah kecepatan pengambilan; Oleh karena itu, kami menggunakan pemindaian Google di inti sistem kami karena saat ini mungkin merupakan metode pencarian kesamaan vektor publik tercepat yang tersedia. Bahkan, kami hanya merangkum pemindaian
Gambar berikut berasal dari pemindaian.

Kami menggunakan 13 juta vektor untuk membangun database di mesin AWS. Di bawah ini adalah hasil tes.
| Mesin | QPS | Params (NProbe, Reorder, Topk) |
|---|---|---|
| C5.9XLARGE | 7600 | 256.256.30 |
| C7G.8XLARGE | 2900 | 256.256.30 |
| r5.8xlarge | 6900 | 256.256.30 |
Kami menyediakan dua cara untuk menggunakannya, menyusun dari kode sumber dan menggunakan Docker. Kami merekomendasikan menggunakan 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.goPertama, salin vqlite.yaml ke mesin Anda dan buat modifikasi yang sesuai.
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
vqliteAnda dapat memeriksa direktori Python_SDK untuk kode sampel.