7 Embedding(嵌入):AI 如何理解语义
本文介绍了Embedding(嵌入)技术在AI语义理解中的应用。Embedding将文本映射为高维向量,使语义相近的文本在向量空间中距离更近。相比关键词检索,它能更好地识别语义相似性(如"AI的未来"与"人工智能发展趋势")。文章演示了如何使用bge中文优化模型进行语义检索,展示了其在RAG系统中的关键作用:Embedding负责检索相关文档,LLM负责生成
·
7 Embedding(嵌入):AI 如何理解语义(中文优化版)
引子
前面我们学习了 RAG(检索增强生成):把资料“喂”给模型来回答企业内部问题。
当文档数量很多时,我们需要一种方法把文本“压缩成可计算的语义表示”,以便 快速、准确地检索。这个方法就是 Embedding(嵌入)。
Embedding 是 RAG 的基石,也是大模型产品里最常用的技术之一。
一、核心概念(零基础友好解释)
1. Embedding 是什么?
- 通俗解释:给每句话贴一个“坐标标签”。意思相近的句子坐标更近,意思不同的更远。
- 专业定义:将文本映射到高维向量空间的过程;这些向量可用于相似度检索、聚类、推荐等任务。
2. 为什么不用纯关键词?
- “AI 的未来” 与 “人工智能的发展趋势” 关键词不同,但语义相似。
- 关键词检索容易漏掉这种情况,而 Embedding 能识别出来。
3. Embedding 和大语言模型(LLM,如 DeepSeek R1)的关系
- Embedding 模型:负责“找资料”(把文本变向量 → 检索最相关片段)。
- LLM(DeepSeek R1):负责“写答案”(读取检索到的片段 + 问题 → 生成回答)。
在完整 RAG 系统里通常是“两件套”:Embedding 模型做检索,LLM 做生成。
二、实践:用 bge 模型做中文语义检索
1. 安装依赖
pip install sentence-transformers
2. 代码(保存为 embedding_demo_bge.py
)
from sentence_transformers import SentenceTransformer, util
# 加载中文优化的嵌入模型(bge 系列)
model = SentenceTransformer("BAAI/bge-base-zh-v1.5")
# 文档候选(passages)——不加指令
passages = [
"人工智能正在改变世界,影响到产业升级与社会治理。",
"今天的天气很好,适合户外徒步和登山活动。",
"GPU 显存不足会导致大模型推理时出现 OOM 错误。"
]
# 查询(query)——要加 bge 的官方推荐指令
QUERY_PREFIX = "为这个中文句子生成用于检索的向量表示:"
queries = [
"AI 的发展正在深刻影响人类社会和经济结构。",
"周末去哪儿爬山更合适?",
]
# 编码并归一化向量
emb_q = model.encode([QUERY_PREFIX + q for q in queries], convert_to_tensor=True, normalize_embeddings=True)
emb_p = model.encode(passages, convert_to_tensor=True, normalize_embeddings=True)
# 相似度计算(query 对所有 passages)
sim = util.cos_sim(emb_q, emb_p)
for i, q in enumerate(queries):
print(f"\n查询:{q}")
ranked = sorted(list(enumerate(sim[i].cpu().tolist())), key=lambda x: x[1], reverse=True)
for idx, score in ranked:
print(f" 相似度:{score:.3f} | 文档:{passages[idx]}")
3. 运行结果示例
查询:AI 的发展正在深刻影响人类社会和经济结构。
相似度:0.632 | 文档:人工智能正在改变世界,影响到产业升级与社会治理。
相似度:0.275 | 文档:GPU 显存不足会导致大模型推理时出现 OOM 错误。
相似度:0.174 | 文档:今天的天气很好,适合户外徒步和登山活动。
查询:周末去哪儿爬山更合适?
相似度:0.341 | 文档:今天的天气很好,适合户外徒步和登山活动。
相似度:0.192 | 文档:GPU 显存不足会导致大模型推理时出现 OOM 错误。
相似度:0.071 | 文档:人工智能正在改变世界,影响到产业升级与社会治理。
可以看到:
- 与 AI 相关的查询 → 正确把“人工智能…”那条放在第一位;
- 与“爬山”相关的查询 → 把“户外徒步和登山…”那条排在第一位。
这就是 Embedding 在检索场景里的作用。
三、产品经理思考
1. Embedding 的产品价值
- 更聪明的搜索:支持自然语言提问,而不是只认关键词。
- 更精准的推荐:用户搜“跑步鞋”,能返回“慢跑鞋”“运动鞋”。
- 更好的分类与聚合:自动把相似问题聚类,生成 FAQ。
2. 在 PRD 中需要考虑
- 模型选择:轻量(快、便宜) vs 大模型(准,但贵)。
- 数据规模:存多少文档?需要多快的检索?
- 更新机制:新文档加入后多久能检索?
3. 和 LLM(DeepSeek R1)的配合
- Embedding → 找出最相关的文档片段
- LLM → 基于片段生成自然语言答案
这就是典型的 RAG 流程:Embedding 做“检索”,LLM 做“生成”。
四、小结
- Embedding = 把文本转成语义坐标,是 AI 检索的基石。
- 在完整 RAG 系统里,Embedding 模型和 LLM 分工明确:前者负责找资料,后者负责写答案。
更多推荐
所有评论(0)