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 决定“如何可靠且快速地存与找”。下一课把它翻译成数据库心智模型。