278 字
1 分钟
Numpy 向量计算

Numpy 向量计算#

Embedding 的本质是把文本变成向量。理解一点 Numpy 向量计算,会让你更容易看懂 RAG、相似度检索和模型评测。

向量是什么#

向量可以理解为一串数字:

import numpy as np
a = np.array([0.2, 0.4, 0.8])
b = np.array([0.1, 0.5, 0.7])

在 RAG 中,一段文本会被 Embedding 模型转成更长的向量。

向量长度#

norm = np.linalg.norm(a)
print(norm)

长度本身不是最重要的,RAG 中更常用的是方向相似度。

余弦相似度#

def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
score = cosine_similarity(a, b)
print(score)

分数越接近 1,说明两个向量方向越接近。

模拟检索#

query = np.array([0.2, 0.4, 0.8])
docs = [
("doc1", np.array([0.1, 0.5, 0.7])),
("doc2", np.array([0.9, 0.1, 0.2])),
]
ranked = sorted(
docs,
key=lambda item: cosine_similarity(query, item[1]),
reverse=True,
)
print(ranked[0][0])

这就是向量检索的极简版本。

常见用途#

  • 计算文本相似度。
  • 找最相关文档。
  • 对模型输出做聚类。
  • 做简单排序和过滤。

最小练习#

手动创建 3 个“文档向量”和 1 个“问题向量”,计算余弦相似度,找出最相似的文档。

Numpy 向量计算
https://llmhello.com/posts/2026_07/numpy-vector-computing/
作者
Happy Zhuang
发布于
2026-07-09
许可协议
CC BY-NC-SA 4.0