"苹果手机"和"iPhone"在字面上毫无重叠,机器怎么知道它们是一回事?答案是 Embedding:把文字变成一串数字(向量),让语义相近的内容在数学空间里彼此靠近。
语义即距离
Embedding 模型把一段文本映射成一个高维向量(常见几百到几千维)。训练得当的话,意思相近的句子向量夹角就小。衡量这种"靠近"最常用的是余弦相似度:1 表示方向完全一致,0 表示无关,负数表示语义相反。
它能做什么
- 语义搜索:搜"怎么让猫多喝水",能命中标题完全不同的《猫咪饮水量不足的对策》。
- 聚类与去重:把上千条笔记自动按主题分堆,找出重复内容。
- 推荐:读过什么,就找向量最近的下一篇。
RAG:大模型 + Embedding 的黄金组合
大模型知识有截止日期,也记不住你的私人资料。RAG(检索增强生成)的思路很朴素:先把你的文档切块,每块算出 Embedding 存进向量库;提问时把问题也算成向量,找出最相似的几个块,塞进提示词里让模型"开卷考试"。这样模型答的是你的资料,而不是它的记忆。
两个实践要点
- 切块大小要适中:太大检索不精准,太小丢失上下文,常见 300~800 字一块并保留少量重叠。
- Embedding 模型要和语言匹配,中文任务选中文效果好的模型,别默认用英文模型硬跑。
一句话总结:Embedding 是把"意思"变成"坐标"的翻译官,翻译得越好,机器对语义的理解就越准。