构建搜索引擎,而非向量数据库(Vector DB) [译]

原文:Build a search engine, not a vector DB

作者:

Panda Smith

在过去 12 个月中,我们见证了向量数据库(Vector DB)创业公司的迅猛增长。我此刻并不打算深入探讨它们各自的设计取舍。相反,我更想探讨和解释一些关于向量数据库的常见理解——它是什么、它的功能用途,以及在解决问题时,我们应如何恰当地利用向量数据库。

向量数据库不等于存储器

很多向量数据库的主要作用被描述为解决大语言模型 (LLM) 缺乏长期记忆的问题,或者无法将一个问题的全部上下文放入提示语中。

Chroma raises $18M seed round

然而,向量搜索实质上只是搜索的一种特殊形式。虽然让大语言模型 (LLM) 能够写入和检索数据库非常有用,但最终这更像是提供给智能体一个搜索引擎的权限,而非真正“增加了存储空间”。

假设你是一家企业,想要建立一个由 LLM 驱动的文档查询体验。如果你将向量数据库仅看作是为语言模型提供更多存储空间,那么你可能会把公司的所有产品文档都嵌入其中,然后让用户向你的机器人提问。用户按下回车键时,系统会对他们的查询进行向量搜索,找到相关片段,加载到上下文中,然后让语言模型尝试回答问题。实际上,这正是我在 Stripe 工作时,开发他们的 AI 文档产品 时最初尝试的方法。

但我最终发现,这种方法并不理想。关键在于,尽管向量搜索在某些方面优于传统搜索,但它并非万能。就像常规搜索一样,你可能会在搜索结果中遇到不相关或遗漏的文档。语言模型,就像人类一样,只能利用它们所拥有的信息,而这些不相关的文档很可能会导致误导。

如果你想打造一个优秀的基于文档的 RAG 工具,你首先应该构建一个足够优秀的搜索引擎,让人类也能轻松使用。这可能是你们组织之前已经考虑过的,如果尚未实现,那是因为打造一个高效的搜索引擎通常是一项颇具挑战的工作。

好消息

当你坐下来打算构建一个高效的搜索系统时,你该如何下手呢?在这个问题上,大语言模型 (LLM) 可以成为你的救星。

虽然嵌入技术 (Embeddings) 并非灵丹妙药,但它们的确令人惊叹。相比于关键词搜索,高质量的嵌入式搜索能显著降低假阴性的比率。而将嵌入式搜索与关键词搜索结合使用,其性能远胜于任何纯文本搜索。事实上,谷歌多年来一直在这方面利用 [BERT](https://blog.google/products/search/search-language-understanding

-bert/?ref=blog.elicit.com) 技术。此外,嵌入技术本身及其在大规模搜索中的应用工具已经得到了巨大的改进。市面上有许多经过实战检验的数据库能够结合关键词和向量搜索,我强烈建议使用这些数据库之一(例如在 Elicit 我们使用 Vespa,而像 Chroma 这样的向量数据库现在通常也支持这一功能)。

在将嵌入技术与传统方法结合以改善整体搜索之后,你将迎来一些真正有趣的挑战。一个精于搜索技巧的用户知道如何构造查询以确保找到相关信息(曾有一时期,Google-fu(高效使用谷歌的技巧)被视为一种强大的技艺),语言模型也能做到这一点。例如,如果你的模型想寻找“疟疾疫苗最新动态”,你可以让它构建一个包含日期过滤器的查询语句。这里充满了尚未开发的潜力,而且在此基础上,通过无穷无尽的微调,可以实现令人惊叹的高质量搜索。就像在其他许多情况下一样,虽然在大语言模型出现之前这些都是可能实现的,但它们需要大量的专业技能和努力。现在,你只需几小时的时间和一些计算资源,就能实现有竞争力的性能。

在传统搜索流程中,最后一个阶段通常是重新排序(re-ranking)。过去,要实现重新排序,我们需要基于用户在特定搜索结果页面的点击行为等信号训练一个相关性模型,然后用这个模型对首要结果进行排序。对于没有专门团队来构建搜索引擎的人来说,这是一个难以解决的问题。但现在,借助于语言模型(language models),你可以向模型提供查询与结果之

