Elasticsearch:向量数据库基础设施类别的兴衰

news2025/1/13 17:25:36

过去几年,我一直在观察嵌入技术如何从大型科技公司的 “秘密武器” 转变为日常开发人员工具。接下来发生的事情 —— 向量数据库淘金热、RAG 炒作周期以及最终的修正 —— 教会了我们关于新技术如何在更广泛的生态系统中找到一席之地的宝贵经验。

更多有关向量搜索及结合传统搜索的混合搜索,请详细阅读 “Elastic AI 专栏”。

嵌入成为主流

曾经是科技巨头的领域,现在正成为各地开发人员的标准做法。十多年来,谷歌、Meta 和亚马逊等公司一直使用嵌入技术来大规模支持推荐系统和搜索功能。现在,开发人员可以通过预先训练的模型和改进的工具使用这些技术。

通过深度学习,我们可以将几乎任何类型的内容(文本、图像、视频、音频、代码)转换为向量表示,以捕获数据中的模式和关系。虽然这些技术在表示学习研究中有着深厚的根基,但如今革命性的是它们的可访问性。强大的预训练模型和直观的 API 将曾经复杂的研究转变为日常开发人员的实用工具。

这些嵌入使开发人员能够构建以前仅限于拥有大量研发预算的科技巨头的功能。嵌入生态系统在多个方面蓬勃发展。OpenAI、Cohere、Jina 和 Voyager 等商业提供商提供高质量的托管模型(主要是文本),而开源社区则提供了强大的替代方案,如 Sentence Transformers。HuggingFace 已成为共享和发现这些模型的事实平台,拥有数千种适用于不同语言、模态、领域和任务的嵌入模型。他们的转换器库和模型中心使尝试不同的嵌入方法变得轻而易举。

结果如何?曾经是大型科技公司高级 ML 团队专属领域的方法现在正被集成到日常应用程序中。无论是使用商业 API 还是开源模型,开发人员都可以选择最适合其成本、定制和部署要求的方法。以前难以有效搜索的内容(视频、播客记录、技术图表、科学论文)现在可以以更复杂(更有效)的检索系统的方式来呈现。

向量数据库的兴衰

基于嵌入的应用程序的激增带来了新的挑战:高效地大规模存储、索引和搜索这些高维向量。这一差距催生了向量数据库类别,Pinecone 等公司在 2022-2023 年通过定义向量操作的专用基础设施引领潮流。在 2022 年底 ChatGPT 推出后,该类别出现了爆炸式增长,因为开发人员纷纷使用检索增强生成 (Retrieval-Augmented Generation - RAG) 构建 AI 应用程序。这种激增的部分原因是人们普遍误以为基于嵌入的相似性搜索是检索 LLMs 上下文的唯一可行方法。由此产生的 “向量数据库淘金热” 吸引了大量投资和关注向量搜索基础设施,尽管传统信息检索技术对许多 RAG 应用程序同样有价值。

然而,形势迅速发展。最初是纯向量搜索引擎,现在扩展了其功能以匹配传统搜索功能。向量数据库提供商已经认识到,现实世界的应用程序通常需要的不仅仅是相似性搜索。他们越来越多地添加过滤、分面和文本搜索等功能,这些功能以前是传统搜索引擎的领域。

这种融合反映了一种更深刻的理解,即单靠向量搜索不足以满足实际的现实用例。没有比 Elasticsearch 的发展更好地说明这种融合的例子了。作为搜索市场的领导者,Elastic 认识到了基于嵌入的搜索的潜力,并开始整合这些功能。2024 年,他们将 Elasticsearch 重新定位为 “具有完全集成向量数据库的搜索引擎”,承认现代搜索应用程序需要传统的基于文本和向量的操作。这种转变不仅仅是营销 —— Elasticsearch 通过优化索引结构增强了其向量搜索实现,并增加了对高效近似最近邻 (ANN) 搜索算法的支持。通过将向量搜索功能直接引入其搜索平台,Elastic 证明了搜索的未来在于将相关性评分和文本分析等传统搜索功能与嵌入相结合的统一解决方案。他们的方法验证了业内许多人已经开始认识到的事情:向量搜索不是一个单独的类别,而是现代搜索工具包中的一项基本功能。

