← 返回博客
跳至主要内容

Weaviate 1.27 版本发布

·1 分钟阅读
Joon-Pil (JP) Hwang

Weaviate 1.27 发布!

以下是发布 ⭐️亮点⭐️!

Weaviate 1.27

Weaviate 1.27 引入了一种新的过滤策略,为性能和可扩展性带来显著优势。

这项令人兴奋的新搜索策略/算法来自我们的应用研究团队。Weaviate 的新型过滤搜索实现受到流行的 ACORN 论文的启发,并在其基础上进行了改进,使其更适合 Weaviate 用户。

Weaviate 的 ACORN 算法将特别有利于拥有非常大的数据集的用户。更具体地说,它应该显著改善负相关过滤 HNSW 搜索带来的性能挑战。

什么是负相关过滤搜索?

过滤搜索将实体的结构化、基于规则的包含和排除与基于向量的相似性搜索相结合。结构化部分是过滤器,基于向量的部分是搜索。


在负相关过滤搜索中,过滤器会不成比例地移除与搜索查询最相似的实体,如下所示。

Range query section graphic

向量查询/过滤器相关性的说明 (原始来自 https://arxiv.org/html/2403.04871v1)。

这种类型的过滤搜索可能比其他过滤搜索更慢。如图所示,向量搜索从向量空间的“错误”一端开始,而该端的大部分相似实体都被过滤器移除。


Weaviate 1.27 中的新型 ACORN 过滤策略极大地提高了类似情况下的过滤向量搜索性能。

ACORN 是如何工作的?

ACORN 算法通过三种不同的方式改进过滤搜索性能

  • 不符合过滤器的对象在距离计算中被忽略。
  • 该算法通过使用多跳方法评估候选邻域,更快地到达 HNSW 图的相关部分。
  • 入口点被随机播种,以加速收敛到过滤区域。

此实现是 Weaviate 自己版本,基于原始论文中的描述,并进行了修改以使其更适合 Weaviate 用户。

如何使用 ACORN

可以通过在相关 HNSW 向量索引的集合配置中设置 filterStrategy 来启用 ACORN 此处

注意:并非所有客户端都支持过滤器策略参数

在撰写本文时,filterStrategy 参数尚未被所有 Weaviate 客户端支持。它将很快添加到所有客户端。

根据我们的内部测试,ACORN 算法通常会提高过滤向量搜索性能,在负相关过滤搜索中改进最为显著。

请注意,召回率可能会略有下降,但我们的测试发现这要么可以忽略不计,要么微不足道。

我们非常期待您尝试它。

应该使用 ACORN?

我们认为 ACORN 将使大多数用户受益。但是,如果您在使用过滤 HNSW 搜索时遇到过挑战,我们特别鼓励您尝试一下。

请告诉我们您对 ACORN 的体验

我们很乐意听取您对 ACORN 的体验。请到 我们的论坛 告诉我们!

多目标向量搜索增强

在 Weaviate 1.27 中,多目标向量搜索已得到进一步改进,允许在一个查询中多次搜索同一个向量字段 此处

这些新选项为通过 Weaviate 全面搜索您的数据提供了更大的灵活性。

请查看 多目标向量搜索页面 以获取更多示例。

什么是多目标向量搜索?

Weaviate 1.26 引入了 多目标向量搜索,其中一个搜索查询可以跨多个目标向量进行搜索。


例如,您可以搜索一个产品对象,并将其查询与产品的

  • 标题向量和
  • 描述向量

在一个搜索中进行比较!

支持 Jina V3 嵌入

Weaviate 的 Jina AI 嵌入集成 现在支持 Jina AI 的新型 V3 嵌入。

如何使用 v3 嵌入模型

从您的角度来看,您只需要将模型名称设置为 jina-embeddings-v3 此处

使用 v3 模型,您可以选择性地在集合配置中指定 dimensions 参数,并使用 Jina AI 模型集成。这将使 Weaviate 的 Jina AI 模型集成能够获得正确长度的向量。您可以在此处平衡搜索质量需求与资源使用情况。

请注意,您可以将 Weaviate 的 量化技术 与此结合使用,以进一步管理资源使用情况。

有关如何使用此模型的信息,请参阅 Jina AI 模型集成页面

您可以在 JinaAI 的网站 上找到有关该模型的更多信息。

关于 Jina AI 的 v3 嵌入模型

该模型是一种多语言模型,在保持小型和高效的同时,在标准的检索基准测试中表现良好。


v3 模型采用二进制通道检索功能,它可以理解数据库条目(passages)和用户 queries 之间的区别。

Weaviate 会自动实现此功能,在导入期间将对象嵌入为 passages,并在 nearText 搜索期间将其嵌入为 queries


此外,v3 模型生成 Matryoshka 风格的嵌入。这意味着生成的嵌入可以被截断以适应所需的精度。

取消备份

创建 备份 是数据库管理的重要组成部分,尤其是在生产环境中。

在某些情况下,备份过程可能是不需要的。 也许备份是意外触发的,或者备份过程可能卡住了。

为了解决这个问题,我们添加了一个备份取消功能。 现在,可以停止不需要的、正在进行的备份过程,而不是消耗宝贵的 CPU 周期。

可以通过受支持的 Weaviate 客户端,或者通过REST 端点取消备份。

其他变更

区分大小写的向量化

Weaviate 如何向量化文本?

Weaviate 与嵌入模型提供商集成,以便在导入期间方便地向量化数据。

v1.27 开始,文本在向量化之前默认不再转换为小写。

此更改反映了现代嵌入模型处理大写(与小写)字符的能力。 我们预计这里的嵌入更改会非常小,但我们预计这将更接近现代嵌入模型期望的输入方式。

如果您更喜欢之前的行为,即在导入之前将输入转换为小写,请将 LOWERCASE_VECTORIZATION_INPUT 环境变量设置为 true

Google 模块重命名

Weaviate 支撑其 Google 模型集成的模块已被重命名。 历史上,它们以 PaLM 模型的命名,因此具有 text2vec-palmgenerative-palmmulti2vec-palm 等名称。

它们已被重命名为 text2vec-googlegenerative-googlemulti2vec-google

这些模块在 Weaviate 内部进行了别名处理,因此您现有的代码库将继续工作。 但是,如果您正在升级 Weaviate,我们建议您更新现有的代码,以便您的代码库遵循最新的约定。

PQ 训练集采样

产品量化 (PQ) 是一种用于压缩向量以实现高效存储和检索的技术。

PQ 需要使用训练集计算质心。 从 1.27 开始,如果您导入的对象数量超过了训练集的大小,Weaviate 现在将从导入的对象中对训练集进行采样。 这应该更有可能使训练集代表数据。

可靠性和性能改进

1.261.27 之间,Weaviate 的数据库和应用研究团队一直在努力工作,在底层进行了重大改进,以提高可靠性和性能。

我们不会在这里列出所有内容,但它们包括

  • BM25 和混合查询性能改进
  • 数据 (LSM) 存储改进,
  • 集群 (Raft) 改进,
  • 墓碑清理改进

以及更多。

与往常一样,我们建议您将 Weaviate 版本更新到最新的补丁版本(例如,1.26.2 ➡️ 1.26.5)。 我们还鼓励您考虑升级到最新版本(例如,1.26.2 ➡️ 1.27.0)。

发布说明

有关完整更改列表,请参阅每个版本的发布说明

总结

享受 Weaviate 1.27 中的新功能和改进。 该版本始终以开源方式提供在 GitHub 上,并且可在Weaviate Cloud 上的新沙盒中使用。 所以请尝试一下!

它也将很快在 Weaviate Cloud 的 Serverless 集群中可用。

感谢您的阅读,下次再见 👋!

准备开始构建了吗?

请查看 快速入门教程,或使用 Weaviate Cloud (WCD) 的免费试用版构建令人惊叹的应用程序。

不想错过另一篇博文?

注册我们的双周时事通讯以保持更新!


提交后,我同意 服务条款 隐私政策.