搜索巨头的战略转向
对于后端工程师来说,Elasticsearch(简称 ES)几乎是必备工具——无论是公司内部的日志分析、用户行为追踪,还是商品信息检索,只要涉及“搜索”功能,基本都离不开它。可以说,ES 就是全球无数公司后台数据的“超级图书管理员”。而 Jina AI 则是一家专注于搜索基础模型的创业公司,以其 Jina Embeddings 系列模型在业界闻名。
这次收购背后的深层逻辑很明确:搜索技术正在经历从“关键词匹配”向“语义理解”的根本性转变。传统搜索只能进行字面匹配,而语义检索能够理解概念之间的关联——当用户询问“如何提升销售业绩”时,系统能够智能地匹配包含“营收增长策略”的相关文档。
每个 AI 开发者都在经历的痛苦
但即使有了最好的语义理解能力,当你开始构建真正的 RAG 应用时,现实依然残酷。
如果你正在开发 RAG 应用,或者负责企业级 AI 搜索系统,那你肯定遇到过这个场景:产品 Demo 跑得很顺,小规模测试效果不错,老板也很满意。但当你开始处理真实业务数据时,问题来了。
检索延迟高得让人崩溃。
百万级文档时,查询还算流畅,50-100ms 的响应时间用户还能接受。但当数据规模到了千万级,延迟开始飙升到 200-500ms,用户开始感觉到明显的卡顿。等到了亿级文档,延迟直接飙到 1-2 秒,用户开始抱怨。而当你真正面对十亿级文档时,5 秒以上的响应时间让系统完全不可用。
更要命的是,这还只是单用户查询。一旦并发上来,系统直接崩溃。用户等不了,老板等不了,业务等不了。这就是现实:大部分 RAG 应用,都死在了规模化这道坎上。
为什么传统方案扛不住大规模?
你可能试过各种优化方案。稠密向量检索的语义理解能力很强,但计算量巨大。每次查询都要计算 768 维、1024 维的向量相似度,数据量一大,延迟直接爆炸。即使采用了 HNSW 这类近似搜索算法,当数据集量级上来后,查询延时依然居高不下,同时还需要消耗大量内存资源。
传统关键词搜索像 BM25 虽然速度很快,但语义理解能力有限。“汽车”和“车辆”这样的同义词都匹配不上,用户体验极差。
你也试过混合检索,采用两阶段的方式,先用关键词粗排再用向量精排。但这样做复杂度翻倍,延迟依然很高,问题并没有得到根本解决。
你陷入了一个经典的两难困境:要么快但不准,要么准但不快。
神经稀疏检索:鱼与熊掌兼得
其实,学术界早就有答案了:神经稀疏检索。这项技术巧妙地融合了传统关键词搜索和现代语义理解的优势,真正实现了“鱼与熊掌兼得”。
长期以来,搜索领域面临着一个经典的两难选择:要么选择语义理解能力强但成本高昂的稠密向量检索,要么选择高效但“不够聪明”的传统关键词检索。这就像是在“鱼”和“熊掌”之间做选择——开发者们很难同时拥有两者的优势。
稠密向量检索(Dense Retrieval)——语义理解的“熊掌”:
- 将文本编码为高维向量(如 768 维、1024 维);
- 语义理解能力强,能处理同义词、多语言查询;
- 但需要大量硬件资源,存储和计算成本高昂。
稀疏关键词检索(如 BM25)——高效计算的“鱼”:
- 基于词频统计,存储和计算效率极高;
- 但缺乏语义理解,面对“汽车”和“车辆”这样的同义词就束手无策。
神经稀疏检索的革命性创新在于,它打破了这个传统的二选一困境。通过将文本转换为“Token-权重”的稀疏向量表示,它巧妙地将神经网络的语义理解能力与稀疏表示的计算效率完美结合。比如“人工智能改变世界”可能被编码为:
{ "人工": 0.8, "智能": 0.9, "AI": 0.7, // 神经网络学到的语义关联 "technology": 0.5, // 跨语言语义理解 "改变": 0.6, "世界": 0.4 }这种表示方式的妙处在于真正实现了“鱼与熊掌兼得”:
语义理解:神经网络能够学习到“人工智能”和“AI”的关联,甚至跨语言的语义映射;
兼容传统索引:可以直接使用 Lucene 等成熟的倒排索引技术,无需重新造轮子;
存储高效:绝大部分 token 的权重为 0,只需存储非零项,存储成本远低于稠密向量;
计算友好:无需复杂的向量相似度计算,可以利用传统的倒排索引快速检索。
更重要的是,这种“兼得”不是简单的妥协,而是在保持语义理解能力的同时,实现了比传统方法更高的效率。这就为后续 Seismic 算法的突破奠定了坚实的技术基础。
十亿级规模仍是挑战
早在 2023 年,开源搜索引擎 OpenSearch 就已支持神经稀疏检索,很多用户也在用。但当数据规模到了十亿级时,新的挑战出现了。
查询延迟依然偏高,达到 125ms 以上。在这种规模下,即使是稀疏向量检索,也需要处理海量的候选文档,计算开销依然不容小觑。
这时候你开始思考:在十亿级数据面前,是不是还需要更进一步的优化策略?
就在此时,OpenSearch 研发团队带来了突破性的解决方案 —— Seismic 算法,专为十亿级神经稀疏检索设计的性能引擎,重新定义大规模检索。
在最新发布的 OpenSearch 3.3 版本中,全新的 Seismic 算法将神经稀疏检索的性能推向了新的高度。这不是又一个“理论上很美好”的学术成果,而是经过十亿级真实数据验证的工程突破:
- 查询延迟仅 11.77ms —— 比传统神经稀疏检索快 10 倍以上;
- 保持 90%召回率 —— 检索质量几乎无损失;
- 吞吐量提升 100% —— 相同硬件配置下处理能力翻倍。
这不是渐进式的优化,而是颠覆性的性能突破。
这是什么概念?你的 RAG 应用终于可以在十亿级文档中实现毫秒级响应,同时保持接近完美的语义理解能力。
Seismic 如何做到的?
Seismic 的核心思路是做减法,而不是加法。不是让计算更快,而是让无效计算消失。
第一个突破是双重索引结构。传统方案只有倒排索引,Seismic 创新性地引入了正向索引,两者配合实现智能剪枝,大幅减少需要计算的候选文档数量。
第二个突破是聚类优化。Seismic 对相似文档进行聚类,每个聚类只维护一个精简摘要,这样在查询时可以快速跳过整个聚类,避免逐一计算每个文档的相似度。
第三个突破是动态剪枝策略。根据查询特征动态调整剪枝阈值,对于简单查询使用更激进的剪枝,对于复杂查询保持更高的精度,最终跳过 99%的无效计算。
为了验证 Seismic 算法的实际效果,OpenSearch 团队在 12.9 亿文档的 C4 Dolma 数据集上进行了全面的性能测试。这个数据集包含了来自互联网的大规模文本数据,是检验大规模检索算法的理想测试平台。
从数据可以看出,Seismic 不仅在延迟方面实现了数量级的提升,在吞吐量方面也有了显著的改善,同时还保持了接近完美的召回率。这意味着开发者可以在不牺牲检索质量的前提下,获得前所未有的性能体验。
5 分钟上手:让你的 RAG 应用飞起来
别光看数据,自己试试才知道效果。OpenSearch 3.3 已经集成了 Seismic,5 分钟就能体验 Seismic 算法。
第 1 步:设置集群配置
首先,设置集群配置,使模型能够在本地集群上运行。
PUT /_cluster/settings { "transient" : { "plugins.ml_commons.allow_registering_model_via_url" : true, "plugins.ml_commons.only_run_on_ml_node" : false, "plugins.ml_commons.native_memory_threshold" : 99 } }第 2 步:部署稀疏编码模型
目前,Opensearch 已经开源了 10 个稀疏向量编码模型,相关注册信息都可以在官方文档[1]中获取。我们以 amazon/neural-sparse/opensearch-neural-sparse-encoding-doc-v3-gte 为例,首先使用 register API 来注册:
POST /_plugins/_ml/models/_register?deploy=true { "name": "`amazon/neural-sparse/opensearch-neural-sparse-encoding-doc-v3-gte`", "version": "1.0.0", "model_format": "TORCH_SCRIPT" }在集群的返回中,可以看到 task_id:
{ "task_id": "<task_id>", "status": "CREATED" }用 task_id 来得到详细的注册信息:
GET /_plugins/_ml/tasks/<task_id>在 API 返回中,我们可以拿到具体的 model_id:
{ "model_id": "<model_id>", "task_type": "REGISTER_MODEL", "function_name": "SPARSE_TOKENIZE", "state": "COMPLETED", "worker_node": [ "wubXZX7xTIC7RW2z8nzhzw" ], "create_time": 1701390988405, "last_update_time": 1701390993724, "is_async": true }第 3 步:创建 Seismic 索引
PUT my-seismic-index { "settings": { "index": { "sparse": true } }, "mappings": { "properties": { "passage_embedding": { "type": "sparse_vector", "method": { "name": "seismic", "parameters": { "approximate_threshold": 1 } } } } } }第 4 步:设置预处理器
在导入文档之前,每个文档中需要编码的文本字段都要转换成稀疏向量。在 OpenSearch 中,这一过程是通过预处理器来自动实现的。你可以使用以下 API 来创建离线索引时的处理器管线:
PUT /_ingest/pipeline/neural-sparse-pipeline { "description": "An example neural sparse encoding pipeline", "processors" : [ { "sparse_encoding": { "model_id": "<model_id>", "field_map": { "passage_text": "passage_embedding" } } } ] }第 5 步:使用预处理器导入文档并搜索
在设置索引之后,用户可以导入文档。用户提供文本字段,预处理器会自动将文本内容转换为稀疏向量,并根据预处理器中的字段映射 field_map 将其放入 sparse_vector 字段:
PUT /my-seismic-index/_doc/1?pipeline=neural-sparse-pipeline { "passage_text": "Hello world" }在索引中进行稀疏语义搜索的接口如下,将 <model_id> 替换为第二步中注册的 model_id:
GET my-seismic-index/_search { "query": { "neural_sparse": { "passage_embedding": { "query_text": "Hi world", "model_id": "<model_id>" } } } }当你导入百万量级以上的数据后,你就能感受到毫秒级的延迟,这种性能提升是立竿见影的。
这意味着什么?RAG 应用的新时代
Seismic 不只是性能优化,它重新定义了 RAG 应用的可能性。
对于企业级应用来说,你终于可以在全量历史数据上做实时问答,不用再为了性能牺牲数据完整性。用户可以在包含十年业务数据的知识库中秒级找到答案,这种体验提升是质的飞跃。
对于 AI 产品开发者来说,你可以支持更大规模的知识库,实时性要求不再是瓶颈。你有更多精力 focus 在业务逻辑和用户体验上,而不是被底层的性能问题困扰。
对于技术团队来说,你不用再在“快”和“准”之间纠结,可以在更大规模数据上验证想法,有机会构建真正的十亿级 AI 应用。
展望未来:智能检索的下一个十年
从 BM25 到稠密向量,再到今天的 Seismic 稀疏向量检索,我们见证了搜索技术的每一次跃进。但这只是开始。
当十亿级实时检索成为标配,当语义理解变得如此高效,我们有理由相信更多激动人心的应用将成为现实。多模态检索将不再是梦想,文本、图像、音频可以统一检索。个性化语义理解将普及,每个用户都可以拥有专属的语义模型。实时知识更新将实现,新信息可以秒级同步到检索系统。
下一代的 AI 应用,将建立在这样的技术基础之上。而 Seismic,正是通往这个未来的第一步。
技术的进步从来不会停止,AI 领域更是日新月异。Seismic 算法的出现,让我们看到了大规模智能检索的新可能。它不是终点,而是一个新的起点。
OpenSearch 3.3 已经发布,Seismic 算法等待着你的探索。也许,下一个改变行业的 RAG 应用,就诞生在你的键盘下。
未来已来,只是尚未流行。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。