嵌入模型(Embeddings):向量数据库能搜「意思」,全靠它

向量库怎么懂「意思相近」?靠嵌入模型把文字变成向量。本文讲清它的工作原理、余弦相似度检索,给出 sentence-transformers 最小示例,以及模型选型、维度统一、中英差异等取舍。

嵌入模型(Embeddings):向量数据库能搜「意思」,全靠它

你让向量库「找意思相近的句子」,它怎么懂「意思」?靠嵌入模型(Embeddings):把文字变成一串数字(向量),意思越近,数字越近。它是语义搜索和 RAG 真正的地基——没有它,模型只能靠关键词硬匹配。

为什么需要嵌入

传统搜索靠关键词匹配,搜「怎么给猫降温」找不到「猫咪中暑怎么办」。嵌入把文本映射到向量空间,把相近语义聚在一起,才能按「意思」而不是「字面」检索。

它是怎么工作的

嵌入模型(如 BGE、OpenAI text-embedding)是个神经网络,把变长文本压成定长向量(常见 768 或 1536 维)。训练目标是「语义相近的文本,向量距离小」。检索时把 query 也编码,算余弦相似度,找最近的那些。

取舍与边界

  • 模型要选对:通用嵌入未必适合你的领域(法律、医疗),必要时用领域数据微调。
  • 维度与成本权衡:维度越高通常越准,但存储、检索都更贵更慢,按场景取舍。
  • 中英文差异:混用中英文语料要选多语言模型,否则跨语言检索会崩。
  • 维度必须统一:检索和入库一定要用同一个模型、同一维度,否则向量不可比,检索全乱。

Tips

  • 任何「按意思搜」的需求,第一步就是选好嵌入模型。
  • 中文场景优先试 BGE、m3e 等多语言/中文模型,别直接套英文默认。
  • 入库和检索用同一模型同一维度,这是铁律。
  • 领域强相关的语料,用该领域样本微调嵌入,召回率提升明显。
  • 嵌入质量直接决定 RAG 上限,值得在它上面多花时间。

KEEP READING