技术干货

适配各类大模型应用!手把手教你选择 Zilliz Cloud 实例类型

2023-07-13
郭人通

郭人通

适配各类大模型应用!手把手教你选择 Zilliz Cloud 实例类型

作为大模型时代备受关注的细分赛道,向量数据库可以不仅为大模型提供存储和向量检索的功能,还能适配各种 AI 应用场景,例如聊天机器人、内容审核、增强 LLM 知识库等。

不过,对于向量数据库的开发者而言,成本是绕不开的一大话题。基于对用户硬件成本的考量,Zilliz Cloud 推出了不同类型的 CU,以满足不同用户在不同场景下的使用需求。

Zilliz Cloud 中的计算单元(CU)指的是用于处理搜索请求和索引的硬件资源。Zilliz Cloud 提供 3 种类型的 CU:性能型、容量型和经济型。不同 CU 类型由不同的 CPU、内存和存储资源组合而成,适用于不同的业务场景。因此,需要在配置 Zilliz Cloud 集群时选择合适的 CU 类型和大小。

性能型 CU

性能型 CU 适用于需要低延迟和高吞吐量的向量相似性检索场景。该类型的 CU 能够保证毫秒级的响应。性能型 CU 的适用场景包括但不限于:

  • 生成式 AI

  • 推荐系统

  • 搜索引擎

  • 聊天机器人

  • 内容审核

  • 增强 LLM 知识库

  • 反诈系统

容量型 CU

相较性能型 CU,容量型 CU 能多存储 5 倍的数据,但延迟可能会增加,因此适用于需要大量存储空间的场景,尤其是需要处理千万级向量数据的场景。容量型 CU 的适用场景包括但不限于:

  • 搜索大规模的非结构化数据(如:文本、图像、视频、分子式结构等)

  • 版权保护

  • 身份验证

经济型 CU

经济型 CU 可支持的数据规模与容量型 CU 一致,但价格更低,性能略有下降,适用于追求高性价比或预算敏感的场景。经济型 CU 的适用场景包括但不限于:

  • 数据标记或数据聚类

  • 数据去重

  • 数据异常检测

  • 平衡数据分布

CU 类型对比

下表对比了 Zilliz Cloud 中 3 种 CU 类型之间的差异。

7131.png 7131.png

表1:3 种 CU 类型对比

性能对比

在对比不同 CU 类型的性能时,我们着重关注 2 个关键指标——搜索延迟和吞吐量。在测试 3 种 CU 类型性能时,我们使用了 2 个不同数据集,并设置了不同的 topk 值(10、100、250、1000)。第 1 个数据集包含 100 万个 768 维向量。第 2 个数据集包含 500 万个 768 维向量

7132.png 7132.png

表2:性能测试结果:搜索延迟

上表显示性能型 CU 的搜索延迟低于其他 2 种 CU 类型,因此性能型 CU 是追求低延迟场景的最佳选择。在常见的 topk 值(10-250)下,性能型 CU 能够确保低于 10 毫秒的延迟,比容量型和经济型 CU 快 5-10 倍。当 topk 值达到 1000 时,性能型 CU 的延迟为 10-20 毫秒,容量型 CU 的延迟为 50-100 毫秒,经济型 CU 的延迟为 100-200 毫秒。当 topk 值大于等于 1000 时,虽然性能型 CU 的响应时间有所变慢,但其搜索延迟仍旧可以满足许多应用场景。

7133.png 7133.png

表3:性能测试结果:吞吐量

性能型 CU 的吞吐量测试结果最佳,比容量型 CU 快 4-5 倍,比经济型 CU 快 15-18 倍。

容量对比

我们使用标准向量维度:128、256、512、768、1024 测试 Zilliz Cloud 3 种 CU 类型的容量。

7134.png 7134.png

表4:容量测试结果

上表测试结果显示:

容量型 CU 和经济型 CU 的容量相同,均比性能型 CU 多 5 倍。

向量数据维度越大,需要的数据存储空间越大。例如,同一类型 CU 存储 512 维向量数据时的数据量是存储 1024 维向量数据时的数据量的 2 倍。

注意:本实验仅限于主键和向量字段,未添加标量字段。实际使用过程中,如果添加了其他标量字段(如:id、标签、关键字、摘要、URL等),每种 CU 类型的实际容量会与上表有所出入。因此,上表仅可作为参考使用,具体容量还需要根据实际使用情况判断。

CU 类型和大小选择案例

在上文中,我们通过延迟、吞吐量、容量和价格等方面对比了 Zilliz Cloud 提供的 3 种 CU 类型。下面将通过 2 个例子,帮助用户更好地选择合适的 CU 类型:

示例 1

假设你需要创建 1 个 Zilliz Cloud 集群存储 1000万 个 768 维的文档文本块向量,用于增强搭建的 LLM 聊天机器人。要求:QPS 为 1000,延迟小于 30 毫秒,topK 为 10。

想要实现延迟小于 30 毫秒,性能型 CU 是唯一的选择。由于每个性能型 CU 的容量为 1200 万 768 维向量,你需要至少 9 个性能型 CU 来处理 1000 万个向量。1 个高性能 CU 在 topk 值为 10 时,吞吐量可以达到 520。因此,如果 QPS 需要达到 1000,那需要使用 2 个副本。

综上,对于示例 1 的场景,我们推荐使用 2 个各包含 9 个性能型 CU 的副本。

示例 2

假设你需要搭建一个应用从 1 亿张 768 维图片向量中进行相似性搜索。要求:无需实时响应,topK 为 100, QPS 为 50。

容量型和性能型 CU 都能够在 topk 值为 100 时,满足 QPS 达到 50 的条件。但是,在该条件下,容量型 CU 的容量比性能型 CU 多 4 倍。因此,相比性能型 CU,容量型 CU 是更为合适的选择。

根据测试结果,单个容量型 CU 可以存储高达 560 万 768 维向量。如需存储 1 亿向量,你需要至少 18 个容量型 CU。当 topk 值为 100 时,单个容量型 CU 的吞吐量可以达到 80。要满足 QPS 为 50 的要求,只需 1 个副本即可。

综上,对于示例 2 的场景,我们推荐使用 1 个包含 18 个容量型 CU 集群。

总结

Zilliz Cloud 提供 3 种不同 CU 类型。对于追求实时响应的场景,我们推荐选择性能型 CU。对于需要存储和检索千万级向量数据的应用,我们推荐选择容量型 CU。对于追求高性价比或预算敏感的场景,我们推荐使用经济型 CU。

🌟探索国内 Zilliz Cloud 云服务可点击访问 https://zilliz.com.cn,海外官网和云服务入口为 https://zilliz.com。