直播回顧|Milvus 與順豐 AI 平臺的 AI 效率之旅


【Milvus User Tech】第一期回顧版來啦!


近期,Milvus 社區開啓了 2023 年的第一場線上直播【Milvus User Tech】,順豐科技 AIOT 研發中心工程師楊瑞澤與 Milvus 社區 Committer 李成龍分別從 Milvus 在順豐的以圖搜圖實踐、 Milvus 新版本核心功能與實用工具及社區熱點問題解答等方面進行了分享。


以下爲精彩內容回顧:


01.

Milvus 2.2.3 新功能實用工具及熱點問答


李成龍基於 Milvus 2.2.3 版本對最新的功能進行了介紹,它們分別是滾動升級和 Coordinator 高可用。


滾動升級是用戶呼聲較高的功能,此前,有不少用戶在社區中表示對此需求強烈。例如,有用戶的業務屬於在線業務,需要承接 24 小時的訪問量。想要在不中斷業務的基礎上進行系統升級,滾動升級必不可少。 


Milvus 2.2.3 在進行滾動升級的時候,對於 IndexNode 沒有任何依賴,相反,依賴最多的組件是 proxy。新版本的啓動順序分別是 RootCoord -> DataCoord -> IndexCoord-> QueryCoord->QueryNode-> DataNode -> Proxy IndexNode。滾動升級順序和啓動順序相同,在實際操作時是逐步升級和啓動每個新節點。等到所有新節點啓動後,纔會把新節點切換到線上,然後把老節點下線。


具體的操作方式參見官方文檔[1] ,此外,我們也提供了升級腳本,使用方式很簡單,只要在腳本後加上相關啓動參數即可:


  • 滾動升級-Helm

升級腳本鏈接:

https://github.com/milvus-io/milvus/tree/master/deployments/upgrade/rollingUpdate.sh


升級指令:

sh rollingUpdate.sh -n default -i my-release -o update -t 2.2.3 -w 'milvusdb/milvus:v2.2.3'


  • 滾動升級-Operator



升級指令:

kubectl apply -f milvusupgrade.yml

接下來是 Coordinator 高可用。目前可以實現將 coordinator 設置多個副本數,能夠有效避免單點故障的問題。在設置過程中記得將 activeStandby 開關打開,同時注意 4 類coordinator 節點需要在配置文件中單獨設置。



除了新功能,李成龍還着重介紹了 Milvus 的兩大實用工具:Milvus-backup 和 Birdwatcher。


其中,backup 爲數據備份和恢復工具 ,具體操作方式參見公號文章《還在擔心數據丟失?Milvus-backup 帶你“一鍵復原”


而 Birdwatcher 爲 Milvus 2.x 項目的調試工具,可以連接 etcd 並檢查 Milvus 系統狀態[2] 。更爲具體的操作方式和使用場景的文章將在後續推出,請大家持續關注 Zilliz 微信公衆號。


此外,針對社區用戶提出的熱點問題,例如“Milvus 可以使用外部的消息系統,對象存儲嗎?”“搜索性能很慢怎麼辦?”“Milvus 裏的‘副本’如何理解?”“Milvus 是否會對主鍵去重?”“Milvus 的混合檢索是前過濾還是後過濾?”等,李成龍也一一解答(想要了解詳情可觀看視頻號直播回顧)。


02.

順豐以圖搜圖場景實踐


順豐科技  AIOT 研發中心後端開發工程師楊瑞澤主要從順豐科技以圖搜圖實際業務的背景、技術實現和性能優化以及對 Milvus 的思考進行分享。


在順豐快遞運送過程中,由於天氣因素或實際摩擦的原因,包裹單會出現單面磨損的情況,即“有貨無單”。這些包裹無法正常運輸或中轉,需要管理人員上報和及查找。而這個過程涉及跨場地,不僅效率低,難度也很大。


而“有貨無單”並非個例,據統計,生鮮季每日上報有貨無單 2000 單,非生鮮季每日上報有貨無單 1200。這樣的體量對訂單的查找速度提出了更高的要求。


以圖搜圖能夠爲異常件人員提供新的解決方案,助力快速找到相似圖片及單號,縮小覈查範圍,提升找件效率。


基於此,順豐技術團隊的技術實現如下:


先是插入數據,這個主要集中在快件中轉過程中,快件經過中轉場後,對快遞進行掃描。讀取包裹圖片,經過算法運算後檢測出包裹所在位置;再使用基於 transformer 的模型進行特徵的提取;提取特徵後保存在 MongoDB 中。


同理,查詢時先經過一個模型的特徵提取,再從 MongoDB 中選出部分向量。由於順豐業務的特殊性,所以可以藉助一些大數據的模型或者手段將查詢範圍鎖定在幾千單或者幾萬單,以提高查詢效率。從庫中查詢到相關向量數據後,使用了 FAISS 作爲向量匹配工具,匹配出相似度最高的 TOP30 圖片後,在前段展示大體方案。



不過,楊瑞澤指出,上述方案存在一定的問題,例如 Faiss 做爲開發庫,不能開箱即用,在生產環境中使用涉及更多的開發、維護成本;隨着越來越多的任務涉及 ANN、KNN Embedding 向量索,相關問題會變得愈發突出。


在此情況下,像 Milvus 這樣的中臺系統在向量檢索中扮演着重要的角色。


楊瑞澤認爲,針對越來越多的非結構數據的向量檢索,Milvus 提供了一套較爲完善的解決方案,在對萬億規模數據進行向量索引的同時,還具備更高的可拓展性及高可用性,而標量過濾與向量相似性搜索配對還可實現混合搜索,這樣一系列的特性完全能夠滿足順豐的業務需求。

參考資料

[1]

https://milvus.io/docs



[2]https://github.com/milvus-io/birdwatcher


關於更加詳細技術細節,感興趣的讀者可點擊“閱讀原文”觀看直播回放

本文分享自微信公衆號 - ZILLIZ(Zilliztech)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章