AI 的"记忆"存在哪里?—— 向量数据库是干什么的
前面我们聊了 RAG 的工作流程,里面提到一个"智能图书馆"——系统会把文档存进去,然后按"意思"搜索相关内容。这个"智能图书馆"到底是什么?它为什么能按"意思"而不是按"字面"来搜索?
今天就来聊聊这个——向量数据库。
从手机相册说起
先问你一个问题:你手机里的相册,能不能按"人脸"搜照片?
比如你搜"妈妈",手机上就会自动出现所有妈妈的照片。你搜"猫",就会出现所有猫的照片。你甚至不需要给每张照片打标签,手机自己就能识别。
这个功能背后,就是向量数据库在干活。
那它到底是怎么做到的?我们先从传统数据库说起。
传统数据库存什么?
传统的数据库,比如 MySQL,存的是"精确的信息"。
举例:一个学生信息表里存的是"张三,男,20 岁,计算机系"。你要查"计算机系的学生",数据库就返回所有"计算机系"的记录。这是一种精确匹配——你问什么,它找什么,一个字都不能差。
但如果你问的是"谁比较擅长编程",传统数据库就抓瞎了。因为"擅长编程"不是一条精确的记录,它没有"擅长编程"这个字段。
向量数据库存什么?
向量数据库存的是"相似度"。
什么是相似度?打个比方。你有一堆照片,向量数据库做的事情是:把每张照片都转换成一串数字(这串数字叫"向量"),然后比较这些数字之间的距离。
猫的照片和猫的照片,它们的数字串很接近,距离很近。猫的照片和狗的照片,数字串差距较大,距离较远。猫的照片和汽车的照片,数字串差距更大,距离非常远。
所以当你搜"猫"的时候,向量数据库就会把所有"距离猫最近"的照片找出来——不管这些照片有没有被打上"猫"的标签。
用"气味博物馆"来理解
如果上面的解释还是有点抽象,我们再换一个更形象的类比。
想象一下,世界上有两种图书馆:
**第一种,传统图书馆。** 书是按编号排列的。你要找一本书,必须知道它的编号,或者书名、作者。这些信息必须精确匹配。
**第二种,气味博物馆。** 每一本书都被提炼成了一种"气味"。你要找书的时候,不是报编号,而是拿出一瓶"气味样本",管理员会帮你找到"闻起来最像"的那些书。
向量数据库就是"气味博物馆"。它不在乎你的书名是什么、作者是谁,它只在乎你的内容"闻起来像什么"。
而"闻起来像什么"这件事,用数学语言来说,就是"向量相似度"。
为什么 AI 需要向量数据库?
因为 AI 理解的是"意思",不是"字面"。
比如你问 AI:"怎么做好吃的红烧肉?" 知识库里有一篇文章叫《家常红烧肉的做法》。这两个表述在字面上完全不一样,但意思是相同的。
传统数据库搜"好吃的红烧肉",找不到《家常红烧肉的做法》,因为字面上不匹配。但向量数据库能理解"好吃的红烧肉"和"家常红烧肉的做法"说的是同一个意思,所以能检索到。
这就是向量数据库对 AI 如此重要的原因——AI 的世界里,语义比字面更重要。
生活中的向量数据库
其实向量数据库已经渗透到我们的日常生活了,只是你可能没注意到:
**以图搜图**:你在淘宝上传一张衣服的照片,它能帮你找到同款。这就是向量数据库在比较图片的"视觉相似度"。
**音乐推荐**:网易云音乐的"每日推荐"为什么那么准?因为它把你喜欢的歌都变成了向量,然后去找"听起来最像"的其他歌。
**人脸识别**:你手机用 Face ID 解锁,它拿到的不是你的照片,而是你的面部特征向量。只要这个向量跟存储的向量足够接近,就能解锁。
**语义搜索**:你在 Notion 或飞书文档里搜索"上次开会说的那个方案",它能找到相关文档,即使你根本不记得"那个方案"具体叫什么名字。这就是向量语义搜索。
小结
传统数据库存的是"精确答案",向量数据库存的是"相似程度"。
AI 需要向量数据库,因为 AI 理解的是"意思",不是"字面"。向量数据库正好能帮 AI 找到"听起来最像"的内容。
下一篇文章,我们继续深入这个话题:AI 是怎么把一段文字变成向量的?—— Embedding 向量化入门。
*下一篇预告:AI 是怎么"读懂"一段话的?—— Embedding 向量化入门*
夜雨聆风