在这里插入图片描述

向量数据库 Weaviate 自 1.0 版本问世以来,一直以「性能极致」「模块生态」「开箱即用」著称。2025 年 5 月 30 日,官方正式放出了 v1.31.0。相比上一版,这一次没有“破坏性变更”,却带来了超过 200 个功能点、性能优化与问题修复。本文为你提炼关键亮点,并对重要特性进行深度解读,帮助开发者、架构师、数据科学家第一时间吃透升级价值。

二、本次版本的五大核心升级

  1. 向后兼容的 Named Vectors
  2. 全新 MUVERA 编码器
  3. HNSW 向量索引快照化
  4. BM25 支持 AND / OR 最小匹配
  5. 副本移动(Replica Movement)初步开放

下面详细展开。

三、向后兼容的 Named Vectors

  1. 用途
    • 过去,我们一次只能给每条对象存一条“默认向量”。
    • 多模态、多任务场景日益增多,例如同时存图像向量、文本向量、Meta 向量,迫切需要“一条记录多向量”。
    • Named Vectors 正式转正,并兼顾旧集合(Legacy Vector)。

  2. 主要改动
    • 自动建模时,默认直接创建命名向量,而不是传统默认向量。
    • 老集合若混用新旧配置,可用 default 名称“指向”旧的向量列,平滑过渡。
    • 运行中给已有集合追加新的命名向量不再需要额外开关——策略改为“默认开启”。

  3. 影响评估
    • API 不变:插入/查询时只需在 body 中加上 vectors 字段及其子名称。
    • 性能:内部结构由一列扩展为 N 列,单条写入/读出略增 5%~8% 开销,但远小于多表拆分成本。
    • 升级建议:依赖旧版 SDK 的项目,先确认 SDK 版本 ≥1.31.0,否则 Named Vectors 字段可能无法序列化。

四、MUVERA 编码器

  1. 什么是 MUVERA
    • Multi-Vector Embedding with Repetition and Aggregation,由 Weaviate 社区提出的多向量自动重复聚合策略。
    • 通过设置 repetitions 参数,对同一段文本进行多次“随机掩码 + 嵌入”,最后汇聚,能显著提升检索稳定性。

  2. v1.31.0 更新
    • MUVERA 编码内置并可在 class 索引级别启用。
    • 默认 repetitions 从 4 调整到 6,在公开英语、法语数据集上 top-10 命中率平均提升 2.3~3.1 pp。

  3. 适用场景
    • 搜索召回“漏检”痛点严重的长尾语料。
    • 多语言、口语化文本库。

五、HNSW Snapshotting

  1. 痛点
    • 客户端批量写入时,HNSW 构图成本高;若节点瞬断,需要重建图,耗时数十分钟。
    • 备份还原场景中,重放 WAL 也会因图不存在导致性能抖动。

  2. 新能力
    • 支持周期性快照,周期通过环境变量或 runtime config 指定,默认 10 分钟。
    • 快照文件采用增量方式,仅存储新增节点的邻接信息。
    • 恢复时先加载最近快照,再对剩余增量重新构图,速度缩短 10~20 倍。

  3. 兼容性
    • 若关闭快照(snapshotting: false),行为与旧版本一致;升级不强制改造。

六、BM25 AND/OR + Minimum Should Match

  1. 背景
    • 经典 BM25 在全文检索中常用,但 Weaviate 早期实现仅支持单一关键字列表(must match any)。
    • 复杂检索需要灵活表达式——「A AND B」或「(A OR B) AND C」。

  2. 本次改进
    • where 子句新增 minimumOrTokensMatch,可设置按 OR 逻辑命中数阈值。
    • 同时引入显式 AND 语义,开发者可单独声明必须出现的 token。
    • 对计算密度高文本集合的实测:AND / OR 混用查询延迟提升不超过 5 ms,召回准确率大幅提高。

七、副本移动(Replica Movement)
(当前处于 “默认关闭” 状态,需显式打开 runtime_config.replication.movementEnabled)

  1. 背景
    • 分片副本在多节点集群中经常需要“搬家”,例如节点扩容、缩容、故障下线。
    • 之前只能全局重分片,运维成本高。

  2. v1.31.0 能力
    • 支持“复制”与“移动”两种模式:
    —— 复制:从源节点文件级 copy 到目标节点,实现副本数 +1;
    —— 移动:拷贝完成后,异步同步残留写操作,再删除源。
    • 内置有限状态机(FSM)管理生命周期:INIT → COPYING → FINALIZING → READY。
    • 提供 RESTful 接口:GET /v1/replication/replicate/{id}、DELETE、force-delete 等。

  3. 注意
    • 监控:Prometheus / Grafana 模板同步更新,可查看复制速度、排队长度、错误率。
    • 当前版本将功能关闭,官方给出原因是“对大规模负载要继续压测”;生产试用请充分演练。

八、性能升级一览

  1. Thread-safe 队列 & 向量索引重构——多核写入吞吐提升 ~16%
  2. Stand-alone K-means 算法全面串行→并行——分桶初始化提速 11 倍
  3. 内存段 Rangeable Index + Buf Pool 引入——高并发检索 RSS 降低 20%
  4. WAL 重用——重启场景下的恢复时间降低 40%
  5. 优化 mmap 读头策略——资源占用下降,IO wait 减半
  6. Segment 写入批量 flush 合并——日志写放大降低 28%

