中文点这里
VQLite ist eine leichte und einfache Suchmaschine für Vektorähnlichkeit, die auf Google Scann basiert. VQLITE bietet eine einfache API, die sich für die Erstellung von Vektor -Ähnlichkeitssuchdiensten erstellt.
Der Grund, warum wir dieses Projekt erstellen, ist, dass es derzeit keine Lösung gibt, die unseren Bedürfnissen entspricht (wie im folgenden Absatz beschrieben), und wir sind der Ansicht, dass die auf dem Markt verfügbaren Vektor -Suchmaschinen zu schwer sind und häufig einen Kubernetes -Cluster mit mehreren Replikaten erfordern. Dies kann eine Verschwendung von Ressourcen und eine Belastung für viele Projekte sein.
Häufig verwendete Suchmaschinen der Vektorähnlichkeit (wie Milvus, QDrant, Vearch) werden durch Vektorabmessungen verwaltet und arbeiten mit Vektoren. Im Gegensatz dazu verarbeitet VQLite Daten basierend auf Dokumenten als Dimensionen. Wir haben festgestellt, dass es in vielen Fällen keine eins-zu-Eins-Beziehung zwischen Dokumenten und Vektoren gibt, sondern eine Eins-zu-Viele-Beziehung, in der ein Dokument möglicherweise mehrere Vektoren hat. Das Verwalten von Daten, die ausschließlich auf Vektoren basieren, kann umständlich sein und bei der Speicherung mehrerer Metadatenkopien zu verschwendeten Ressourcen führen. Daher ermöglicht das Design von VQLite mehrere Vektoren pro Dokument und ermöglicht gleichzeitig die Speicherung von Metadaten, ohne sich auf zusätzliche Speicherlösungen wie MySQL oder Redis zu verlassen.
Wenn Sie dieses Projekt wirklich verwenden möchten, die Struktur und das Design von VQLite verstehen oder wenn Sie einige Änderungen an VQLite vornehmen möchten, um sie an Ihre eigenen Bedürfnisse anzupassen, wird dringend empfohlen, Design.md zu lesen.
Natürlich ist der wichtigste Aspekt die Wiederholungsgeschwindigkeit. Daher verwenden wir Googles SCANN im Kern unseres Systems, da es derzeit möglicherweise die schnellste verfügbare Suchmethode für öffentliche Vektor -Ähnlichkeit ist. In der Tat verkapseln wir einfach Scann
Das folgende Bild stammt von Scann.

Wir haben 13 Millionen Vektoren verwendet, um die Datenbank auf AWS -Maschinen zu erstellen. Nachfolgend finden Sie die Testergebnisse.
| Maschine | QPS | Parameter (NPROBE, REORSTELLUNG, TOPK) |
|---|---|---|
| C5.9Xlarge | 7600 | 256,256,30 |
| c7g.8xlarge | 2900 | 256,256,30 |
| R5.8Xlarge | 6900 | 256,256,30 |
Wir bieten zwei Möglichkeiten, es zu verwenden, aus dem Quellcode zu kompilieren und Docker zu verwenden. Wir empfehlen die Verwendung des Dockers.
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.goKopieren Sie zunächst die vqlite.yaml in Ihre Maschine und nehmen Sie geeignete Änderungen vor.
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
vqliteSie können das Verzeichnis python_sdk auf Beispielcode überprüfen.