【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

Milvus 2.0 GA 版本发布:专为 AI 打造,具备支持大规模生产环境能力

  • 2022-02-10
  • 本文字数:2421 字

    阅读完需:约 8 分钟

Milvus 2.0 GA版本发布:专为AI打造,具备支持大规模生产环境能力

近日,专为 AI 打造的云原生向量数据库 Milvus 2.0 GA 版本正式发布。据悉,全新的 Milvus 向量数据库具备支持大规模生产环境的能力,帮助开发者在构建深度学习、机器视觉、语义学习等大规模系统时,能够快速构建起高可靠、高性能、高检索效率、运维管理友好的向量数据(embedding vector)处理平台。

全面重构


Milvus 向量数据库于 2019 年开源,能够管理大量非结构化数据集,并在新药发现、推荐系统、聊天机器人等方面具有广泛的应用。2021 年 6 月,Milvus 从顶级开源基金会 Linux 基金会旗下 Al 子基金 LF AI & DATA 毕业。目前,Milvus GitHub star 数逾 9000。


对于本次 Milvus 2.0 GA 版本的发布,Milvus 工程总监栾小凡表示,“这不是一次简单的版本升级,而是一次全面重构,也是我们过去三年在向量数据库领域探索之后的集大成之作。在经过对架构进行全面重新设计,及 9 个 RC 版本的迭代后,我们正式宣布 Milvus 2.0 的 GA。 Milvus 的用户将由此能够获得生产级可用的开源向量数据库系统,它可以部署在任意云基础设施上,使用更加便利,性能更加强大,整体成本也更为优化。”


据悉,Milvus 在迭代了 19 个版本后正式发布了 1.0 版本,并获得了全球近 1000 家用户的实践验证。但 Milvus 1.0 仍然存在诸多局限性,比如实时性与效率的冲突,成本的高昂,可扩展性和弹性的不足。


这些局限充分说明目前 AI 系统开发者在面对生产落地时,在算法和模型之外,也同样面临更为切实的权衡:


  • 非结构化数据相比传统结构化数据,已经占据压倒性地位;

  • 数据新鲜度非常重要,数据科学家们更希望能够拥有实时处理能力,而非忍受对 T+1 的妥协;

  • 面对生产实践环境,数据处理的成本和性能更加重要,但现有的方案却仍然与需求存在距离;

  • 数据平台能够自如的部署在各种云基础设施之上,全面云原生化势在必行。


随着 AI 应用的大规模快速普及,一套 AI 系统需要应对的业务数据量呈几何级数增长。这其中以图形、视频、音频为代表的非结构化数据为主。目前业务处理这类非结构化数据的主流的做法是将数据通过算法先转化成向量(embedding vector),之后通过向量数据库平台进行向量近似性搜索,以实现对这些数据的搜索查询等需求。


在最近的人工智能顶会 NeurIPS 上,Google、Facebook 及 Microsoft 的 AI 团队向业界公开了数个全新的 10 亿级向量数据包,而这些数据全部基于真实的业务场景产生。


面对这些这些真正意义上的“大规模”并且仍在高速增长的海量数据,是否有更好的向量数据库解决方案,能在更高的效率、更好的成本收益比,更稳定可靠的平台支持,更方便的运维管理之间取得取舍均衡,是业界的焦点所在。


Milvus 2.0 正是为应对这种大规模生产级场景而设计的向量数据库系统,综合考虑了架构稳定性、工程可靠性、性能、成本、功能、用户体验等多种因素,并全面拥抱云原生技术。

理念及架构设计


据介绍,Milvus 2.0 围绕以下三个理念:


1.云原生优先:存储计算分离的架构更能发挥云的弹性,以实现按需扩容的模式。 而 Milvus 2.0 采取了读写分离、实时离线分离、计算瓶颈/内存瓶颈/IO 瓶颈分离的微服务化设计模式,这有助于面对复杂的工作负载选择最佳的资源配比。


2.日志即数据:Milvus 2.0 引入消息存储作为系统的骨架,数据的插入修改只通过消息存储交互,执行节点通过订阅消息流来执行数据库的增删改查操作。这一设计的优势在于降低了系统的复杂度,将数据库关键的持久化和闪回等能力都下钻到存储层;另一方面,日志订阅机制提供了极大的灵活性,为系统未来的拓展奠定了基础。


3.批流一体:Milvus 2.0 实现了 unified Lambda 流式处理架构,增量数据和离线数据一体化处理。相比 Kappa 架构,Milvus 引入对日志流的批量计算将日志快照和构建索引存入对象存储,这大大提高了故障恢复速度和查询效率。为了将无界的流式数据拆分成有界的窗口,Milvus 采用 watermark 机制,通过写入时间(也可以是事件发生时间)将数据切分为多个小的处理单元,并维护了一条时间轴便于用户基于某个时间点进行查询。


Milvus 2.0 架构概览:



