写点什么

SQL 也能做 AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer

  • 2022 年 7 月 15 日
  • 本文字数:3189 字

    阅读完需:约 10 分钟

SQL也能做AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer

7 月 10 日,由星策社区主办的第三期「MLOps Meetup」于线上开展,本次活动由 51CTO、开源中国、CSDN、思否、示说网、云原生社区同步直播,累计观看人次 1.5w+


活动围绕“如何使用 SQL 实现工业级机器学习全流程”,星策社区发起人—谭中意,为本次活动进行开场,同时介绍了“ SQL boy 也可以做 AI ”的活动背景;开源项目 OpenMLDB PMC、第四范式平台架构师—陈迪豪,介绍如何用 SQL 实现特征工程;百度飞桨、EDL、SQLFlow、Couler 核心开发者贡献者—武毅,分享如何用 SQL 做模型训练与预测;Byzer 社区 PMC、Kyligence 技术合伙人—祝海林,介绍如何用 SQL 完成端到端机器学习流程。


🌟本文根据四位老师分享的重点内容整理而成,视频回顾见文章末尾,PPT 获取请关注公众号「星策开源」并回复「0710」

Part1:SQL Boy 也可以做 AI —谭中意


为什么 SQL 如今仍在流行?


SQL 从 1978 年发展至今仍在业界非常流行,原因有以下几点:首先,SQL 是一种声明式编程语言,它只需表达想要得到的结果,而不用关心具体实现的过程。其次,SQL 是标准化的,只要是符合标准(ANSI 等)的 SQL,在不同的机器与环境下都可以运行,并得到同样的结果。最后,SQL 最大的优点就是简单,工程师可以很容易学习和使用。


SQL 的用途


SQL 的用途很广,比如在传统的企业业务系统里,用 MySQL 数据库或微软 SQL 数据库等做 CRUD 的应用。大数据的数据分析领域,有 Spark SQL 、HiveSQL 等。除此之外,SQL 的应用也能涉及机器学习领域,它可以实现特征工程、模型训练,甚至可以做端到端的机器学习。本次 Meetup 就将介绍如何用 SQL 完成这些。

Part2:OpenMLDB—以 SQL 为核心的线上线下一致性特征平台—陈迪豪


人工智能工程化落地的数据和特征挑战


根据 Gartner 的调查统计,如今人工智能领域中 95%的时间精力都花费在数据上,如何正确、高效的 AI 数据和特征供给成为数据侧的新挑战。机器学习应用从开发到上线的全流程(MLOps)可以分成离线开发与线上服务两个过程,这两个过程分别包含:DataOps、FeatureOps、ModelOps 三个步骤。其中特征问题尤为棘手,如 FeatureOps(特征工程)中线上线下一致性校验带来的高昂工程化落地成本问题。为了解决这一问题:1%的头部企业选择耗费上千小时自研构建平台,非头部企业有的则会采购昂贵的 SaaS 工具和服务,而 OpenMLDB 提供了另一种解决方案,它以 SQL 为核心,提供了低成本、高效的线上线下一致性生产级特征计算平台。


OpenMLDB 用 SQL 完成开发即上线


OpenMLDB 是一个开源机器学习数据库,提供了线上线下一致的特征平台,他的整体架构如下图所示,与 AI 应用落地所需要的工具链一样,整体框架分为离线与在线两部分,分别提供了基于 Spark++ 的批处理 SQL 引擎与基于自研时序数据库的实时 SQL 引擎,中间层提供了基于 SQL 的一致性执行计划生成器。总结来看,通过 OpenMLDB 开发者只要会写 SQL,只需三步,即可完成开发即上线的过程。



以 SQL 为核心的开发和管理体验


使用 OpenMDLB,SQL boy 也可以做机器学习。如下图所示 OpenMLDB 的命令行与 SQL 命令行类似,进入 OpenMLDB CLI 后,用户可以直接执行 SQL 语句做离线特征计算,同时通过 Deploy 语句将 SQL 方案上线,上线完成后即可在客户端做线上请求。整个使用体验均基于 SQL ,降低了机器学习特征工程部分的使用门槛。


