ScaNN 向量查询性能概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页面从概念上简要介绍了如何使用 ScaNN 索引提升向量查询性能。
ScaNN 索引使用基于树量化的编制索引。在树量化技术中,索引会学习搜索树以及量化(或哈希)函数。当您运行查询时,搜索树用于修剪搜索空间,而量化则用于压缩索引大小。这种剪枝可以加快计算查询向量与数据库向量之间的相似度(即距离)得分。
为了同时实现较高的每秒查询次数 (QPS) 和较高的最近邻查询召回率,您必须以最适合您的数据和查询的方式对 ScaNN
索引树进行分区。
当前一代高维嵌入模型的一个共同特征是,它们仍可以在维度大幅降低的情况下保留大量信息,例如,只需 20% 的嵌入维度即可保留 90% 的信息。为了加快此类数据集的速度,AlloyDB ScaNN 会自动对编入索引的矢量使用主成分分析(见下文的 scann.enable_pca
)进行降维,从而进一步减少矢量搜索的 CPU 和内存用量。由于降维仍会导致索引中出现轻微的召回率损失,因此 AlloyDB ScaNN 会通过初始排名步骤进行补偿,从索引中获取更多经过 PCA 处理的候选矢量,然后按原始矢量对其进行重新排名(请参阅 scann.pre_reordering_num_neighbors
)。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-01-31。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-01-31。"],[],[]]