12|Embedding:把文本变成向量到底在干嘛
本篇目标:这是卷 1 的最后一篇。我们将揭开 AI 记忆与搜索的核心秘密——Embedding。如果你想做“知识库问答”或“文档检索”,这篇是必修课。
一、AI 眼里的世界:全是坐标
在人类眼里,“猫”是一种可爱的动物。
但在 AI 眼里,“猫”是一个向量(Vector),也就是一串长长的数字列表:[0.12, -0.58, 0.99, ...]
1. 为什么要变成数字?
因为计算机算不了“猫 - 狗 = ?”,但它能算“向量 A - 向量 B = ?”。
2. 什么是 Embedding?
Embedding 就是把“万事万物”映射到一个高维空间里的“坐标点”。
在这个空间里:
- 语义相近的东西,坐标离得近。
- 语义无关的东西,坐标离得远。
举个通俗的例子(二维空间):
假设我们只用两个维度来描述动物:[体型大小, 凶猛程度]
- 老虎:
[9, 9](很大,很凶) - 狮子:
[8.5, 9.5](很大,很凶) -> 离老虎很近 - 猫:
[2, 3](小,不凶) -> 离老虎很远 - 狗:
[3, 2](小,不凶) -> 离猫很近
当我们计算这些坐标的距离时,就能发现:老虎和狮子是“一类”的,猫和狗是“一类”的。
AI 的 Embedding 模型(如 text-embedding-3-small)通常有 1536 个维度,能极其精准地捕捉词语之间微妙的关系。
二、向量检索(Vector Search):找相似的利器
传统的搜索(Keyword Search)是匹配字面:
- 搜“手机”,能搜到“手机壳”,搜不到“移动电话”。
- 因为“手机”和“移动电话”字面不一样。
向量搜索是匹配含义:
- 先把“手机”变成向量 A。
- 先把“移动电话”变成向量 B。
- 计算 A 和 B 的距离(余弦相似度)。
- 发现距离极近! 所以就算字面不同,也能搜出来。
这就是 RAG(检索增强生成) 的核心原理:
- 把你公司的 1000 份文档切碎,全部变成向量,存进向量数据库。
- 用户问一个问题,把问题也变成向量。
- 在数据库里找离这个问题“最近”的几段话。
- 把这几段话扔给 ChatGPT,让它总结回答。
三、实战:用 Python 算“相似度”
不用去学高数,Python 有现成的库。
1. 准备工作
你需要一个 Embedding 模型(比如 OpenAI 的 text-embedding-3-small 或本地的 bge-m3)。
2. 伪代码演示
import numpy as np
# 假设模型把文本变成了 3 维向量(实际是 1536 维)
vec_apple = np.array([0.9, 0.1, 0.1]) # 苹果
vec_banana = np.array([0.85, 0.15, 0.1]) # 香蕉
vec_car = np.array([0.1, 0.9, 0.1]) # 汽车
def cosine_similarity(v1, v2):
# 计算余弦相似度(越接近 1 越相似)
return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
# 算算看
print(cosine_similarity(vec_apple, vec_banana))
# 输出:0.99 (极高!因为都是水果)
print(cosine_similarity(vec_apple, vec_car))
# 输出:0.21 (极低!因为毫无关系)
结论:Embedding 让计算机拥有了**“理解语义”**的能力,而不仅仅是“比对字符”。
四、向量数据库(Vector DB):AI 的海马体
当你有几百万个向量时,用 Python 的 numpy 挨个算距离太慢了。
这时候就需要专门的向量数据库:
- Chroma / Faiss / Milvus / Qdrant
- 它们专门优化了“在高维空间找最近邻居”的算法,能在毫秒级返回结果。
对于个人开发者:
- 数据少(几千条):直接用内存(Python list)或者轻量级库(Chroma)。
- 数据多(几千万条):上专业的向量数据库(Milvus)。
本篇产出:相似检索的最小心智模型图
请记住这张图,它是所有“知识库问答”系统的骨架:
卷 1 结语:LLM 原理通关
恭喜你!完成了卷 1 的学习。现在你应该懂了:
- Token:计费单位,别聊太久。
- Temperature:控制脑洞的开关。
- 预测下一个词:它不是查库,是在推理。
- System Prompt:给它戴面具。
- 结构化输出:让它吐 JSON。
- Embedding:让它理解“意思”而不是“字面”。
这 6 个概念是 AI 编程的基石。
下一卷(卷 2),我们将进入“提示工程与工作流”,教你如何写出那些价值连城的 Prompt,以及如何把 AI 嵌入到你的代码里去干活。
准备好了吗?让我们把理论变成生产力。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)