向量搜索与嵌入检索(vector search and embeddings retrieval)
/ VEK-tor surch and em-BED-ings ree-TREE-vul /
嵌入检索,是计算机「按意思、而非按字面」搜索的办法。核心思想是「嵌入」:模型把每一段文字变成一长串数字——一个向量——其摆放方式使得意思相近的东西,在那个数字空间里也彼此靠近。「汽车」和「轿车」会落在相邻处,哪怕它们一个字都不重叠;「河的岸边」和「河滨」会聚到一块,远离「储蓄银行」。于是搜索变成了几何:找出离查询向量最近的那些已存向量。
想象一座浩大的图书馆,藏书不按字母、而按主题上架,于是凡与火山有关的,无论书脊上写着什么字,都坐落在同一个角落。要回答「岩浆为什么会喷发?」,你走到那个角落,抓起最近的几本书——哪怕有的从没用过「喷发」二字。这就是向量搜索所做的:你把问题嵌入成向量,向量数据库便飞快找出嵌入坐落得最近的那些段落,按「意思」返回匹配。这通常正是RAG中「检索」那一半的引擎。
两点要诚实说明。嵌入空间里的「靠近」近似于「意思相近」,却只是近似——两段文字可能因某些表面缘由而坐得很近,从而把搜索带偏。而嵌入会忠实地编码模型所学到的一切,连同它的偏见与盲点,于是它判定两样东西「相似」的方式,可能反映的是它的训练、而非你的本意。向量搜索强大而迅捷,但它对「相关」的认定,是一个学来的猜测,而非一份保证。
用户输入「怎样让我的笔记本安静些?」按关键词「安静」去搜,会漏掉那篇标题叫《降低风扇噪音》的帮助文章。可在嵌入空间里,二者坐得很近——它们说的是同一个意思——于是即便一个字都不重叠,向量搜索照样把对的文章捞了出来。
按意思匹配,而非靠共享的关键词。
嵌入把「意思」编码成「模型所学到的样子」——因此它带着那个模型的偏见。两份简历、两种方言,被判定为「相似」或「相异」的方式,可能悄悄反映的是训练数据,而非任何客观真理。有用,却并不中立。