大家好,我是小张。
今天,我们继续“拿下大厂AI岗”系列,一起来死磕 RAG(检索增强生成)系统中隐藏的“命脉”—— Embedding 模型(向量表征模型)。
如果你曾经手搓过 AI 知识库,那你肯定遇到过这种抓狂的情况:大模型明明很聪明,向量数据库也跑通了,但 AI 回答的依然是废话。
为什么?因为系统从数据库里捞出来的文档,压根就跟用户的问题没关系。
在 RAG 链路中,大模型算力再高,也拯救不了“垃圾进,垃圾出”的窘境。而决定能否捞出准确文档的绝对核心,就是 Embedding 模型。
这篇文章我们将从通俗比喻、核心局限、进阶选型,一直讲到大厂面试高频八股文。全是干货,建议先收藏再看,留着面试前突击!
如果我们把让大模型回答问题,比作让一个学神去参加考试,那么:
如果我们把海量的企业文档比作一个庞大的“相亲角”,那么:
传统关键词检索(BM25): 相当于一个只看字面意思的“死板红娘”。男方说要找一个“长相甜美”的,红娘就只去所有资料里搜包含“长相甜美”这四个字的人。如果有个女孩资料上写的是“外貌可爱”,红娘就会直接过滤掉她。
Embedding 模型: 相当于一个高情商的“王牌红娘”。她能把所有人转化成多维度的“属性雷达图”(向量)。此时她知道,“长相甜美”和“外貌可爱”在雷达图上的距离非常接近(语义相似)。
在 AI 世界里,计算机是不认识汉字和单词的。Embedding 的本质,就是把人类的自然语言,压缩并映射到一个高维的数学坐标系里,变成一串包含几百上千个数字的数组(即向量)。
在这个坐标系中:语义越相近的两个句子,它们对应向量的距离就越近。 比如“苹果手机”和“iPhone”字面上毫无交集,但在 Embedding 空间里它们几乎贴在一起。
如果只是调 OpenAI 的接口打个 Embeddings,是个程序员都会。但到了大厂真实的业务落地中,你马上会踩进几个大坑。
懂行的面试官最喜欢问:你是怎么做 Embedding 选型的?很多小白会脱口而出:“我看 MTEB(业内权威评测榜单)榜单上谁排第一我就选谁。” 面试官往往会心一笑,直接给你打上“没实操经验”的标签。
在复杂的工业级 RAG 系统中,搞懂 Embedding 必须跨过这三道门槛:
第一层:领域适配。 通用榜单第一的模型,通常是拿百科、新闻语料喂出来的。你把它直接丢进医疗库、法律库或者你们公司的代码库,它对“心肌梗死”、“非公开发行”、“空指针异常”这种黑话完全脱敏,召回率可能还不如老掉牙的 BM25 关键词检索。
第二层:维度与成本的博弈。 模型维度越高(比如 1024 维、1536 维),包含的语义信息越强,但代价是:向量数据库的存储成本翻倍,检索延迟直线上升。在大厂千万级乃至亿级的并发场景下,有时候降维(通过 PCA 或量化到 int8)才是活命的唯一出路。
第三层:文本长度截断问题。 不同 Embedding 模型支持的最大 Token 长度不同(常见的只有 512 )。如果你的文档切片(Chunk)过长,模型会悄悄把后半段直接抛弃!这就导致长段落丢失了核心骨架。这要求你的 Chunking 策略必须和 Embedding 模型死死绑定。
3 重点考察:Embedding 与 Reranker 的本质区别?
这个问题是检索问答面试中必问的核心考点!面试官想借此考察你对检索链路“两阶段架构”的深入理解。
Embedding(Bi-encoder / 双塔架构):本质是“提前把卷子做完”。它让用户的 Query 和文档库里的 Document 各跑各的,提前把所有文档变成向量存起来。
优点: 速度快,面对几十万篇文档,可以利用向量数据库实现毫秒级召回。
缺点:检索结果粗糙,问题和文档在编码期间压根没见过面,无法进行深度的词汇级语义交互。
Reranker(Cross-encoder / 交叉编码器):本质是“现场逐字对照”。它把用户的 Query 和某一篇特定的 Document 拼在一块,一并喂进深度神经网络。
优点: 准确性高,它能捕捉到非常微小的词义关联和前后文逻辑。
缺点:速度极慢,如果拿它去扫几十万篇文档,你的服务器半天都回不了一条消息。
总结来说:终极检索形态是两者结合(Recall + Rerank)。用 Embedding 模型(配合 BM25 混合检索)作为海选评委,依靠超快速度从海量库里捞出前 50 篇相关的帖子;再用 Reranker 模型作为决赛导师,对这 50 篇文章进行极其精细的交叉打分,最后把排名前 5 的精华喂给 LLM。
为了帮大家拿下 Offer,这里总结了有关向量检索与表征常问的面试真题,建议背诵全文!
Q1:计算两个向量相似度时,Cosine(余弦相似度)和 Dot Product(点积)有什么区别?一般怎么选?
答:区别: Cosine 只关注两个向量在多维空间中的“夹角方向”是否一致,对向量的绝对长度不敏感;而 Dot Product 既看方向,又考虑了向量本身的长度(权重大小)。怎么选: 抛开模型限制谈指标都是耍流氓。必须看该 Embedding 模型在预训练时是用什么损失函数优化的!如果官方明确说明模型输出了归一化(Normalized)的向量,那两者算出来结果一模一样;如果没有归一化,通常优先使用模型默认推荐的打分方式。
Q2:如果发现 Embedding 召回了“表面看着像,其实意思完全相反”的文档(比如问“不能解决”,召回了“能解决”),如何优化?
答: 这是 Embedding 的通病——对否定词、细微颗粒度特征不敏感。排查和优化路径如下:
引入混合检索:让擅长精确匹配的字面关键词检索(BM25)补足字面和逻辑词的短板,然后用 RRF(倒数排序融合)合并结果。
后置重排序:依靠 Cross-encoder 架构的 Rerank 模型,对 Top-K 文档进行深度的注意力机制比对,通常能精准剔除这种“意思相反”的假阳性结果。
领域微调:提取业务线里带有这类“困难负样本”的语料,利用对比学习微调私有的 Embedding 模型。
Q3:什么是向量数据库中的 HNSW 算法?为什么不用暴力全量搜索(Flat/KNN)?
答:原因: 如果几十万条数据,用暴力算法算遍每一个向量的距离,耗时极长,线上业务根本等不了。HNSW(分层可导航小世界): 它是一种 ANN(近似最近邻)搜索算法。原理类似于交通图,分为高速公路层、国道层和乡镇道路。搜索时先在高层寻找大概区域,再逐层向下精准定位。它是拿“一点点精度损失”和“额外的内存空间”,换取了呈指数级缩短的检索速度,是目前大厂最主流的向量索引方案。
从随便调一个开源模型的 API,到洞悉向量空间的维度诅咒,再到融汇 Embedding 与 Reranker 两阶段精排架构。搞懂这些,你就跨过了只会跑 Demo 的调包侠阶段。
掌握大模型底层原理与工程落地的 Trade-off(权衡),绝对是当前 AI 市场上最值钱的能力。后续我会继续更新 RAG 的终极杀招——意图识别与 Agent 路由规划 的硬核技术解析。
如果你正在找工作,或者对 AI 工程落地感兴趣,欢迎关注、点赞、在看!你的支持是我持续输出最大动力!
更多相关的 RAG、Embedding 和大模型八股文小编已经整理在飞书文档中,关注公众号回复[A017],获取更多相关高薪八股资料。