网上最近有个热门争论:有人用 1973 年诞生的文本搜索工具 grep 取代了向量数据库。那么,我们还需要向量数据库吗?IBM Technology 的这节课给了一个清晰的判断框架:检索金字塔。
先弄清:向量数据库是什么
向量数据库像其他数据库一样存内容,但存的是嵌入(Embedding):高维空间里的一串数字,含义相近的内容彼此靠近。查询时返回语义相似的条目,常用于检索增强生成(RAG):把查到的资料放进给大模型的提示词里。
检索金字塔:能往下就别往上
讲者把检索分成四级:最底层是完全不检索,把所有内容直接贴进提示词;顶层是专用向量数据库。原则是只有工作负载真的需要,才往上爬一级。
不用向量库的三个理由
- 智能体搜索:AI 智能体可以用关键词搜索(grep 就是),读完结果后改写查询,反复搜索,不必一次命中。
- 超长上下文:前沿模型能处理的文本量比几年前多约一千倍,小语料直接全放进去。
- 嵌入成本:文档要切块并嵌入,每次查询也要嵌入,换嵌入模型还得全部重做。而且主流数据库大多已支持向量索引,嵌入只是多一列数字。
为什么仍然要往上爬
把所有内容塞进上下文,token 成本更高,更大的问题是准确率:上下文膨胀可能让模型表现不如只检索相关片段。语料变大,就该升级到关键词搜索。
但关键词搜索有局限:用户问「如何重置密码」,已有工单叫「更新后凭据循环」,两者没有共同词,grep 找不到,而在嵌入空间里它们是近邻。这就是语义鸿沟,需要语义搜索,也就是向量索引。
什么时候才需要专用向量数据库
当向量多达数百万乃至更多、要常驻内存时,通用数据库会吃力;专用向量数据库为容纳数十亿向量并毫秒级响应而设计。可以归结为两问:第一,还需要向量搜索吗?第二,若需要,还需要专用库吗?
术语表
- Vector Database 向量数据库:以嵌入存储并按语义相似度检索。
- Embedding 嵌入:含义相近的内容在空间中彼此靠近的一串数字。
- RAG 检索增强生成:检索结果放入提示词再生成回答。
- Semantic Gap 语义鸿沟:表达同一问题却没有共同词。
- Agentic Search 智能体搜索:反复搜索、阅读、改写查询的循环。
自测一题
为什么智能体用 grep 式关键词搜索也能取得不错的效果?
A. grep 比向量搜索更智能 B. 它可以多次搜索并根据结果改写查询 C. 它不需要任何文档 D. 它能理解语义
和求职面试的关系
做 AI 应用、后端或数据岗位,面试很可能被问:RAG 怎么设计?什么时候用向量库、什么时候用关键词搜索?换嵌入模型的代价是什么?能按「金字塔」从成本、准确率、规模三方面讲清选型,比一句「上向量库」有说服力得多。
答案:B。智能体不必一次检索正确,可以在循环中反复改进。
来源
内容整理自 IBM Technology 视频:Are Vector Databases Still Needed? RAG, AI Agents & Search。完整学习卡与更多自测题:课程页。
没有评论:
发表评论