Agent 工程

从 Embedding 到 Milvus

先建立直觉:模型把含义变成坐标,Milvus 负责在海量坐标中快速找到“意思最接近”的内容。

一条完整的数据链
1

原始内容

“退款多久到账?”以及文档、图片等业务数据。

2

Embedding

同一个模型把内容编码成固定长度的浮点向量。

3

ANN 搜索

近似最近邻用少量精度换取数量级更高的速度。

4

业务结果

返回 Top-K 文档,再交给应用或大模型使用。

为什么普通关键词搜索不够

字面不同,意思相近

“如何退钱”和“退款流程”未必共享关键词,但在语义空间里距离很近。Embedding 捕捉的是统计语义,不是可靠的事实判断。

不能逐条硬算

一百万条向量逐一精确比较成本太高。ANN 索引先缩小候选集,再计算距离;因此需要用 Recall 与延迟共同评测。

相似度的方向别弄反
Metric 怎样更相似 适用提示
L2(欧氏距离) 越小越近 关注绝对空间距离
IP(内积) 越大越近 向量模长会影响分数
COSINE 越大越近 关注方向;文本语义常用
关键约束:写入与查询必须使用同一 Embedding 模型、同一预处理方式和同一维度;建索引与搜索的 metric 也必须一致。否则“有结果”不等于“结果可信”。
Milvus 到底负责什么

同时保存向量、主键与来源、类别、时间等标量字段。

用向量索引完成 Top-K 搜索,并用标量 filter 缩小范围。

管理 collection、索引、加载与数据生命周期;它不替你生成 Embedding,也不替大模型回答。

收获 Embedding 决定“含义如何表示”,Milvus 决定“如何可靠且快速地存与找”。下一课把它翻译成数据库心智模型。