À medida que a popularidade dos bancos de dados vetoriais continua a aumentar, mais e mais pessoas estão prestando atenção a esse caminho. Os bancos de dados e sistemas de recuperação tradicionais também estão competindo pela rápida integração de plug-ins especializados de recuperação de vetores. Qdrant rapidamente ganhou força devido à sua facilidade de uso e documentação amigável para desenvolvedores.
Qdrant é construído na linguagem Rust e fornece APIs de cliente como Rust, Python e Golang para atender às necessidades dos principais desenvolvedores de hoje. No entanto, Qdrant, como uma estrela em ascensão, ainda apresenta algumas lacunas em relação a outros produtos concorrentes, como interface insuficiente e funções de consulta.
Então, qual é a diferença entre Qdrant e Zilliz Cloud/Milvus? Pode-se entender que ambos são construídos especialmente para dados vetoriais, mas são adequados para diferentes cenários. Qdrant é mais adequado para desenvolvedores que buscam manutenção de infraestrutura de baixo custo. Se o sistema de aplicação prestar mais atenção ao desempenho e escalabilidade, Zilliz Cloud/Milvus é uma escolha mais adequada. Como o Zilliz Cloud/Milvus possui características de forte escalabilidade, melhor desempenho e menor latência, ele é adequado para cenários que possuem requisitos rígidos em indicadores de desempenho.
Este artigo deixará de lado essas diferenças superficiais e se aprofundará nas diferenças entre Qdrant Cloud e Zilliz Cloud, comparando seus resultados de benchmark de desempenho e recursos relacionados ao Qdrant Cloud.
01.
Qdrant Cloud vs Zilliz Cloud: competição de desempenho
Recentemente, à medida que o sistema de geração aumentada de recuperação (RAG) continua a ser popular, os desenvolvedores ficam cada vez mais confusos sobre "como escolher um banco de dados vetorial". Nas últimas semanas, conduzimos uma comparação detalhada entre Qdrant Cloud e Zilliz Cloud em termos de desempenho e recursos.
Durante o processo de comparação, usamos o conjunto de benchmark de desempenho de código aberto VectorDBBench para realizar testes em torno de indicadores-chave, como consultas por segundo (QPS), consultas por dólar (QP$) e latência.
[Grande conjunto de dados de teste (≥ 5 milhões de dados vetoriais)]
A seguir estão os dois tipos de conjuntos de dados usados no teste:
O conjunto de dados 1 contém 10.000.000 de dados vetoriais de 768 dimensões.
O conjunto de dados 2 contém 5.000.000 de dados vetoriais de 1.536 dimensões.
Objeto de teste
A seguir estão os exemplos usados durante o teste. Esses exemplos são basicamente semelhantes na configuração de hardware:
Zilliz Cloud (8cu-perf): instância de desempenho Zilliz Cloud 8 CU
Zilliz Cloud (2cu-cap): instância de capacidade Zilliz Cloud 2 CU
Qdrant Cloud (4c16g-5node): Qdrant Cloud 4 CPU 16G de memória, usando instâncias de 5 máquinas
Consultas por segundo (QPS)
Os resultados do teste mostram que ao recuperar 10.000.000 dados vetoriais de 768 dimensões, o QPS das duas instâncias Zilliz Cloud é 7 vezes e 1 vez maior que o da instância Qdrant Cloud, respectivamente.
Ao recuperar 5.000.000 dados vetoriais de 1.536 dimensões, o QPS da instância Zilliz Cloud (8cu-perf) é 8 vezes maior que o da instância Qdrant Cloud, mas o QPS da instância Zilliz Cloud (2cu-cap) é menor que o Qdrant Cloud instância.
Consultas por dólar (QP$)
Ao recuperar 10.000.000 dados vetoriais de 768 dimensões, o QP$ das duas instâncias Zilliz Cloud é 8 vezes e 5 vezes maior que o da instância Qdrant Cloud, respectivamente.
Ao recuperar 5.000.000 dados vetoriais de 1.536 dimensões, o QP$ das duas instâncias Zilliz Cloud é 7 vezes e 3 vezes maior que o da instância Qdrant Cloud, respectivamente.
Atraso
Ao recuperar 10.000.000 dados vetoriais de 768 dimensões, as latências P99 das duas instâncias Zilliz Cloud são 1/12 e 1/3 da instância Qdrant Cloud, respectivamente.
Ao recuperar 5.000.000 de dados vetoriais de 1.536 dimensões, a latência P99 das duas instâncias Zilliz Cloud é 8 vezes e 1 vez mais rápida do que a instância Qdrant Cloud, respectivamente.
[Conjunto de dados de teste de tamanho médio (<5 milhões de dados vetoriais)]
A seguir estão os dois tipos de conjuntos de dados usados no teste:
O conjunto de dados 3 contém 1.000.000 de dados vetoriais de 768 dimensões.
O conjunto de dados 4 contém 500.000 dados vetoriais de 1.536 dimensões.
Objeto de teste
A seguir estão os exemplos usados durante o teste. Esses exemplos são basicamente semelhantes na configuração de hardware:
Zilliz Cloud (1cu-perf): instância de desempenho Zilliz Cloud 1 CU
Zilliz Cloud (1cu-cap): instância de capacidade Zilliz Cloud 1 CU
Qdrant Cloud (4c16g-1node): Qdrant Cloud 4 CPU 16G de memória, usando 1 instância de máquina
Consultas por segundo (QPS)
Os resultados do teste mostram que ao recuperar 1.000.000 de dados vetoriais de 768 dimensões, o QPS das duas instâncias Zilliz Cloud é 2 vezes e 1 vez maior que o da instância Qdrant Cloud, respectivamente.
Ao recuperar 500.000 dados vetoriais de 1.536 dimensões, o QPS da instância Zilliz Cloud (1cu-perf) é 2 vezes maior que o da instância Qdrant Cloud, mas o QPS da instância Zilliz Cloud (1cu-cap) é menor que o Qdrant Cloud instância.
Consultas por dólar (QP$)
Ao recuperar 1.000.000 de dados vetoriais de 768 dimensões, o QP$ das duas instâncias Zilliz Cloud é 4 vezes e 2 vezes maior que o da instância Qdrant Cloud, respectivamente.
Ao recuperar 500.000 dados vetoriais de 1.536 dimensões, o QP$ das duas instâncias Zilliz Cloud é 3 vezes e 1 vez o da instância Qdrant Cloud, respectivamente.
Atraso
Ao recuperar 1.000.000 de dados vetoriais de 768 dimensões, a latência P99 de ambas as instâncias Zilliz Cloud é 2 vezes mais rápida do que a instância Qdrant Cloud.
Ao recuperar 500.000 dados vetoriais de 1.536 dimensões, a latência P99 das duas instâncias Zilliz Cloud é 127 vezes e 27 vezes mais rápida do que a instância Qdrant Cloud, respectivamente.
[Resultado: pontuação abrangente]
A figura acima mostra a pontuação de desempenho (escala percentual) de cada instância em diferentes casos de uso. Quanto maior a pontuação, mais forte será o desempenho. Critérios de pontuação específicos podem ser encontrados aqui
https://github.com/zilliztech/VectorDBBench/tree/main#leaderboard。
A figura acima mostra a pontuação de desempenho (>1) de cada instância em diferentes casos de uso (https://zilliz.com/vector-database-benchmark-tool#comparison-section). Quanto menor a pontuação, mais forte será o desempenho.
上述性能基准测试结果由开源的 VectorDBBench(https://github.com/zilliztech/VectorDBBench) 工具提供。在工具的 GitHub 主页上,还可以看到向量数据库的排行榜。VectorDBBench 为主流的向量数据库和相关云服务提供了公正的性能测试基准(https://zilliz.com.cn/benchmark)。该工具有着良好的易用性,可以轻而易举地在众多向量数据库云服务和开源向量数据库中找到最佳选择。
02.
Qdrant Cloud 特性对比
随着向量数据库可以存储的数据量呈几何级数的增长,性能也成为了向量数据库的重大挑战。为了保障数据检索性能,数据库的跨节点横向扩展能力至关重要。另外,数据插入速率、检索速率以及底层硬件的不同可能会衍生出不同的应用需求,这也让全局参数调节能力成为向量数据库的必备能力之一。
向量数据库为何而生
向量数据库是用来存储通过机器学习模型生成的非结构化数据的向量表示,为其创建索引,并在其中进行检索的一套全托管解决方案。它应该提供如下特性:
可扩展性和参数调节能力
多租户和数据隔离
完整的 API 套件
直观的用户界面和控制台
可扩展性
功能
专门打造
关于更多详情,请参见比较页面(https://zilliz.com.cn/comparison/milvus-vs-qdrant)。
本文分享自微信公众号 - ZILLIZ(Zilliztech)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。