本篇目标:这是卷 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(检索增强生成) 的核心原理:

  1. 把你公司的 1000 份文档切碎,全部变成向量,存进向量数据库
  2. 用户问一个问题,把问题也变成向量。
  3. 在数据库里找离这个问题“最近”的几段话。
  4. 把这几段话扔给 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. Embedding
2. Embedding
3. 搜索最近邻
4. 返回Top-K片段
5. 拼接到Prompt
6. 生成回答

用户提问

问题向量

文档库

文档向量库

相关上下文

LLM

最终答案


卷 1 结语:LLM 原理通关

恭喜你!完成了卷 1 的学习。现在你应该懂了:

  1. Token:计费单位,别聊太久。
  2. Temperature:控制脑洞的开关。
  3. 预测下一个词:它不是查库,是在推理。
  4. System Prompt:给它戴面具。
  5. 结构化输出:让它吐 JSON。
  6. Embedding:让它理解“意思”而不是“字面”。

这 6 个概念是 AI 编程的基石。
下一卷(卷 2),我们将进入“提示工程与工作流”,教你如何写出那些价值连城的 Prompt,以及如何把 AI 嵌入到你的代码里去干活。

准备好了吗?让我们把理论变成生产力。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