整个集群的样本数据量越来越大,集群的吞吐量会随着时间的迁移而变小。为了控制整个集群的吞吐量,我们选择通过业务上的一些规则进行了分支。比如,我们发现两个相同或者相似的视频,我们会是根据视频的发布时间以周为单位去进行分区。在召回的时候,选择该视频所在分区相近的几个分区进行查询。通过这样一种方式,我们对整个比对的数量进行了严格控制,从而保证了检索效率。以上就是我们基于 Milvus 数据库所做的系统设计和性能优化。
期待与总结在识别效果方面,通过视音频特征的结合,采用宽视频阈值、严音频阈值的方式,目前我们去重识别的精度与召回都达到了 90% 以上;在系统性能方面,Milvus 集群的吞吐量和每台机器检索的数据量强相关,我们通过集群化部署、数据分区的方式,限制每台机器检索的向量数量,以此达到我们系统吞吐量 100 W/天的目标;在索引构建方面,我们遇到了比较多的问题,我们暂时以主备集群的方式满足系统可用性的条件,接下来我们会和社区持续沟通,解决二值索引的相关问题。
在未来,我们期待 Milvus 数据库对以下方向进行优化:
- 匹配分级:对匹配结果进行分级,对于低于阈值之下的视频通过视频处理、采集更细致的视频特征,进行二次匹配;
- 索引构建效率提升:与社区合作,针对二值索引的构建性能进行优化;
- 集群自动扩缩容:通过 Milvus 服务的自动注册与自动方向,解决集群静态扩缩容的问题;
- 系统高可用:通过多集群部署等方式,解决 Mishards 以及 Milvus 数据库写节点单点问题。
Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。
Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 数据库是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集,在新药发现、推荐系统、聊天机器人等方面具有广泛的应用。
解锁更多应用场景