​OpenMLDB GitHub(​​https://github.com/4paradigm/OpenMLDB​​)

Part3:从 SQLFlow 到 “3-FLow”—武毅


SQLFLow


SQLFlow 是一个编译器,它可以将 SQL 程序编译为在 Kubernetes 上运行的工作流。该输入是一个 SQL 程序,用扩展 SQL 语法编写,以支持 AI 作业,包括培训、预测、模型评估、模型解释、自定义作业和数学编程。输出是在分布式 Kubernetes 集群上运行的 Argo 工作流。同时,SQLFlow 支持各种数据库系统,如 MySQL、MariaDB、TiDB、Hive、MaxCompute 以及许多机器学习工具包,如 TensorFlow、Keras、XGBoost 等。


为什么使用 SQLFLow


众所周知,使用 SQL 实现 AI 计算不需要了解具体的计算细节,只需要定义要去训什么样的模型及参数,就可以完成整体的训练。SQLFlow 的目标就是为了降低整体机器学习和 AI 应用构建多门槛,同时它还是 Declarative 和 imperative 并存的,SQLFLow 可以更 High Level 的定义整个模型及数据的流向。


SQLFLow 优势


如下图所示,SQLFLow 在对标 Microsoft SQL Server、Teradata SQL for DL 及 Google BigQuery 上拥有以下四个优势:它可以适配主流数据库系统、适配每个数据库系统的语法方言、定义扩展语法完成训练/预测/解释/线性规划、同时还能模型库/自定义模型的功能。



其中,关于 SQLFLow 如何详细训练 DNN 等 DL 模型、自动调整参数、训练 XGBoost 模型、执行预测、模型解释 (SHAP)、使用模型库中的模型/自定义模型、求解线性规划问题(linear programming)、运行自定义程序等设计细节可查看文章末尾完整视频。


在 MLOps 上的实现


“3-Flow”是 KubeFlow、MLFlow、SQLFlow 的整合,可以覆盖 MLOps 里大部分的流程。目前该项目使用 Helm Chart 在其他环境快速安装和配置 Kubeflow,SQLFlow 的加入完成了一体化部署以及对应功能。未来,将加入 ParaFlow SDK 等模块,继续完善其 MLOps 功能。



SQLFLow GitHub(https://github.com/sql-machine-learning/sqlflow

Part4:OpenMLDB + Byzer 使用 SQL 完成端到端机器学习流程”—祝海林


Byzer 是什么


Byzer 是一门面向 Data+AI 领域的云原生类 SQL 语言。目前,Byzer 支持 ETL ,数据挖掘和分析, 机器学习建模,模型部署。使用 Byzer 就能轻易完成整个机器学习的 Pipline,这包括:加载数据、处理数据、模型训练(支持多组参数,模型版本等)、批量预测、模型评估、部署 API 服务。架构图如下。



为什么需要 Byzer


如今,大数据和 AI 的门槛仍然很高,平台割裂,语言割裂,维护困难,使用困难等问题让很多人望而却步。Byzer 的出现可以帮助企业和个人都能够最低成本地挖掘数据的价值,极大降低 Data + AI 门槛。


Byzer + OpenMLDB


虽然目前,Byzer 已经可以实现几乎不需要编程就能完成整个机器学习的 Pipeline。但对于特征工程,尤其实时在线特征计算这块,Byzer 目前还有软肋。所以在引入 OpenMLDB 之后,完美解决了 Byzer 在特征工程方面的短板。活动中详细演示了以 Kaggle 出租车行车时间预测问题为例,如何使用 OpenMLDB 和 Byzer 联合来打造完整机器学习应用,涵盖湖仓数据加载,特征计算,模型训练,部署,及对外以 Rest API 提供端到端的预测能力,可查看文章末尾完整视频。


总结来看,使用 OpenMLDB+ Byzer 的过程,让整个特征计算通过 FeatureStoreExt 插件转化到 OpenMLDB 中进行计算。Online 部分通过 Rest 函数实时请求 OpenMLDB 获得特征值。Byzer 作为流式处理,可以将数据规整化写入 Kafka 再进入 OpenMLDB。由此可以发现,Byzer 的使用非常具有扩展性,可以让算法工程师/数据工程师/分析师等在 Notebook 中衔接更多的生态进来。



Byzer GitHub(https://github.com/byzer-org/byzer-lang


总结


随着人工智能领域的持续发展和技术的迭代演进,机器学习不再是大家触不可及的领域,工程师可以通过一些如 SQL 这样更简单、易用、低门槛的编程语言,通过像 OpenMLDB /SQLFlow / Byzer 等开源工具,快速实现机器学习应用全流程,解决机器学习各阶段难题。相信在未来,AI 的落地会越来越简单,落地速度也将越来越快。本次活动中各家的实现细节可观看完整视频回放,希望大家有所收获。


最后,欢迎大家持续关注 MLOps ,加入https://sourl.cn/FJ9EG8和我们一起讨论相关内容。


  • SQL 也能玩转工业级 AI !——谭中意

  • https://www.bilibili.com/video/BV14g411f7Ut/\

  • OpenMLDB 以 SQL 为核心的线上线下一致性特征平台——陈迪豪

  • https://www.bilibili.com/video/BV1eg411f7sC/

  • 从 SQLFlow 到 “3-FLow”用 SQL 完成 AI 建模——武毅

  • https://www.bilibili.com/video/BV1hT411g7hz/

  • OpenMLDB + Byzer 用 SQL 完成端到端机器学习全流程!——祝海林

  • https://www.bilibili.com/video/BV1te4y1R7yn/

用户头像

还未添加个人签名 2022.03.16 加入

还未添加个人简介

评论

发布
暂无评论
SQL也能做AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer_人工智能_星策开源社区_InfoQ写作社区