开源的一站式平台 MLSQL,会 SQL 就能玩转机器学习和大数据

Kyligence
2021年 10月 15日

近日,由 VMware 主办的大型开源社区活动——2021智能云边开源峰会(2021 Open Source AceCon)成功在线举办。作为开源技术生态的年度盛会,今年 VMware 邀请了多位来自开源领域的技术领导者及重要贡献者,分享“云原生、边缘计算、人工智能”三大热门技术趋势及洞察。Kyligence 联合创始人兼 CEO 韩卿受邀出席,并分享了《开源云原生数据分析平台》主题演讲,携手更多开源社区,共同推进开源技术创新和开源生态繁荣。

-- 以下为韩卿大会演讲实录 --

大家好!我是来自 Kyligence 的联合创始人兼 CEO 韩卿 ,非常高兴受邀参加智能云边开源峰会,今天将给大家介绍我们最新的开源项目 MLSQL,看看我们是如何打造开源云原生的数据和 AI 平台。

大家应该都比较熟悉 Apache Kylin,Kyligence 是由 Apache Kylin 创始团队创建。今年我们也非常高兴 MLSQL 作者祝海林(威廉)加入公司,带来了新的开源框架和项目。「SQL为王」这句话大家应该都听过,在 Apache Kylin 中我们针对 SQL 做了非常多数据分析的能力,解决了 OLAP 场景中的很多问题。今天在整个 AI 方面,我们也有新的布局和方向,希望同样赋能会使用 SQL 的同学,让大家更简单、容易地使用 SQL 语言,去完成整个机器学习以及 AI 的工作。我们希望最终能为数据分析师、数据科学家、数据工程师等提供一个统一的全栈平台,不需要在各个平台之间切来切去,直接完成数据和 AI 的相关的整个工作。

今天分享的内容主要分成三部分,首先我会讨论一下相应的痛点,简单介绍一下 MLSQL 背后的架构,以及它解决了哪些问题,最终会分享几个案例,可以看一下这些企业是如何使用 MLSQL 来更加低成本的落地数据和 AI 的使用。

  1. 当前企业落地 Data+AI 面临的痛点

今天最大的问题在于,企业对于数据科学家或者数据工程师的要求其实是“超人”级别的。最早的时候,大家只要学 SQL 就好了,但是在今天整个大数据和云计算的层面上,你想要做成一件事情,基本上需要掌握 Hadoop UI,或者是学习 PySpark,甚至还要学习机器学习库比如 TensorFlow ,调度工具 Airflow 等等,以上也才只是几十个组件中的一小部分而已。

其实大家并不是超人,如果仅靠上面这种方式,长期来看并不能够解决整个企业级在数据和 AI 上的工业化规模生产的挑战,这是我们看到最大的痛点。

对一线人员来说,部署和维护成本都非常高,学习成本和使用门槛也很高。同时,数据在各个组件流转,也可能带来数据安全等更大的问题,这就使得企业在落地创新的数据和 AI 非常困难,很难统一标准,数据在各个系统之间其实没有办法非常高效地流转。在这个情况下,企业和一线人员其实花了大量的精力在解决这些组件以及数据上的问题,没有太多的时间能真正花在算法,以及通过 AI 去做验证的工作上,这个我们认为是巨大的浪费。

对于公司来说,整个 ROI 非常低,大量的投入和成本,不是在平台本身,就是在人员本身,去解决所谓的技术上遇到的挑战,导致企业无法将精力放在一个算法怎么驱动业务场景、怎么落地等。因为数据工程师、数据科学家其实并没有花力气在真正的业务场景落地上,而是去解决这些组件、技术本身了。

其次,对于整个企业而言,另外一大痛点在于人才极其缺乏。大家都知道,数据科学家要价相当高,对于互联网公司来说,这可能不是一个障碍,但是对于传统的企业来说,这样的工程师要么很难找到,要么需要花费昂贵的成本,即使找到了这样的工程师,传统企业不太可能拥有互联网公司这样的技术平台和相应的技术能力,其实并不可能直接构建这样的超能力。对于企业来说,这其实是一个最大的问题。