间的细节信息,从而获得一个相关性评分,这种评分甚至能超越大多数专业定制的系统。

归根结底,AI 的最新进展极大地简化了构建先进搜索引擎的过程,比起以往,所需的努力大幅减少。因此,投入时间和精力来认真打造高效的搜索引擎,所带来的回报是极其可观的。

如果你打算开发一个基于 RAG 的工具(RAG-based tool),那么首先需要着手构建搜索功能。

附言(不太好的消息)

你已经利用上述技术成功构建了一个优秀的搜索引擎,接下来就是部署的时刻了。然而,遗憾的是,语言模型并不能帮你解决搜索引擎建设的另一大挑战:评估问题。

具体来说,这包括能够解答以下问题:

  • “在何种情况下进行搜索是恰当的?”
  • “当你进行搜索时,你真正想找到的内容是什么?”
  • “这些内容在搜索结果中的排名有多高?”

要回答这些问题,你需要构建一套评估和监控系统,通过这套系统来对你的搜索流程进行迭代优化,并判断所做的更改是否真正带来了提升。关于如何评估搜索引擎的更多内容,我推荐阅读这一系列精彩的博文。

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

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

相关文章

做外贸多想一步,多走一步

最近在网上给小儿买了一个液晶画画板,自从告诉小儿已经购物需要耐心等待之后,几乎每天小儿要询问几遍,快递到哪里了? 好不容易盼到了,结果打开一看却是个坏的,虽然外包装是好的,但是明显这个快…

数据库客户案例:每个物种都需要一个数据库!

1、GERDH——花卉多组学数据库 项目名称:GERDH:花卉多组学数据库 链接地址:https://dphdatabase.com 项目描述:GERDH包含了来自150多种园艺花卉植物种质的 12961个观赏植物。将不同花卉植物转录组学、表观组学等数据进行比较&am…

读《文明之光》第四册总结

今天来给大家分享一下【吴军】老师的《文明之光》,该书全套共四册,今天给大家分享的是第四册。 人总是要有些理想和信仰。初读这本书,就被本书的第一句话说感动过。 当人们问起我的理想时,我就给他们讲…

Patreon怎么订阅付款?Patreon会员订阅付款保姆级教程,用虚拟VISA卡订阅Patreon作者艺术家

Patreon 是目前世界上最受欢迎的会员平台之一。 内容创作者和艺术家通常很难让粉丝在经济上支持他们。 通过使用像 Patreon 这样的平台,创作者和艺术家可以很容易地从他们的作品中获得报酬。粉丝也能更方便的支持他们,今天就教大家如何订阅Patreon 首先我…

Python中最常用的10个内置函数!

Python作为一种多用途编程语言,拥有丰富的内置函数库,这些函数可以极大地提高开发效率。本文将介绍Python中最常用的10个内置函数,它们的功能各有不同,但在实际编程中经常派上用场。我们将深入了解每个函数,并提供示例…

解锁高效工作!5款优秀工时管理软件推荐

工时管理,一直是让许多企业和团队头疼的问题。传统的纸质工时表、复杂的电子表格,不仅操作繁琐,还容易出错。幸好,随着科技的进步,我们迎来了工时管理软件的春天。今天,就让我们一起走进这个新时代&#xf…

2016年第五届数学建模国际赛小美赛B题直达地铁线路解题全过程文档及程序

2016年第五届数学建模国际赛小美赛 B题 直达地铁线路 原题再现: 在目前的大都市地铁网络中,在两个相距遥远的车站之间运送乘客通常需要很长时间。我们可以建议在两个长途车站之间设置直达班车,以节省长途乘客的时间。   第一部分&#xf…

【银行测试】银行金融测试+金融项目测试点汇总...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、银行金融测试是…

EOCR-i3M420/iFM420施耐德智能通讯保护继电器产品简介

EOCR-i3M420/iFM420是施耐德EOCR的新一代电子式电动机保护器产品,具有过电流、欠电流、缺相、逆相、堵转、失速、三相不平衡等保护功能,并具有4-20mA电流输出功能。EOCR-i3M420/iFM420是通讯型产品,提供Modbus RTU通讯协议,RS485接…

从零实现一套低代码(保姆级教程) --- 【3】实现Button组件和画布区的拖拽