基于上述理念及架构设计,Milvus 2.0 可以支持: 


  • 百亿规模的向量数据扩展能力,增量数据毫秒级实时可见的数据可见性,存储计算的秒级扩缩容能力,10 毫秒级查询延时性能,分钟级的故障恢复能力,动态负载均衡能力;

  • 提供完善的面向向量数据的增删改查功能,数据压缩压缩功能,动态加载索引功能,及图形化 GUI 及命令行管理工具,提供 PyMilvus、Node.js、Java and Go 等多语言语言 SDK。


“基于大数据 + AI 的应用架构依然过于复杂,简化非结构化数据处理一直是 Milvus 社区努力的方向。” 谈及 Milvus 项目未来的发展路线图时,栾小凡这样表示。接下来的 Milvus 项目会重点关注以下几个方向:


  • DB for AI:作为一款数据库,除了基本的 CRUD 功能之外,Milvus 必然还需要更强大的数据查询能力、更智能的查询优化器、更全的数据管理功能等。下一阶段将重点补齐 Milvus 2.0 目前还不支持的 DML 功能和数据类型,比如删除、更新操作和支持 string 数据类型。

  • AI for DB:向量索引类型、索引参数、用户工作负载、硬件类型、成本性能等的约束构成了一个非常庞大的 tradeoff,尽可能避免手动调优有助于降低使用复杂度。我们已经着手分析系统负载,收集访问热度的数据,后续将引入自动参数调优工作以降低用户的理解成本。

  • 成本优化:向量召回的最大挑战是需要在限定时间内处理海量数据,这项工作既是计算密集型,也是访存密集型。在物理执行层引入 GPU、FPGA 等异构硬件加速可以大幅降低 CPU 开销。我们正在开发磁盘内存混合的 ANN 索引算法,可以在有限的内存下实现海量向量的高性能查询。于此同时,我们也在评估开源的 ScaNN、NGT 等向量索引算法的性能。

  • 易用性:Milvus 易用性的提升体现在集群管理工具、多语言 SDK、部署工具、运维工具等许多方面,Milvus 将在这些方向持续迭代完善。同时,Milvus 的设计理念是可以在任何平台运行,在接下来的几个版本更新中, Milvus 将支持 MacOS 系统(M1 芯片及 x86 芯片)以及 ARM 架构。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2022-02-10 14:453364

评论

发布
暂无评论
发现更多内容

后端提升技术资源汇总

卢卡多多

技术栈 资源汇总 6月月更

linux之zgrep查找压缩包文件文本

入门小站

Linux

HTML代码清除CSS和JS代码

入门小站

工具

windows下修改、编译、构建spring-framework4.1.8.RELEASE源码

程序员欣宸

Java SpringFramework 6月月更

原来Mysql索引要这么设计才能起飞

慕枫技术笔记

MySQL索引 6月月更

Web Service进阶(四)WebService注解

No Silver Bullet

WebService 6月月更

【高并发】高并发分布式锁架构解密,不是所有的锁都是分布式锁!!

冰河

并发编程 多线程 高并发 异步编程 6月月更

VistorPattern-访问者模式

梁歪歪 ♚

设计模式

A Guide to Write Elegant ETL in Easy SQL

Bright

数据开发 ETL 大数据开发 EasySQL

透过华为军团看科技之变(三):数据中心底座

脑极体

MediatorPattern-中介者模式

梁歪歪 ♚

设计模式

【愚公系列】2022年06月 二十三种设计模式(二十三)-访问者模式(Vistor Pattern)

愚公搬代码

6月月更

在信息化的背景下,如何鼓励员工进行知识共享?

小炮

低代码平台FlyFish在云智慧的落地实践探索

云智慧AIOps社区

开源 前端 低代码 数据可视化

java培训高频Spring面试题分享

@零度

spring JAVA开发

git 高效操作之 range revert

Nick

git git revert 6月月更 range revert 高效操作

【Python技能树共建】断言

梦想橡皮擦

Python 6月月更

面试突击54:MySQL 常用引擎有哪些?

王磊

Java 面试

工厂函数和构造函数

大熊G

JavaScript 前端 6月月更

String源码解读(JDK1.8)

莫逸风

Java 源码 string 6月月更

【技能树共建】Python requests 模块

梦想橡皮擦

6月月更

Django API 开发:博客系统接入 API

宇宙之一粟

django API 6月月更

mysql基础操作

工程师日月

6月月更

鲲鹏DevKit工具基础知识

乌龟哥哥

6月月更

leetcode 79. Word Search 单词搜索

okokabcd

LeetCode 搜索 算法与数据结构

Fabric.js 锁定背景图,不受缩放和拖拽的影响🎃

德育处主任

web前端 canvas FabricJS Fabric.js 6月月更

Kafka 负载均衡在 vivo 的落地实践

vivo互联网技术

大数据 kafka 负载均衡 集群

Linux驱动开发_mplayer播放器开发

DS小龙哥

6月月更

注意了,ribbon将被替换

Damon

6月月更

函数

Jason199

js 函数 6月月更

Jetpack Composes 学习【02】Text

坚果

6月月更

Milvus 2.0 GA版本发布:专为AI打造,具备支持大规模生产环境能力_开源_凌敏_InfoQ精选文章