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 決定“如何可靠且快速地存與找”。下一課把它翻譯成數據庫心智模型。