九、模块生态新成员

  1. voyage-3-large / voyage-3.5
    • 面向海量多语言语义搜索的 embedding 服务
  2. tex2vec-model2vec
    • 通用型文本嵌入,需要自建模型或调用外部 API
  3. text2vec-huggingface 最新 API 对齐
  4. 新增 Cohere v3.5 重排序模型支持
  5. Google Gemini 默认模型从 1.0-pro-vision 更换为 2.0-flash-001

十、稳定性与安全修复

  1. Azure OpenAI 响应解析修正
    针对与 Azure OpenAI 服务对接时的响应格式变动,进行了兼容性修复,确保外部调用稳定无误。

  2. RBAC 权限管理完善
    补全了从老版本到新版本的角色权限快照升级和降级路径,保证用户权限数据在版本迁移时不丢失、不同版本间能平滑过渡。

  3. 防止内存泄露及写入竞态
    新增多种保护措施和代码改进,避免在并发写入和索引构建过程中的竞态条件,提升系统稳定性,降低宕机风险。

  4. HNSW 索引“幽灵节点”清理
    修复了因异常终止导致的邻接列表中残留无效节点(幽灵节点)问题,避免索引查询异常或性能退化。

  5. WAL 日志空文件问题解决
    清理和擦除了无用的空白 WAL 文件,改善磁盘使用效率,防止空间浪费,提升存储稳定性。

十一、性能优化深度解读

  1. 线程安全的向量索引访问
    重新设计写入和读取队列,利用更细粒度的锁和无阻塞结构,实现多线程下的高效并发访问,写吞吐量提升约16%。
    实际项目中,高并发场景下写入等待时间显著缩短,服务响应更流畅。

  2. 并行化的 Stand-alone K-means 算法
    经典聚类算法在单节点环境下升级为并行模式,分桶初始化加速11倍。
    聚类模型重训练的耗时大幅缩短,有效支持频繁模型更新的在线实用场景。

  3. 区间索引和缓冲池提升内存利用
    引入 rangeable segment-in-memory 结构,结合多线程安全的缓冲池(buf pool),降低内存碎片和重复分配。
    结果是高并发查询时 RSS(实际常驻内存量)降低约20%,载入响应更快。

  4. WAL 重用机制
    在节点重启和数据恢复期间,复用已有的写前日志(WAL),减少重复磁盘 IO,整体恢复时间缩短40%。
    对应服务重启和升级场景,系统可迅速恢复正常服务,降低停机时间。

  5. mmap 读取优化
    通过预计算和智能管理 mmap 文件头部,有效减少系统调用和磁盘寻址次数,提升文件读取效率,IO等待时间减半。
    在磁盘 I/O 紧张时段表现尤为明显。

  6. 批次写入和刷盘合并
    合并多条索引写入的刷盘操作,减少磁盘写放大,写入效率提升28%,磁盘寿命延长。

综上,性能优化囊括 CPU、内存、磁盘 IO 多维度,极大提升了 Weaviate 的服务稳定性和吞吐能力。

十二、模块生态持续丰富

  1. 新增 voyage-3-large 和 voyage-3.5 模型
    针对多语言多模态大规模检索场景进行优化,高效生成高质量向量表示。适合企业跨语言内容搜索和推荐。

  2. tex2vec-model2vec 模块
    支持自定义文本嵌入模型接入,方便满足行业个性化需求。加上 HuggingFace 和 Cohere 模块更新,用户拥有更广泛的选择。

  3. 兼容开放 API 变更
    更新文本嵌入相关模块以对齐最新接口规范,兼顾向后兼容,方便用户酌情升级。

  4. Google Gemini 模型替代
    Gemini-1.0-pro-vision 版本默认更替为效果更优的 Gemini-2.0-flash-001,提升自然语言理解表现,增强下游生成与语义检索能力。

十三、开发者与用户指引

  1. 升级注意事项
    • 备份好当前数据和配置,特别是 RBAC 权限配置与复制状态。
    • SDK 和客户端版本尽量升级至同一主版本,兼容新特性 Named Vectors。
    • 副本移动(Replica Movement)默认关闭,非专业运维团队暂勿启用。
    • HNSW 快照支持无需开启即可提升恢复速度,但可根据负载调整周期。

  2. 新特性使用建议
    • Named Vectors 让多模态数据管理更便捷,建议新项目默认启用。
    • MUVERA 编码适合多语言文本和噪声较多环境,开启后可提升召回稳定性。
    • BM25 多逻辑查询能力,适合复杂查询场景,建议在业务需求明确时采用。
    • 监控指标和 Grafana Dashboard 更新,建议同时配套部署,实时掌控集群健康。

十四、未来展望

v1.31.0 显著提升了 Weaviate 的灵活性、性能和可维护性,充分体现向量数据库日益成熟的趋势。随着复制副本管理逐步完善以及多模态支持深化,Weaviate 有望成为更复杂企业应用的首选解决方案。

官方也公布了下一步重点研发方向,包括自动弹性扩缩容方案、模型在线微调支持、以及跨集群全局搜索融合等。敬请期待!

十五、结语

Weaviate v1.31.0 是一次里程碑式更新,集合了命名向量多样化应用、编码器进阶、索引快照、检索表达能力加强、复杂副本移动等多维度创新,性能提升与稳定性修复兼备。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