首页
/ Marqo 2.17.0版本发布:支持API与推理服务分离部署

Marqo 2.17.0版本发布:支持API与推理服务分离部署

2025-06-12 06:06:41作者:郦嵘贵Just

项目简介

Marqo是一个开源的向量搜索引擎,它结合了传统的关键词搜索和现代的向量搜索技术,为用户提供高效的混合搜索能力。Marqo的核心优势在于能够同时处理结构化数据和非结构化数据,支持多种预训练模型,并提供了简单易用的API接口。

2.17.0版本核心更新

1. 新增三种运行模式

本次版本最重要的更新是引入了三种运行模式,为不同规模的应用提供了更灵活的部署方案:

  1. Combined模式:传统的运行方式,API服务和推理服务运行在同一个进程中,适合开发和测试环境。
  2. API模式:专门运行Marqo的API服务,适合作为前端接口服务。
  3. Inference模式:专门运行向量推理服务,专注于处理嵌入生成任务。

这种架构分离带来了几个显著优势:

  • 资源隔离:API服务和推理服务可以独立扩展,避免资源争用
  • 性能优化:推理服务可以专注于计算密集型任务,API服务专注于请求处理
  • 弹性伸缩:根据实际负载情况,可以单独扩展API或推理服务

2. 搜索参数增强

2.17.0版本对搜索功能进行了两项重要增强:

重排序深度控制

新增了rerankDepth(用于纯向量搜索)和rerankDepthTensor(用于混合搜索)参数。这些参数允许开发者控制重排序阶段的文档数量,确保在某些边缘情况下也能获得一致数量的搜索结果。

在实际应用中,这解决了以下问题:

  • 当搜索结果较少时,保证返回结果数量的稳定性
  • 在分页场景下提供更一致的体验
  • 优化搜索性能,避免不必要的重排序计算

混合搜索查询增强

引入了queryTensorqueryLexical参数,允许在混合搜索中为向量查询和关键词查询分别设置权重。这为搜索相关性调优提供了更细粒度的控制。

典型使用场景包括:

  • 当某些查询更适合向量搜索时,可以增加向量查询的权重
  • 对于精确匹配需求高的场景,可以提高关键词查询的权重
  • 实现动态调整搜索策略,根据查询类型自动优化权重

3. 性能优化与问题修复

本次版本还包含了一些重要的性能优化和问题修复:

  1. 混合搜索优化:修复了在纯关键词搜索场景下不必要生成嵌入向量的性能问题。现在当检索和重排序都设置为"lexical"时,系统会跳过向量生成步骤,显著提升搜索速度。

  2. 模型修正:修复了hf/bge-*系列模型使用错误池化方法的问题。这些模型现在使用正确的池化方法,能够生成更准确的向量表示。

技术影响与最佳实践

部署架构建议

对于生产环境,建议采用分离部署模式:

  • 中小规模部署:API模式和Inference模式分别部署,共享同一集群
  • 大规模部署:API服务可以水平扩展,Inference服务可以部署在GPU节点上
  • 云原生部署:可以将API和Inference服务部署为独立的Kubernetes Deployment

搜索参数调优指南

  1. 重排序深度

    • 对于高精度需求:设置较大的rerankDepth值(如100-200)
    • 对于性能敏感场景:使用较小的值(如50-100)
    • 根据文档集大小动态调整
  2. 混合搜索权重

    • 通用搜索:初始设置为0.5:0.5的权重比
    • 语义搜索主导:增加queryTensor权重(如0.7:0.3)
    • 精确匹配主导:增加queryLexical权重(如0.3:0.7)
    • 通过A/B测试确定最佳权重组合

总结

Marqo 2.17.0版本通过引入多模式运行架构和增强搜索参数,为生产环境部署和搜索质量优化提供了更多可能性。这些改进使得Marqo能够更好地适应不同规模的业务需求,同时提供了更精细的搜索控制能力。对于正在使用或考虑采用向量搜索技术的团队,这个版本值得重点关注和评估升级。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
161
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
146
191
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
198
279
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
949
556
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
346
1.33 K