中文点这里
O VQLite é um mecanismo de busca de similaridade vetorial leve e simples com base no Google Scann. O VQLite fornece uma API RESTful simples para a construção de serviços de busca de similaridade vetorial.
A razão pela qual estamos criando este projeto é que atualmente não existe uma solução que atenda às nossas necessidades (conforme descrito no parágrafo a seguir), e sentimos que os mecanismos de busca vetorial disponíveis no mercado são muito pesados, geralmente exigindo um cluster de Kubernetes com várias réplicas. Isso pode ser um desperdício de recursos e um fardo para muitos projetos.
Os mecanismos de pesquisa de similaridade vetorial comumente usados (como Milvus, QDRANT, VECHER) são gerenciados por dimensões vetoriais e operam em vetores. Por outro lado, o VQLite processa dados com base em documentos como dimensões. Descobrimos que, em muitos casos, não existe um relacionamento individual entre documentos e vetores, mas um relacionamento de um para muitos em que um documento pode ter vários vetores. O gerenciamento de dados baseado apenas nos vetores pode ser complicado e resultar em recursos desperdiçados ao armazenar várias cópias de metadados. Portanto, o design do VQLite permite vários vetores por documento, além de permitir o armazenamento de metadados sem depender de soluções de armazenamento adicionais, como MySQL ou Redis.
Se você realmente deseja usar este projeto, entenda a estrutura e o design do vqlite ou se deseja fazer algumas modificações no VQLite para adaptá -lo às suas próprias necessidades, é fortemente recomendado que você leia o design.md.
Obviamente, o aspecto mais importante é a velocidade de recuperação; Portanto, usamos o scann do Google no centro do nosso sistema, pois atualmente pode ser o método de pesquisa de similaridade de vetores públicos mais rápida disponível. De fato, simplesmente encapsulamos scann
A imagem a seguir vem de Scann.

Utilizamos 13 milhões de vetores para criar o banco de dados em máquinas da AWS. Abaixo estão os resultados do teste.
| Máquina | QPS | Params (NProbe, reordenar, Topk) |
|---|---|---|
| c5.9xlarge | 7600 | 256.256,30 |
| C7G.8XLARGE | 2900 | 256.256,30 |
| r5.8xlarge | 6900 | 256.256,30 |
Fornecemos duas maneiras de usá -lo, compilando -se do código -fonte e usando o Docker. Recomendamos usar o 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.goPrimeiro, copie o vqlite.yaml para sua máquina e faça modificações apropriadas.
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
vqliteVocê pode verificar o diretório python_sdk para obter o código de amostra.