这就回到了我们最初在做 Apache Kylin 的时候碰到的一样的问题,我们希望给用户提供的是一个 SQL,通过低门槛的技术本身,来大大降低使用门槛,从而带来整个能力的产业化。

2. 为什么要做 MLSQL?

下面我会介绍一下为什么我们会做 MLSQL 这样开源的项目。

MLSQL 首先是一门语言,它是一门类 SQL 的语言。我们发现大部分的做数据分析的人员,对于SQL的学习能力还是非常强的。如果叫他们再去学 Scala、Python 等等,其实已经有一点挑战了。所以我们想说万变不离其宗,为什么不能把这样的分析用 SQL 的语言的形式更快、更简单地推向普通大众。

第二,MLSQL 是一个分布式的引擎。MLSQL 背后其实是一套非常灵活、非常强大的分布式引擎,同时可以在云上,或者在本地进行部署,非常简单。

与此同时,MLSQL有非常多的内置的库,我们也非常希望未来社区能够不断地贡献进来。不管是对数据湖的支撑,在 CDC 上面,在各类算法上,以及在整个 AI 模块的引入上等等,MLSQL 都是一个非常容易扩展和完善的内置库。整体来说,MLSQL是一个拥有强大分布式执行引擎的,拥有一个类SQL语言的开源项目,致力于降低企业落地数据和 AI 的整个门槛。

这里给大家分享一下,我们刚刚在这个月发布的 MLSQL 2.1.0,能让分析师、数据工程师直接使用桌面版,而运算完全可以放到云上,整个过程中的切换其实只要一个配置好就可以了。

这样的使用其实有点像 SAS 软件在早年的做法,企业的算法工程师可以在本地进行算法开发或者训练,真正跑的时候,需要大规模运算能力的时候,一键就可以发布到云上,这个 MLSQL 已经做到了。

大家来简单看一下,这是 MLSQL 桌面版,它是基于 VSCode 进行定制的,很容易安装和使用。在你的桌面就可以直接使用相应的内容。这里看一个简单的 Demo,通过 MLSQL 对一亿条淘宝用户行为数据进行的分析,我们拿到这个公开的数据集之后,想把 CSV 文件导入到整个的环境里把它跑起来。大家可以看到在 MLSQL 里是非常方便的,对于工程师和数据分析师来说都是非常熟悉的界面。

我们只要在配置文件里加上一个远端的服务的 URL 加上相应的 token 就好了,执行的时候就直接可以发布到远端的云端去执行。

当然,MLSQL 在纯云端也可以使用。同样的 Notebook 用户体验,也在我们整个的产品体系里面已经开始提供。这样类似于 Databricks 的 Notebook 可以在云上进行使用,而背后它的语言、引擎都是一致的。除了赋能云端使用以外,也可以使用 VSCode 的框架在放在本地运行,运行的时候也是非常简单,可以通过简单的一行命令,一个MLSQL run 加上对应的 MLSQL 的文件,就可以跑起来了,它可以自动地去调整和协调。

在这个过程中,如果它是一个远端执行,就可以直接发布到云上执行,或者它也可以通过整个自动化的参数调配来进行相应的计算节点的动态分配。

对于私有云来说,我们也提供了这样的能力,只要一键也可以部署到整个的 K8S 上,我们通过这样的方式,在现有的所有的基于 K8S 的私有云的能力上,我们可以非常容易地去跑起来,能够快速地运行起来。

整体来看 MLSQL 的架构其实是非常简单的。作为一个引擎,前面会有一个 Load Balance,加 JDBC/Rest API,最后会有一个控制台界面供你去使用。MLSQL 可以跑在 Yarn/k8s/Standalone 和 Local 模式。MLSQLEngine 是一个典型的 master-slave 结构。因为我们支持 Python 脚本,这意味着我们需要在 Java 里面执行 Python 代码,于是我们重新实现了一套 Python Deamon 和 Python Worker,这个是作为 Client 的,然后在 Ray 里执行 Client 的代码,这大概等价于在 PC 机上写一段 python 代码,最终会连接到 Ray 的 Cluster 上去执行。