与此同时,老牌数据库供应商几乎毫不掩饰地看着这场淘金热。许多供应商没有将向量搜索视为一个单独的类别,而是耸耸肩,将向量功能直接集成到现有产品中。PostgreSQL、MongoDB、Redis 和其他供应商都增加了对向量数据类型和相似性搜索操作的原生支持 —— 将其视为添加新索引类型的兴奋之情。从他们的角度来看,向量只是索引和查询的另一种数据类型,类似于文本、数字或地理空间坐标。这种集成简化了许多应用程序的架构,允许开发人员在熟悉的系统中管理向量操作以及传统数据工作负载,而无需说服他们的 CTO 采用另一个专门的数据库。

然而,将向量类型添加到现有数据库并不是看起来那么简单。存储和检索向量是一回事,构建复杂的检索系统是另一回事。许多这样的数据库缺乏完善的排名机制、相关性调整和久经考验的文本匹配算法(如 BM25),而专用搜索引擎花了几十年的时间来完善这些算法。这就是为什么那些关心搜索质量的公司仍然会转向专用搜索引擎,而不是将他们的数据库视为一刀切的解决方案。现实情况是,高质量的信息检索需要一套深层次的排名策略和相关性优化功能,而不仅仅是简单的向量相似度计算。正如没有一个关心搜索质量的人会使用常规数据库来支持他们的电子商务搜索一样,添加向量功能并不能突然将 SQL 数据库转变为一个完整的检索引擎。

结论

回顾过去,很明显我们把事情复杂化了。虽然嵌入从根本上改变了我们表示和比较内容的方式,但它们不需要一个全新的基础设施类别。我们称之为 “向量数据库” 的东西实际上是具有向量功能的搜索引擎。市场已经在纠正这种分类 —— 向量搜索提供商迅速添加传统搜索功能,而成熟的搜索引擎则整合了向量搜索功能。这种类别融合并不奇怪:构建一个好的检索引擎一直是关于结合多种检索和排名策略。向量搜索只是该工具箱中的另一个强大工具,而不是一个独立的类别。

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

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

相关文章

《系统爆破:MD5易破,后台登录可爆破?》

声明:笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 爆破Sales系统 一、爆破MD5 场景:已知MD5的加密字符串,如何得知明…

《Spring Framework实战》14:4.1.4.5.自动装配合作者

欢迎观看《Spring Framework实战》视频教程 自动装配合作者 Spring容器可以自动连接协作bean之间的关系。您可以通过检查ApplicationContext的内容,让Spring自动为您的bean解析协作者(其他bean)。自动装配具有以下优点: 自动装配…

GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目

1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner,我这里选择 14.9.1版本 如果执行出现找不到下载源,添加官方仓库 执行 curl -L &quo…

冒泡排序基础与实现

目录 1. 原理图 ​编辑 2. 什么是冒泡排序 3. 工作原理 3.1 具体步骤 3.2 时间复杂度 3.3 空间复杂度 4. 代码实现 5. 总结 1. 原理图 2. 什么是冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地遍历要排序的列表&am…

acwing_5722_十滴水

acwing_5722_十滴水 下面这篇大佬的题解属实是把指针用明白了&#xff0c;可以好好理解一下&#xff1a; 原题解连接&#xff1a;AcWing 5722. 一个简单模拟实现 - AcWing map/unordered_map的用法:见收藏夹 #include<iostream> #include<unordered_map> #incl…

【AI进化论】 AI微信机器人 | sealos + 智能微秘书 打造AI机器人 | 智能微秘书配置教程

一、sealos 什么是sealos &#xff1f; One cloud OS for all applications 1、创建sealos账号密码 根据链接&#xff08;帮我凑点sealos使用额度感谢&#xff09;&#xff1a;https://cloud.sealos.run/?uidXfUpoQk92c 登录后如下页面&#xff1a; 2、创建应用 点击【应…

Agentless:OpenAI 采用的非代理框架

不需要代理库来解决复杂的业务问题。Agentless 是OpenAI采用的非代理框架&#xff0c;用于在 o3 的 SWE Bench 上实现最高精度。SWE-bench 是 github的真实软件工程问题基准。Agentless 遵循简单的三阶段流程&#xff1a;本地化、修复和补丁验证&#xff1a; 1 ⃣生成存储库的…

Model-based RL自动出价算法的演进之路

▐ 导读 近年来&#xff0c;强化学习自动出价算法已成为智能投放领域的标志性技术&#xff0c;然而其所存在的在离线不一致、线上数据覆盖空间受限等关键问题尚未被完全解决。在本文中&#xff0c;我们提出一种Model-based RL&#xff08;MBRL&#xff09;自动出价算法训练新范…

