Embedding(向量嵌入) 上下文与记忆

别名: 嵌入

把文本映射成向量的函数,核心性质是语义相近的文本映射后的向量也相近。本章采用注入式设计:测试与判题注入确定性假 embedding,生产环境注入真实 embedding API,机制与语义质量解耦。见[第 11 章](/chapters/11-memory-retrieval/)。

它是什么

Embedding(向量嵌入)是把文本映射成向量的函数:embed(text) -> number[]。核心性质是语义相近的文本,映射后的向量也相近——「用户不喜欢咖啡」和「用户对饮品有偏好」即便没有一个字相同,向量夹角也小。于是文本之间的「语义相似度」变成了向量之间的余弦相似度,召回从字面匹配升级成语义近似。

注入式设计

本章的关键自由度:embedding 的语义质量来自模型(生产环境调 embedding API,如 OpenAI 的 text-embedding-3-small),但它对外只有一个接口 embed(text) -> number[]。所以记忆库把 embedding 设计成注入式——谁调用记忆库,谁负责提供 embedding 函数:测试与判题注入确定性假 embedding(字符计数 + 哈希,离线可复现、无需 API key),生产注入真实 API 封装。机制(写 → 嵌入 → 比对 → 取回)与语义质量解耦,两件事分开学。

注意点

假 embedding 只保证「相同文本 → 相同向量」,不保证「同义词 → 相近向量」——它是用来练机制的,不是语义引擎;换真实模型后分数分布会变,阈值要重新调。另外维度一致性要盯死:写入 96 维、查询 128 维时点积会算出离谱甚至 NaN 的结果(详见第 11 章的坑二)。

在本教程的位置

embedding 是向量检索RAG 的公共底座:第 11 章手写假 embedding 与余弦相似度,把「写 → 嵌入 → 比对 → 取回」整条链打通。

相关词条

出现在这些章节