最近我们也一直在跟 Anyscale 合作,我们发现 Ray 是一个更加新一代的分布式计算框架,而且在整个的云上,在机器学习里面它的成本更低,它更加灵活,大家可以非常容易地通过 MLSQL 来使用整个的后台 Ray 的能力。

前端是我们提供了 Console,这个 Console 里面包括了桌面版以及云上版本,各种各样的 Python 计算的库,以及 Tensorflow 相应的能力,其实都可以被直接 import 到整个的 MLSQL 运行时刻来被完成调度。这样的话对于我们使用人员来说,不需要离开一个工作环境,它在各个语言之间也不需要频繁地切换,它可以直接在一个地方可以把所有的东西都能够协调和调动起来。

MLSQL 这样的平台能力,希望能够覆盖到更多的数据科学家,甚至赋能大数据工程师,能够让产品运营甚至是其他人员都能更加快速地使用整个的机器学习的能力。尤其我们希望通过产品端的包装,能直接把相应的一些分析能力或者是自主的能力直接提交到或者是直接包装到产品中变成一部分产品的能力,而不仅仅是开放一个非常复杂的能力。这也类似于 Apache Kylin 最近在做一件事情,就是希望从业务用户的角度,人人都是分析师,大家可以直接消费数据,而不应该还要关心后面到底是 Spark 还是 Hadoop 还是在什么云上,大家只关心数据本身就可以了。

我们也希望通过 MLSQL,大家能够更多地关注到 AI 给企业带来的能力上,而不在于用的到底是什么 AI 模型,或者是它在哪里、如何去跑,从而更多地关注产品本身的结果。

3. MLSQL 如何帮助企业低成本落地 Data+AI?

接下来介绍一下在让企业更加低成本地落地 Data+AI 的整体能力上, MLSQL 是如何做到的:

第一个是开源。整个MLSQL今天是全开源的,在开源的框架下,大家完全可以打造自己的能力,当然我们未来会提供相应的商业的运行环境,从而能够通过云上的 Pay as you go 的方式可以更好地跑起来。

第二个是统一MLSQL 使数据分析和AI的能力上更加统一,不需要在不同的语言、不同的组件之间切换了,这给整个底层的数据存储和相应的安全管控等也都带来了更加一致的体验。

第三个是简单。通过一些企业的实践,MLSQL 是非常简单、容易地快速赋能相应的人员使用。

第四个是安全。安全是企业级服务里是最重要的能力之一,这一点在最初做 Apache Kylin 的时候我们就一直坚持,在 MLSQL 中也是一个非常被重视的特性。今天即使在开源的版本里面,MLSQL 安全的框架和相应的能力做得也是非常的深入,可以非常好地在不同的运行阶段管控好相应的数据安全,也能够可以更充分地利用到后台大型的数据集,而不需要担心相应的数据被导出去,或者在不同的应用之间无序地流转。

开源、统一、简单和安全就是 MLSQL 带来的四大特点。

在 MLSQL 开源社区中,我们已经有非常多的贡献者,在云上也有非常好的使用,可以看到我们有非常多 reference 的架构,大家可以使用。未来我们也会对 MLSQL 提供更加强大的商业能力支撑。

从整体、统一的角度来看,大家可以看到 MLSQL 作为一门语言来说,是非常简单、易学,这非常类似于在整个 ETL 的过程中可以用 SQL 的方式。在整个过程中,我们直接把一个 Excel 的文件导入进来,通过 SQL 的方式操作这样的底层。而这个过程中并没有非常复杂的导来导去的过程。

基于这样的在内存中变成了的 Temptable 之后,你可以进一步地在上面做各种复杂的 SQL 操作,以及把这样的复杂的 SQL 操作作为中间表进一步地存起来,为下一个Pipeline 去使用。最终的时候你会看到即使最终也可以存成另外一个 Excel 的文件导出来。在整个这个数据的 Pipeline的过程中,你可以看到 ETL 的影子,你可以看到 SQL 的影子,你看到了 AI 的影子等等。

