向 AI Search 迈进,腾讯云 ES 自研 v-pack 向量增强插件揭秘

作者:来自腾讯云刘忠奇

2025 年 1 月,腾讯云 ES 团队上线了 Elasticsearch 8.16.1 AI 搜索增强版,此发布版本重点提升了向量搜索、混合搜索的能力,为 RAG 类的 AI Search 场景保驾护航。除了紧跟 ES 官方在向量搜索上的大幅优化动作外,腾讯云 ES 还在此版本上默认内置了一个全新的插件 —— v-pack 插件。v-pack 名字里的 "v" 是 vector 的意思,旨在提供更加丰富、强大的向量、混合搜索能力。本文将对该版本 v-pack 插件所包含的功能做大体的介绍。

腾讯云 ES AI 搜索优化实践 刘忠奇 20250605

一、存储优化:突破向量搜索的存储瓶颈

1.1 行存裁剪:无损瘦身节省 70% 存储

技术原理

传统 Elasticsearch 默认将向量数据同时存储在行存 _source(.fdt) 和列存 doc_value(.dvd/.vec) 中,造成冗余。利用腾讯云 ES 贡献给社区的向量列存读取能力(PR #114484),在安装了 v-pack 插件的集群上,默认无损排除 _source 中的向量(dense_vector)字段,实现存储空间的高效利用。

技术亮点

  • 动态开关:通过集群级参数 vpack.auto_exclude_dense_vector 控制(默认开启)
  • 无损兼容:通过 docvalue_fields 语法仍可获取原始向量值(用于业务开发调试、reindex 等操作)

实测效果

场景

原始存储

优化后存储

节省比例

纯向量场景(250w条)

4.78GB

1.09GB

77%

混合场景(200w条)

32.21GB

9.10GB

72%

使用方法

无需手动启用,安装了 v-pack 插件的集群即生效。v-pack 会在创建新索引时,自动在索引 settings 中扩增 index.mapping.source.auto_exclude_types 参数来裁剪向量字段。

如需关闭,可关闭集群维度的动态开关,此后新创建的索引则不会做裁剪。

PUT _cluster/settings
{"persistent": {"vpack.auto_exclude_dense_vector": false}
}

场景建议

所有生产场景

1.2 量化裁剪:极致瘦身节省 90% 存储

技术原理

量化实际是将原始高位向量压缩成低位向量的一种算法,如果把量化比作 “脱水”,那这类算法函数的逆运算,就可以实现反向 “复水” 得到原来的向量。当然由于低位不能完全表示高位,在精度上会有一定损失,但它带来的是磁盘存储的进一步下降,对于存储有强烈需求的客户仍然具有很高的实际意义。在上文行存裁剪的基础上,进一步节省存储到 90%。

技术亮点

在社区标量量化技术int8_hnsw基础上,首创int8_only_hnsw索引类型:

  • “脱水”存储:仅保留量化后的 int8 向量(.veq文件)
  • 动态“复水”:merge 时通过量化参数还原近似原始向量

实测效果

场景

原始存储

优化后存储

节省比例

纯向量场景(250w条)

4.78GB

0.44GB

90%

混合场景(200w条)

32.21GB

1.09GB

91%

技术对比

使用方法

在安装了 v-pack 插件的集群,创建索引时,将 index_options.type 设置为 int8_only_hnsw 索引类型

PUT product_vector_index
{"mappings": {"properties": {"embedding": {"type": "dense_vector","dims": 768,"index_options": {"type": "int8_only_hnsw","m": 32,"ef_construction": 100}}}}
}

场景建议

  • 搜推系统:对存储敏感的场景
  • RAG 应用:海量的知识库数据

1.3 小结

下图展示了 v-pack 的两种向量存储裁剪的效果。详细的技术方案解析详见:《ES8向量功能窥探系列(二):向量数据的存储与优化》

二、排序优化:多策略融合的灵活组合

2.1 权重可调 RRF 融合:

算法演进

在标准 RRF(Reciprocal Rank Fusion)公式中引入权重因子:

加权得分 = Σ( weight_i / (k + rank_i) )

突破传统多路召回等权融合的限制,支持业务自定义权重策略。

混合排序示例

GET news/_search
{"retriever": {"rank_fusion": {"retrievers": [{"standard": {"query": {"match": {"title": "人工智能"}}}},{"knn": {"field": "vector","query_vector": [...],"k": 50}}],"weights": [2, 1],"rank_constant": 20}}
}

适用场景

  • 电商搜索:提升关键词权重(权重比 3:1 或更大)
  • 内容推荐:增强语义相关性(权重比 1:2 或更大)
  • 知识库检索:平衡语义与关键词(权重比 1:1 微调)

2.2 归一化 Score 融合

算法原理

通过动态归一化将不同评分体系统一到 0,1 区间:

  1. BM25 归一化(score - min_score)/(max_score - min_score)
  2. 向量相似度归一化cosine_similarity + 1 / 2

混合排序示例

{"retriever": {"score_fusion": {"retrievers": [...],"weights": [1.5, 1]}}
}

适用场景

  • 结果可解释性强
  • 多维度加权评分的精排搜索

2.3 基于模型的 Rerank 融合

算法原理

借助腾讯云智能搜索的原子能力,腾讯云 ES 8.16.1 搜索增强版,已支持调用第三方 rerank 模型对混合搜索的结果进行重排。当前已支持内置下列重排序模型,这些模型都部署在 GPU 上,性能有极大提升。

原子服务

token限制

维度

语言

备注

bge-reranker-large

514

1024

中文、英文

bge经典模型

bge-reranker-v2-m3

8194

1024

多语言

bge经典模型

bge-reranker-v2-minicpm-layerwise

2048

2304

多语言

在英语和中文水平上均表现良好,可以自由选择输出层,有助于加速推理

使用示例

PUT _inference/rerank/tencentcloudapi_bge-reranker-large
{"service": "tencent_cloud_ai_search","service_settings": {"secret_id": "xxx","secret_key": "xxx","url": "https://aisearch.internal.tencentcloudapi.com","model_id": "bge-reranker-large","region":  "ap-beijing","language":  "zh-CN","version":  "2024-09-24"}
}
POST _inference/rerank/tencentcloudapi_bge-reranker-large
{"query": "中国","input": ["美国","中国","英国"]
}
{"rerank": [{"index": 1,"relevance_score": 0.99990976,"text": "中国"},{"index": 0,"relevance_score": 0.013636836,"text": "美国"},{"index": 2,"relevance_score": 0.00941259,"text": "英国"}]
}

混合排序示例

{"retriever": {"tencent_cloud_ai_reranker": {"retrievers": [...],"model_id": "tencentcloudapi_bge-reranker-large",                           "rank_field": "content","rank_text": "nice day","rank_window_size": 10,                                                             "min_score": 0.6}}
}

适用场景

  • 对语义相关性有更高需求的场景
  • 对准召率有更高需求的场景

2.4 小结

下图展示了 v-pack 提供的多种融合排序算法,所带来的更丰富的准召率提升手段。

v-pack 提供的融合算法,支持自定义的灵活组合,可以参考如下的做法来组合使用。

三、推理飞跃:无缝连接最强模型

3.1 对话推理:一键接入满血 Deepseek 大模型

借助腾讯云智能搜索的 LLM 生成服务,腾讯云 ES 8.16.1 搜索增强版亦可以一键接入 DeepSeek 以及混元系列大模型进行推理。

模型类型

模型名称(model)

Tokens

特性

deepseek-r1

最大输入128k

最大输出8k

擅长复杂需求拆解、技术方案直译,提供精准结构化分析及可落地方案,实现了与GPT-4o和Claude Sonnet 3.5等顶尖模型相媲美的性能

deepseek-v3

最大输入128k

最大输出8k

通用型AI模型,拥有庞大参数规模及强大多任务泛化能力,擅长开放域对话、知识问答、创意生成等多样化需求

deepseek-r1-distill-qwen-32b

最大输入128k

最大输出8k

r1-36b参数蒸馏版,效果没有r1好,但响应速度更快,资源成本更低

hunyuan-turbo

最大输入28k

最大输出4k

腾讯新一代旗舰大模型,混元Turbo模型,在语言理解、文本创作、数学、推理和代码等领域都有较大提升,具备强大的知识问答能力

...

使用示例

PUT _inference/completion/deepseek
{"service": "tencent_cloud_ai_search","service_settings": {"secret_id": "xxx","secret_key": "xxx","url": "https://aisearch.internal.tencentcloudapi.com","model_id": "deepseek-v3","region":  "ap-beijing","language":  "zh-CN","version":  "2024-09-24"}
}
POST _inference/completion/deepseek
{"input": "你是谁?"
}
{"completion": [{"result": "我是DeepSeek Chat,一个由深度求索公司开发的智能助手,旨在通过自然语言处理和机器学习技术来提供信息查询、对话交流和解答问题等服务。"}]
}

我们可以借助该能力,使用 Deepseek 代替 OpenAI 实现官方最佳实践中的相关功能:https://www.elastic.co/search-labs/blog/elasticsearch-openai-completion-support

3.2 嵌入推理:接入 GPU embedding 消除推理高延迟

借助腾讯云智能搜索的 LLM 生成服务,腾讯云 ES 8.16.1 搜索增强版支持内网无缝推理,目前支持以下主流的 embedding 模型。

原子服务

token限制

维度

语言

备注

bge-base-zh-v1.5

512

768

中文

bge经典模型

bge-m3

8194

1024

多语言

bge经典模型

conan-embedding-v1

512

1792

中文

腾讯自研,在MTEB榜单一度综合排第一

使用示例

PUT _inference/text_embedding/tencentcloudapi_bge_base_zh-v1.5
{"service": "tencent_cloud_ai_search","service_settings": {"secret_id": "xxx","secret_key": "xxx","url": "https://aisearch.internal.tencentcloudapi.com","model_id": "bge-base-zh-v1.5","region":  "ap-beijing",   "language":  "zh-CN","version":  "2024-09-24"}
}
PUT semantic_text_index
{"mappings": {"properties": {"content": {"type": "semantic_text","inference_id": "tencentcloudapi_bge_base_zh-v1.5"}}}
}

3.3 小结

借助腾讯云智能搜索的原子服务,腾讯云 ES 允许用户将 ES 作为 AI Search 的服务中枢,成为向量、文本、模型的统一引擎,all in one 一站式地完成整套 RAG 场景的搜索和推理需求。

四、持续进化:社区贡献与自研特性齐头并进

腾讯云 ES 团队持续投入开源生态建设,覆盖最新的向量场景:

  • 核心贡献:累计提交 200+ 社区PR,向量相关 10+

让技术回归本质,用创新驱动价值

腾讯云 ES 将持续深耕 AI Search 基础设施,致力服务好当今日益增长的 RAG 与多模态搜索需求,与开发者共同探索搜索技术的无限可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron-vite串口通信

一、构建项目后,安装“串口通信库” npm install serialport二、设置 npm install --save-dev electron-rebuild ./node_modules/.bin/electron-rebuild 注意:如果执行报错以下问题 1、未配置python变量 2、没有Microsoft Visual Studio BuildTools 3…

Cisco IOS XE WLC 任意文件上传漏洞复现(CVE-2025-20188)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前…

从 iPhone 备份照片: 保存iPhone图片的5种方法

随着智能手机越来越融入我们的生活,我们的照片已成为我们设备上最有价值的数据形式之一。然而,iPhone内部存储空间仍然有限,因此我们需要将iPhone中的照片备份到另一个地方,以释放空间并确保珍贵的图像记忆的安全。阅读本指南&…

Ubuntu崩溃修复方案

当Ubuntu系统崩溃时,可依据崩溃类型(启动失败、运行时崩溃、完全无响应)选择以下修复方案。以下方法综合了官方推荐和社区实践,按操作风险由低到高排序: 一、恢复模式(Recovery Mode) 适用场景​​:系统启动卡顿、登录后黑屏、软件包损坏等。 ​​操作步骤​​: ​…

免费批量文件重命名工具

免费批量文件重命名工具 🌐 网站: 免费批量文件重命名工具 📌 工具简介 一款功能强大的批量文件重命名工具,支持多种重命名方式,操作简单,完全免费! 🚀 主要功能 功能描述自定义重命名直接输…

VR博物馆推动现代数字化科技博物馆

VR博物馆:推动现代数字化科博馆新篇章 随着科技的飞速发展,虚拟现实(Virtual Reality, VR)技术已经逐渐渗透到我们生活的方方面面,其中,VR博物馆作为现代数字化科博馆的重要形式之一,以独特的优…

COMSOL与MATLAB联合仿真人工智能的电学层析成像系统

关键词:MATLAB,电学层析成像,人工智能,图像重建,深度学习 一、引言 基于人工智能的电学层析成像系统是一种创新的检测技术,结合了电学层析成像技术与人工智能算法的优势。电学层析成像技术,简…

【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式

一直感觉 Visio 或者 PPT 中 Mathtype 对 latex 公式渲染效果不好,且在 Ubuntu 下的支持不好,最近重新调研发现一个好用的工具 drawio。 在线使用 https://app.diagrams.net/?srcabout 也有桌面版的应用,Windows 就下载 exe 安装器&#x…

selenium自动化测试学习心得1

1. 关于测试用例的顺序 首先在你测试的主类上面写TestMethodOrder(MethodOrderer.OrderAnnotation.class) 然后在测试用例上面, 写Order(),里面的数字越小,测试的优先级越大 2. 关于getText()和getAttribute("innerText") getText() 是 Selenium 方法,…

Spring AI 结合DeepSeek使用教程

Spring AI 结合DeepSeek使用教程 一、环境搭建与项目初始化 创建Spring Boot项目 使用IDEA或Spring Initializr创建项目,选择JDK 17或更高版本(推荐21)。勾选依赖项:Spring Web、Lombok,Maven或Gradle作为构建工具。添…

Android 布局优化:掌握 <include> 与 <merge> 的实战技巧

引言 在 Android 开发中&#xff0c;布局文件是 UI 设计的核心载体&#xff0c;但随着项目复杂度增加&#xff0c;布局冗余、嵌套层级过深等问题会导致性能下降。本文将通过 代码级实战示例&#xff0c;详细解析如何利用 <include> 和 <merge> 标签优化布局&#…

【storage】

文章目录 1、RAM and ROM2、DRAM and SRAM2、Flash Memory&#xff08;闪存&#xff09;4、DDR and SPI NOR Flash5、eMMC6、SPI NOR vs SPI NAND vs eMMC vs SD附录——prototype and demo board附录——U盘、SD卡、TF卡、SSD参考 1、RAM and ROM RAM&#xff08;Random Acce…

Python异步编程-协程

1、引言 在使用多个爬虫脚本进行数据爬取和调用大语言模型返回结果的场景中&#xff0c;涉及到大量的网络IO操作。协程能够让网络IO操作并发执行&#xff0c;极大地提升程序的运行效率。在智能体相关的开源项目中&#xff0c;我们也可以经常看到协程的身影。 2、协程 协程&a…

大语言模型提示词(LLM Prompt)工程系统性学习指南:从理论基础到实战应用的完整体系

文章目录 前言&#xff1a;为什么提示词工程成为AI时代的核心技能一、提示词的本质探源&#xff1a;认知科学与逻辑学的理论基础1.1 认知科学视角下的提示词本质信息处理理论的深层机制图式理论的实际应用认知负荷理论的优化策略 1.2 逻辑学框架下的提示词架构形式逻辑的三段论…

Android音频开发:Speex固定帧与变长帧编解码深度解析

引言 在Android音频开发领域&#xff0c;Speex作为一种开源的语音编解码器&#xff0c;因其优秀的窄带语音压缩能力被广泛应用。在实际开发中&#xff0c;帧处理策略的选择直接影响着音频传输质量、带宽占用和系统资源消耗。本文将深入探讨Speex编解码中固定帧与变长帧的实现差…

Docke启动Ktransformers部署Qwen3MOE模型实战与性能测试

docker运行Ktransformers部署Qwen3MOE模型实战及 性能测试 最开始拉取ktransformers:v0.3.1-AVX512版本&#xff0c;发现无论如何都启动不了大模型&#xff0c;后来发现是cpu不支持avx512指令集。 由于本地cpu不支持amx指令集&#xff0c;因此下载avx2版本镜像&#xff1a; …

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…

飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程

#下载docker Index of linux/static/stable/ 根据电脑的CPU类型选择&#xff1a; Intel和AMD选x86_64飞腾D2000选aarch64 #选择较新的版本 #在包含下载的docker-XX.X.X.tgz的文件夹中右键->打开终端 # 解压安装包&#xff08;根据实际下载的文件&#xff09; tar -zxvf …

启程:为何选择PHP?

一、写在前面&#xff1a;小公司的生存逻辑与我的困惑 我是一名在小型软件开发公司工作的Java全栈开发者。我们这类团队的现实很直白&#xff1a;接不到“大单子”&#xff0c;日常围绕各类中小项目——企业官网、内部管理系统、定制化小程序——展开。客户预算有限、交付周期…

学习使用YOLO的predict函数使用

YOLO的 result.py #2025.1.3 """ https://docs.ultralytics.com/zh/modes/predict/#inference-arguments 对yolo 目标检测、实例分割、关键点检测结果进行说明https://docs.ultralytics.com/reference/engine/results/#ultralytics.engine.results.Masks.xy 对…