中文点这里
VQLite - это легкая и простая поисковая система сходства вектора, основанная на Google Scann. VQLite предоставляет простой API Restful для построения служб поиска вектора.
Причина, по которой мы создаем этот проект, заключается в том, что в настоящее время не существует решения, которое отвечает нашим потребностям (как описано в следующем параграфе), и мы считаем, что векторные поисковые системы, доступные на рынке, слишком тяжелы, часто требуя кластера Kubernetes с несколькими репликами. Это может быть пустой тратой ресурсов и бремя для многих проектов.
Обычно используемые поисковые системы вектора (такие как Milvus, Qdrant, Vearch) управляются векторными измерениями и работают на векторах. Напротив, VQLite обрабатывает данные на основе документов в качестве измерений. Мы обнаружили, что во многих случаях между документами и векторами не существует, а скорее отношений с одним ко многим, когда документ может иметь несколько векторов. Управление данными, основанные исключительно на векторах, может быть громоздким и привести к потраченным впустую ресурсам при хранении нескольких копий метаданных. Следовательно, конструкция VQLite позволяет получить несколько векторов на документ, а также позволяет хранить метаданные, не полагаясь на дополнительные решения для хранения, такие как MySQL или Redis.
Если вы действительно хотите использовать этот проект, поймите структуру и дизайн VQLite, или если вы хотите внести некоторые модификации в VQLite, чтобы адаптировать ее к вашим собственным потребностям, настоятельно рекомендуется прочитать Design.md.
Конечно, наиболее важным аспектом является скорость поиска; Таким образом, мы используем Scann Google в основе нашей системы, так как в настоящее время он может быть самым быстрым методом поиска сходства в общедоступном векторе. На самом деле, мы просто инкапсулируем скана
Следующее изображение происходит от скана.

Мы использовали 13 миллионов векторов для построения базы данных на машинах AWS. Ниже приведены результаты теста.
| Машина | QPS | Params (nprobe, переупорядочение, топк) |
|---|---|---|
| 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 для примера кода.