摘要 目前是每天更新一篇, 因为我不止要写文章,这些代码也是我正在敲的。可能速度没有那么快,但是这个频率感觉还是可以的。 本篇是这个系列的第三篇,如果你是第一次看到这个文章,那你应该会对低代码有那么一丢丢兴趣…

中小型教育网络安全解决方案

热门IT技术视频教程:https://xmws-it.blog.csdn.net/article/details/134398330?spm1001.2014.3001.5502 一、中小型教育网络的安全现状及挑战 当前,校园网的安全形势非常严峻,大量的垃圾邮件、黑客攻击、病毒蠕虫等困扰着管理者。而且这些作…

福建农林大学 html +css + JavaScript 期末复习 -- 保姆级

html css JavaScript 期末复习&#xff08;保姆级复盘&#xff09; 考试题型 1、选择题 20题 30分 2、判断题 15题 15分 3、程序题 3 题 30分 4、综合题 2 题 25分 1、网页第一代文本标签&#xff08;直接上代码&#xff0c;看保姆级注解&#xff09; <!-- doctype: docum…

ArcGIS基础:便捷查看外业照片及识别举证照片方位角

打开工具&#xff1a;【地理标记照片转点】。 打开工具后&#xff0c;输入文件夹&#xff0c;并对相应的参数进行勾选。 右键&#xff0c;图层属性&#xff0c;打开【显示】&#xff0c;对【超链接】设置等参数进行勾选。 找到【符号系统】&#xff0c;点击【高级】&#xff…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist&#xff0c;用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory&#xff0c;用于更改当前所处的工作目录&#xff0c;路径可以是绝对路径&#xff0c;也可以是相对路径&#xff0c;若省略不写则会跳转至当前…

自媒体新手如何写出爆款公众号文章

今天跟大家分享一下&#xff0c;作为新手怎么样写出一篇阅读量过万的公众号的文章。 我的公众号是从2020年开始写的&#xff0c;写到今天差不多三年多一点。然后现在的粉丝数虽然不多&#xff0c;但也差不多近两千个了。 我这三年多差不多更新了150篇原创文章。刚开始的时候写的…

Nature Commun.:物理所揭示原子分辨下的铁电涡旋畴的原位力学转变过程

通过复杂的晶格-电荷相互作用形成的铁电涡旋畴在纳米电子器件研发中具有巨大的应用潜力。实际应用中&#xff0c;如何在外界激励下操纵这类结构的拓扑状态是至关重要的。中国科学院物理研究所/北京凝聚态物理国家研究中心表面物理国家重点实验室与北京大学、湘潭大学和美国宾夕…

关于时区处理策略

前端会通过 App-Id 请求头附带 客户端时区 信息 前端传入的如果是 字符串&#xff0c;会自动根据 请求的客户端时区 解析为对应的 日期 如果前端传入的是时间戳&#xff0c;则无需额外解析转换 如果是 商户后台、管理后台 都统一基于 商户所在国家的时区&#xff08;总台目前…

文化旅游数据合集,多个数据分享~有图有数据

本周我们将分享一类数据分析常用的数据类型——文化旅游&#xff0c;这里将我们目前所上线的文化旅游类相关数据进行汇总&#xff0c;后续也会持续更新~ 1、全国博物馆数据 基本信息. 数据名称: 全国博物馆数据 数据格式: shpexcel 数据几何类型: 点 数据坐标系: WGS84 …

【MYSQL】MYSQL 的学习教程(五)之 MySQL 索引底层:B+ 树详解

1. 树 树跟数组、链表、堆栈一样&#xff0c;是一种数据结构。它由有限个节点&#xff0c;组成具有层次关系的集合。因为它看起来像一棵树&#xff0c;所以得其名。一颗普通的树如下: 关于树的概念&#xff1a; 结点的度&#xff1a;一个结点含有的子结点个数称为该结点的度树…

C/C++ 块作用域的静态变量static的应用

块作用域的静态变量 静态变量(static variable)听起来自相矛盾&#xff0c;像是一个不可变的变量。实际上&#xff0c;静态的意思是该变量在内存中原地不动&#xff0c;并不是说它的值不变。具有文件作用域的变量自动具有&#xff08;也必须是&#xff09;静态存储器。创建的具…