直播回顾|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源创计划”,欢迎正在阅读的你也加入,一起分享。

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