Embedding

合集文章导航
本合集共 6 篇文章,涵盖 Embedding 核心知识:
- Embedding 到底是什么? - 从词向量到语义向量
- Embedding 如何表示语义相似度? - 余弦相似度和向量空间
- 文本 Embedding 模型怎么选? - 维度、中文效果和成本
- Embedding 在 RAG 中有什么作用? - 向量化、检索和召回
- Embedding 效果不好怎么办? - 切分、归一化和混合检索
- 稀疏向量、稠密向量和多向量检索有什么区别? - 三种向量检索对比
让 AI 读懂你的话:Embedding 合集开篇
你有没有想过这个问题?
你问 ChatGPT "苹果",它知道你说的是水果。
你换一种问法——"一种红色的、酸酸甜甜的水果",它还是能精准 get 到你的意思。
但计算机本质上只认得数字啊。
它怎么从这些奇怪的符号里,品出"意思"来的?
答案就藏在 Embedding 里。
文字和数字之间,差着一座桥
先说一个扎心的事实。
你看到"苹果"两个字,脑子里会立刻蹦出一堆画面:圆的、红的、咬一口脆脆的、能榨汁、还能做苹果派。
但计算机看到的"苹果",就是两个字节——01000001。
它不知道这是什么,也不知道这玩意儿和"水果"有什么关系。
这就尴尬了。
Embedding 干的事情,就是当一座桥:把文字、图像、声音这些人类能理解的东西,翻译成计算机擅长的数字。
具体来说,是把每个词、一句话、一张图,都变成一串数字——这串数字有个专门的名字,叫向量。
这串数字可不是乱写的。它有一个神奇的特性:意思相近的东西,数字也"长得像"。
"苹果"和"水果"的数字,离得很近。
"苹果"和"手机"的数字,隔了十万八千里。
这就是让 AI "理解"文字的第一步。

向量空间:词语的游乐场
光说"数字像"可能有点抽象,我们来打个比方。
想象一个巨大的游乐场。
每个游乐设施代表一个概念——有的是"水果"区,有的是"电子产品"区,还有的是"动物"区。
现在给每个游客(也就是每个词语)发一张地图。
地图上会标注:你的位置在哪里,最近的"水果"区怎么走,最近的"电子产品"区怎么走。
这个游乐场就是向量空间。
每个词的地图坐标,就是它的向量。
"苹果"拿到了地图,上面写着:距离"水果"区 5 米,距离"电子产品"区 80 米。
"香蕉"也拿到了地图,上面写着:距离"水果"区 2 米,距离"电子产品"区 85 米。
所以在 AI 眼里,"苹果"和"香蕉"是很近的邻居——它们都是水果。
这就是 Embedding 的核心思想:把语义关系,变成数字距离。
向量运算:国王减去男人,加上女人
等等,Embedding 的本事远不止"距离近"这么简单。
向量空间里还有一个更骚的操作——向量加减法。
有个经典的例子:
国王 - 男人 + 女人 ≈ 女王
啥意思?
"国王"这个向量,代表的是"皇权"+"男性"的概念。
把"男性"这个维度去掉,加上"女性"这个维度。
结果就变成了"皇权"+"女性"——也就是"女王"。
这就好比在游乐场里,你站在"国王"的位置,往左走两步是"男性区",往右走两步是"女性区"。
你从"国王"的位置出发,先减去"男性"的方向,再加上"女性"的方向——
恭喜你,到达了"女王"的位置。
数学上衡量两个向量"方向有多像"的工具叫余弦相似度。
方向越一致,相似度越高;方向相反,相似度就低。
Embedding 模型训练的目标,说白了就是:让语义相似的内容,在空间里的位置也挨着。

模型那么多,到底该选谁?
现在 Embedding 模型确实挺多的。
OpenAI 的 text-embedding-ada-002我用得比较多,国产的 BGE、MacBERT 也有不少人推荐,开源的、收费的、英文的、中文的都有。
挑起来确实容易犯选择困难。
主要看三个维度:维度、效果、成本。
维度你可以理解为"相机的像素"。
维度越高,表达能力越强,能捕捉的细节越多——但代价是存储更大、计算更慢、费用更高。
中文效果是个硬指标。
很多英文模型跑中文数据,效果直接打五折。选之前最好实测一下。
实际场景也要考虑。
搜索场景和分类场景,对模型的要求不一样;有的场景需要精确匹配,有的场景需要语义理解。
没有完美的模型,只有合适的模型。
| 模型 | 维度 | 中文支持 | 典型场景 |
|---|---|---|---|
| text-embedding-ada-002 | 1536 | 良好 | 通用搜索、问答 |
| BGE-large-zh | 1024 | 优秀 | 中文语义搜索 |
| M3E | 768 | 优秀 | 中文embedding、轻量级场景 |
就像选相机:拍证件照不需要一亿像素,但你要放大打印海报,糊了可不行。

RAG 的心脏:Embedding 在检索里怎么干活
Embedding 在哪里最发光发热?
RAG——Retrieval-Augmented Generation,检索增强生成。
这个名字听起来高大上,其实原理很简单:
你问 AI 一个问题。
它先去知识库里检索相关资料。
然后把这些资料和你的问题一起喂给大模型,生成答案。
这就像你写论文先去查文献,再动笔一样。
Embedding 在这里面扮演什么角色?
检索环节的核心。
用户的问题被转换成向量。
然后在知识库里找跟这个向量最"像"的文档片段。
这里的"像",就是余弦相似度——方向越接近,匹配度越高。
召回的文档片段会被组装进 Prompt。
大模型看到这些参考资料,再生成答案。
整个流程大概是:
提问 → 向量化 → 向量检索 → 文档召回 → Prompt 组装 → 大模型生成

调参玄学:Embedding 效果不好怎么办
理想很丰满,现实很骨感。
你满怀期待地搭好 RAG 系统,一跑——效果稀烂。
别慌,大概率是 Embedding 的配置没调好。
有三个地方最容易出问题:
第一,文本切分。
一段 5000 字的文章塞进去,和切成 10 段 500 字进去,效果完全不一样。
太长了,核心信息被稀释,检索命中的是一堆无关内容。
太短了,上下文丢了,AI 拿到的是残缺的片段。
最优解是重叠切分:相邻段落之间保留一小段重叠,保持上下文连贯。
第二,归一化处理。
长文本的向量模长天然比短文本大。
如果直接比距离,短文本永远吃亏。
归一化就是把向量"压"到同一个尺度,让它们在同一条起跑线上。
第三,混合检索。
向量检索擅长语义理解,但不擅长精确匹配。
比如你想找"订单号 #20240315",纯向量检索可能给你一堆语义相关的废话。
这时候加上关键词检索(BM25)作为补充,两者结合,效果往往比单用一种好得多。
调 Embedding 就像调收音机:天线的角度(切分策略)、信号的强度(归一化)、波段的切换(混合检索),都得慢慢试。

这个合集,要带你去哪儿
这个合集就是给你准备的。
我们从 Embedding 最基础的概念讲起——什么是向量、什么是空间、为什么数字能代表意思。
然后深入到实际应用:模型怎么选、参数怎么调、RAG 场景下有哪些坑要避。
每篇文章都是一站。
你可以把它当成一张地图,从第一站开始走,慢慢把 Embedding 的全貌拼出来。
掌握了 Embedding,你就拿到了进入 AI 语义理解世界的钥匙。
下一站,我们来好好聊聊:Embedding 到底是什么?从词向量到语义向量,它经历了什么?

