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

15 阅读9分钟

作者:来自腾讯云刘忠奇

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 参数来裁剪向量字段。

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

`

1.  PUT _cluster/settings
2.  {
3.    "persistent": {
4.      "vpack.auto_exclude_dense_vector": false
5.    }
6.  }

`AI写代码

场景建议

所有生产场景

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 索引类型

`

1.  PUT product_vector_index
2.  {
3.    "mappings": {
4.      "properties": {
5.        "embedding": {
6.          "type": "dense_vector",
7.          "dims": 768,
8.          "index_options": {
9.            "type": "int8_only_hnsw",
10.            "m": 32,
11.            "ef_construction": 100
12.          }
13.        }
14.      }
15.    }
16.  }

`AI写代码

场景建议

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

1.3 小结

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

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

2.1 权重可调 RRF 融合:

算法演进

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

`加权得分 = Σ( weight_i / (k + rank_i) )`AI写代码

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

混合排序示例

`

1.  GET news/_search
2.  {
3.    "retriever": {
4.      "rank_fusion": {
5.        "retrievers": [
6.          {
7.            "standard": {
8.              "query": {"match": {"title": "人工智能"}}
9.            }
10.          },
11.          {
12.            "knn": {
13.              "field": "vector",
14.              "query_vector": [...],
15.              "k": 50
16.            }
17.          }
18.        ],
19.        "weights": [2, 1],
20.        "rank_constant": 20
21.      }
22.    }
23.  }

`AI写代码

适用场景

  • 电商搜索:提升关键词权重(权重比 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

混合排序示例

`

1.  {
2.    "retriever": {
3.      "score_fusion": {
4.        "retrievers": [...],
5.        "weights": [1.5, 1]
6.      }
7.    }
8.  }

`AI写代码

适用场景

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

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

多语言

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

使用示例

`

1.  PUT _inference/rerank/tencentcloudapi_bge-reranker-large
2.  {
3.      "service": "tencent_cloud_ai_search",
4.      "service_settings": {
5.          "secret_id": "xxx",
6.          "secret_key": "xxx",
7.          "url": "https://aisearch.internal.tencentcloudapi.com",
8.          "model_id": "bge-reranker-large",
9.          "region":  "ap-beijing",
10.          "language":  "zh-CN",
11.          "version":  "2024-09-24"
12.      }
13.  }

`AI写代码
`

1.  POST _inference/rerank/tencentcloudapi_bge-reranker-large
2.  {
3.    "query": "中国",
4.    "input": [
5.      "美国",
6.      "中国",
7.      "英国"
8.    ]
9.  }

`AI写代码
`

1.  {
2.    "rerank": [
3.      {
4.        "index": 1,
5.        "relevance_score": 0.99990976,
6.        "text": "中国"
7.      },
8.      {
9.        "index": 0,
10.        "relevance_score": 0.013636836,
11.        "text": "美国"
12.      },
13.      {
14.        "index": 2,
15.        "relevance_score": 0.00941259,
16.        "text": "英国"
17.      }
18.    ]
19.  }

`AI写代码

混合排序示例

`

1.  {
2.    "retriever": {
3.      "tencent_cloud_ai_reranker": {
4.        "retrievers": [...],
5.        "model_id": "tencentcloudapi_bge-reranker-large",                           
6.        "rank_field": "content",
7.        "rank_text": "nice day",
8.        "rank_window_size": 10,                                                             
9.        "min_score": 0.6
10.      }
11.    }
12.  }

`AI写代码

适用场景

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

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模型,在语言理解、文本创作、数学、推理和代码等领域都有较大提升,具备强大的知识问答能力

...

使用示例

`

1.  PUT _inference/completion/deepseek
2.  {
3.      "service": "tencent_cloud_ai_search",
4.      "service_settings": {
5.          "secret_id": "xxx",
6.          "secret_key": "xxx",
7.          "url": "https://aisearch.internal.tencentcloudapi.com",
8.          "model_id": "deepseek-v3",
9.          "region":  "ap-beijing",
10.          "language":  "zh-CN",
11.          "version":  "2024-09-24"
12.      }
13.  }

`AI写代码
`

1.  POST _inference/completion/deepseek
2.  {
3.    "input": "你是谁?"
4.  }

`AI写代码
`

1.  {
2.    "completion": [
3.      {
4.        "result": "我是DeepSeek Chat,一个由深度求索公司开发的智能助手,旨在通过自然语言处理和机器学习技术来提供信息查询、对话交流和解答问题等服务。"
5.      }
6.    ]
7.  }

`AI写代码

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

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榜单一度综合排第一

使用示例

`

1.  PUT _inference/text_embedding/tencentcloudapi_bge_base_zh-v1.5
2.  {
3.      "service": "tencent_cloud_ai_search",
4.      "service_settings": {
5.          "secret_id": "xxx",
6.          "secret_key": "xxx",
7.          "url": "https://aisearch.internal.tencentcloudapi.com",
8.          "model_id": "bge-base-zh-v1.5",
9.          "region":  "ap-beijing",   
10.          "language":  "zh-CN",
11.          "version":  "2024-09-24"

13.      }
14.  }

`AI写代码
`

1.  PUT semantic_text_index
2.  {
3.    "mappings": {
4.      "properties": {
5.        "content": {
6.          "type": "semantic_text",
7.          "inference_id": "tencentcloudapi_bge_base_zh-v1.5"
8.        }
9.      }
10.    }
11.  }

`AI写代码

3.3 小结

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

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

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

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

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

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