【Cocos TypeScript 零基础 7.1】

目录 重写 小结一下心得页面跳转背景移动精简 player敌机精灵 重写 小结一下心得 本人重写了整个项目 有了点小心得 页面跳转 director.loadScene(s2)背景移动 canvas 是画布 为什么要向上图布局? 方便计算相对坐标,脚本还是只写一个 绑定上 BG 一样跑,不影响 export cl…

鸿蒙UI(ArkUI-方舟UI框架)

参考&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-layout-development-overview-V13 ArkUI简介 ArkUI&#xff08;方舟UI框架&#xff09;为应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能&#xff…

禅道使用实践(2)-产品篇

前言 本文目的皆在指导产品团队使用禅道基于实操完成产品&#xff0c;项目的创建&#xff0c;需求汇总&#xff0c;版本规划&#xff0c;以及验收发布的基本流程。希望能帮助到首次使用禅道而不知道从何下手的团队。 基本概念 此章节内容与我上一篇的开发篇相同&#xff0c;从…

js逆向说明

一 负载的内容传输用这个格式 Content-Type: multipart/form-data Content-Type 是 HTTP 请求头中的一个字段&#xff0c;它告诉服务器请求体的类型。在这个例子中&#xff0c;Content-Type 的值为 multipart/form-data&#xff0c;这表示请求体采用了 multipart/form-data 格…

django基于Python的汽车销售管理系统的设计与实现

Django 基于 Python 的汽车销售管理系统的设计与实现 一、系统概述 Django 基于 Python 的汽车销售管理系统是一款专为汽车销售企业打造的综合性信息化管理平台。该系统借助 Django 框架的高效性、安全性以及 Python 语言丰富的库和工具&#xff0c;全面覆盖汽车销售业务的各…

计算机网络相关习题整理

第一讲 传输媒介 【知识点回顾】 两种导线可以减小电磁干扰&#xff1a; 双绞线&#xff08;分为非屏蔽双绞线、屏蔽双绞线&#xff09;&#xff08;RJ-45用&#xff09;同轴电缆&#xff08;短距离使用&#xff09;网络通信的基本单位&#xff1a;位&#xff08;bit&#xff…

HTTPS SSL/TLS 工作流程

目录 一、HTTP/HTTPS 简介1、HTTP协议相关内容2、HTTPS协议3、HTTP版本差异&#xff1a; 二、HTTPS 协议工作流程解析1. 客户端请求 SSL 握手2. 服务端接收 SSL 握手连接3. TLS 握手中的密钥协商4. HTTP 数据的加密与解密5. 安全性保障 三、HTTPS 协议的相关知识拓展1. TLS 与 …

SpringBoot项目实战(39)--Beetl网页HTML文件中静态图片及CSS、JS文件的引用和展示

使用Beetl开发网页时&#xff0c;在网页中使用的CSS、JS、图片等静态资源需要进行适当的配置才可以展示。大致的过程如下&#xff1a; &#xff08;1&#xff09;首先Spring Security框架需要允许js、css、图片资源免授权访问。 &#xff08;2&#xff09;网站开发时&#xff0…

node_exporter 安装

cd /root/node_exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz #运行 cd /root/node_exporter/node_exporter-1.7.0.linux-amd64 ./node_exp…

【STM32-学习笔记-4-】PWM、输入捕获(PWMI)

文章目录 1、PWMPWM配置 2、输入捕获配置3、编码器 1、PWM PWM配置 配置时基单元配置输出比较单元配置输出PWM波的端口 #include "stm32f10x.h" // Device headervoid PWM_Init(void) { //**配置输出PWM波的端口**********************************…

【复习小结】1-13

数学追求更简洁的表达&#xff0c;计算机追求更简单的表达。数据结构把数学的逻辑结构放进计算器的存储器。 DAY4 闰年的计算 布尔类型是一种数据类型&#xff0c;用于表示逻辑值的简单类型&#xff0c;它的值只能是真&#xff08;true&#xff09;或假&#xff08;false&…

VSCode连接Github的重重困难及解决方案!

一、背景&#xff1a; 我首先在github创建了一个新的项目&#xff0c;并自动创建了readme文件其次在vscode创建项目并写了两个文件在我想将vscode的项目上传到对应的github上时&#xff0c;错误出现了 二、报错及解决方案&#xff1a; 1.解决方案&#xff1a; 需要在git上配置用…