其实在整个的过程中,你就可以看到 MLSQL 强大的能力,其实对于使用者来说,整体的方便性可见一斑。另外,大家可以看到,MLSQL 不再需要依赖这么多不同组件,直接可以通过统一平台帮你把底层的复杂性直接给屏蔽掉。

简单来说,MLSQL 现在已经可以做到几天入门,接下来我们希望能做到让大家当天入门。我们也希望能够覆盖不同能力的人群去使用,大家可以在不同层次去使用 MLSQL,对于高阶的数据科学家,可以用非常深入的自定义能力去使用,对普通大众来说,能实现「拿来就能用」。

其实在公司层面上,我们也希望通过降低使用的门槛,进一步地去释放整个大数据和 AI 的生产力,能让企业更多、更放心地进一步的投入,而无需担心需要依赖特定的一些专家,和高昂的成本等,也能更快让数据和 AI 真正带来商业价值,在我们认知里,其实只有当一个技术能够被通过人才的落地、实现规模化生产的时候,它才真正具有规模化的商业价值,而我们想做到的就是帮助更多企业加速这一进程。

4. 案例介绍

接下来介绍两个案例,第一个是消费金融公司。整个大数据平台支持团队只用了2个人,但是它支撑了200多人的使用,日活大概是 71%,也就是说大概有150个人左右天天使用整个平台,而且整个的系统本身已经持续运行三年多了。通过这样的方式,企业不仅仅完成了整个的数据分析能力,同时完成了整个的 AI 的相应能力,包括 ETL 部分的能力,这部分的投入产出比是非常高。

第二个其实是来自某集成商合作伙伴的案例,他们是给相应的特定客户进行非常深入的数据方面的工作。之前他们去做整合的过程中,一个模型两周可能都不一定搞得定,甚至要堆人。现在,他们在整合过程中把所有的东西切换到 MLSQL 之后,30多个模型,500多个任务,用了4个人一个月就全部开发完毕,整个开发效率提升了大概15倍以上,而且整个的执行性能和效率是大大地提升了。可以想到对于合作伙伴来说,这样的技术能力带来的商业价值是多大,这里也是希望我们可以看到更多的可能性,也希望更多的客户和合作伙伴一起参与和完善到整个 MLSQL 的建设和发展上。

在云上的架构中,为了进一步探究 MLSQL 实现的方式,我们最近也在和 JuiceFS 等社区进一步合作,希望能够更好地把基于通过 K8S 的能力进一步地使用和开放到各个应用上。

5. 总结

非常高兴给大家简单介绍了 MLSQL 这一基于云原生的数据和 AI 的开源平台,这也是 Kyligence 从今年开始新引入以及在不断投入的新方向。我们希望通过 SQL 的语言,进一步地统一数据分析和 AI 等相关的工作,从而进一步地降低使用门槛,能够为数据使用人员、从业人员带去更好的用户体验和更方便的使用架构。


关于 Kyligence

Kyligence 由 Apache Kylin 创始团队创建,致力于打造下一代智能数据云平台,为企业实现自动化的数据服务和管理。基于机器学习和 AI 技术,Kyligence 从多云的数据存储中识别和管理最有价值数据,并提供高性能、高并发的数据服务以支撑各种数据分析与应用,同时不断降低 TCO。Kyligence 已服务中国、美国及亚太的多个银行、保险、制造、零售等客户,包括建设银行、浦发银行、招商银行、平安银行、宁波银行、太平洋保险、中国银联、上汽、一汽、安踏、YUM、Costa、UBS、Metlife、AppZen 等全球知名企业和行业领导者。公司已通过 ISO9001,ISO27001 及 SOC2 Type1 等各项认证及审计,并在全球范围内拥有众多生态合作伙伴。

申请试用
关注我们