Byzer — An Open-Source Langugage For Data And AI
如果无法正常显示,请先停止浏览器的去广告插件。
1. An open-source programming language for
Data & AI
William Zhu
2021.12
2. Agenda
u 落地 Data & AI 的痛点
u Byzer 语言介绍
u Byzer 语言技术原理与能力展示
u Byzer 生产案例
u 预告
3. 企业落地 Data + AI 所面临的痛点
u
ROI 低
u
缺少ML专家
企业发现落地一个算法到具体 企业愿意花钱,但依然难以构
的某个场景的成本远高于其带 建完整平台和招募到足够的研
来的收益 发和数据科学家
Bene
fi
u
机器学习实操困难
u
部署困难
模型和场景难结合 复杂性以适应生产规模
需要大量的探索和测试 难以维护部署,工作流程重复
t
Cost
© Kyligence Inc. 2021, Confidential.
4. 数据工程师落地 Data + AI 所面临的痛点
数据处理链路过长
1.使用SQL做一些数据预处理 6. 使用调度连接组件任务
2.PySpark进一步处理数据 3. 使用机器学习库进行训练
5. 模型迭代
4. 复杂的模型部署
© Kyligence Inc. 2021, Confidential.
5. 数据工程师落地 Data + AI 所面临的痛点
数据流转、管控、运维复杂
u 数据需要在各个组件流转
u 数据格式,形态都不一致
u 多次落盘,产生大量临时数据
数据流转
权限管控
u 各个地方都需要权限管控
u 容易产生漏洞,且管理繁琐
u 各系统的能力不一致
算法落地
均长:
>1周
u 需要复杂的调度,运维系统
u 系统割裂,维护成本高
u 组件太多,资源难以利用均衡
部署运维
技术门槛
u 使用者需要学习各个系统
u 研发需掌握各类技术栈
u 培训、交接困难
© Kyligence Inc. 2021, Confidential.
6. 如何真正提高效率来落地数据平台和 AI 工程化?
u 开发一个更强大易用的框架?
u 依托公有云提供的托管服务?
u 招聘高水平的研发团队?
我们认为提高效率,一定要从编程语言层面进行革新
u 声明式融合命令式语言,易于上手又不失灵活
u 云原生设计,充分利用云上算力和便宜的存储
u 一套语言,一个引擎覆盖数据处理和机器学习,开箱即用
© Kyligence Inc. 2021, Confidential.
7. Agenda
u 落地 Data & AI 的痛点
u Byzer 语言介绍
u Byzer 语言技术原理与能力展示
u Byzer 生产案例
u 预告
8. Byzer(Former MLSQL)
A low-code open-source programming language for data pipeline, analytics and AI
u Everything is a table
u SQL-Like Language
u Built-In Algorithms And Plugins
u Customizable, Simple And Powerful
u Distributed Execution Engine
https://github.com/byzer-org/byzer-lang
© Kyligence Inc. 2021, Confidential.
9. Byzer 几大特性
多数据源无缝对接 u 统一语言
u 虚拟表串联数据流 u 统一权限
u 支持模型的批,流, u 统一资源
u u 统一管理
万物皆表
统一
API的一键部署
u 对底层数据源无侵入性 u 插件内核(一切皆可插件)
u 支持语言层语法权限控制 u 标准库支持
u 支持表,行列级别权限控制 u 支持Python
u 表级别权限可秒级校验 u 支持使用自定义UDF(Scala/Java)
数据安全
高度可扩展
© Kyligence Inc. 2021, Confidential.
10. Byzer 常用语法介绍
u 数据加载 / Load
u 数据转换 / Select
u 保存数据 / Save
u AI 扩展 / Train | Run | Predict
u 注册函数,模型 / Register
u 变量设置 / Set
u 宏函数 / !Macro Function
u 代码引入 / Include
u SQL 分支语句 / If | Else
© Kyligence Inc. 2021, Confidential.
11. Byzer 常用语法介绍
路径或者库表
数据格式/名称
•
数据加载 / Load
表名
•
数据转换 / Select
表名
原表
新表
© Kyligence Inc. 2021, Confidential.
12. Byzer 常用语法介绍
•
数据保存 / Save
表名
路径或者库表
原表
数据格式/名称
文本类型变量
•
变量设置 / Set
变量在 Select 语句中的使用
© Kyligence Inc. 2021, Confidential.
13. Byzer 常用语法介绍
函数名
位置参数1
!调用函数
•
位置参数 2
宏函数 / Macro Function
函数名
命名参数 1
命名参数 2
!调用函数
© Kyligence Inc. 2021, Confidential.
14. Byzer 常用语法介绍
SQL 类型变量
•
分支 / !If | !else
宏函数,条件表达式
© Kyligence Inc. 2021, Confidential.
15. Byzer 常用语法介绍
函数名
•
注册函数,模型 / Register
Scala / Java 代码
UDF 类型: udf / udaf
Select 句式中直接使用
© Kyligence Inc. 2021, Confidential.
16. Byzer 常用语法介绍
•
代码复用 / Include
第三方库地址
库别名
项目内脚本地址
包引入(hello 函数)
libCore 库的 hello 函数
项目内引用
引用第三方库
© Kyligence Inc. 2021, Confidential.
17. Byzer 常用语法介绍
• 扩展 / Train | Run | Predict
训练数据集
指定算法
模型保存目录
模型转函数
训练
预测
算法应用于 Select句式中
© Kyligence Inc. 2021, Confidential.
18. Byzer 常用语法介绍
输入表
结果表
获取输入表数据
•
Python 支持
构建输出表
使用Python输出
© Kyligence Inc. 2021, Confidential.
19. Byzer 常用语法介绍
插件名称
•
插件 / Extension
随装随用
© Kyligence Inc. 2021, Confidential.
20. Agenda
u 落地 Data & AI 的痛点
u Byzer 语言介绍
u Byzer 语言技术原理与能力展示
u Byzer 生产案例
u 预告
21. Byzer Architecture
Byzer Interface Layer 接口
层
LSP
Byzer Lang 语言生态
JDBC protocol
HTTP protocol
CLI
Byzer Grammar (SQL-like & Macro Function)
Byzer Libs
Byzer Extension Github as Package Manager
Preprocess/Parser Code Gen
(java/scala/python/sql)
Byzer Interpreter 解释器
Lexical Analysis
Byzer Runtime 执行引擎
Spark/Ray as runtime
Native Extension
Impl by Java/Scala
© Kyligence Inc. 2021, Confidential.
22. Byzer -功能架构
Byzer
核心组件
Byzer 语法
语言简化
数据处理
多租户
宏函数
变量
Mysql
数据源
MongoDB
权限
弹性资源
Include
Python支持
逻辑运算
Oracle
ElasticSearch
Spark SQL
Neo4j
Kafka
任务管理
UDF / UDAF
Hbase
预处理模板语法
ET(自定义计算)
Hive
Delta / Hudi
插件管理
流计算
Parquet
HDFS
File
机器学习
数据源
接入接口
© Kyligence Inc. 2021, Confidential.
23. 云原生设计,轻松解锁算力限制
Byzer Desktop
Web
一行配置使用云端算力和存储:
engine.url=https://m1:9003
© Kyligence Inc. 2021, Confidential.
24. Byzer 能力展示
内置 ET 组件完成 ETL + 特征工程能力
• 内置大量 SQL 特征函数,如 vec_dense等
• 提供了很多 ET 插件
© Kyligence Inc. 2021, Confidential.
25. Byzer 能力展示
利用 Byzer 进行分布式机器学习训练
•
AutoML 支持
© Kyligence Inc. 2021, Confidential.
26. Byzer 能力展示
一站式模型发布与部署
© Kyligence Inc. 2021, Confidential.
27. Byzer 能力展示
访问 Rest 接口验证模型
© Kyligence Inc. 2021, Confidential.
28. Byzer-python 实现 Data & AI 的融合
特征工程
1.
Byzer-python 可以无缝获取
Byzer 中的任何视图
2.
Byzer-python 处理完后,重新输
出成表供后续 Byzer 代码使用
3. 无中间存储
4. Byzer-python 可以实现 GPU 硬件
感知,实现环境隔离
© Kyligence Inc. 2021, Confidential.
29. Byzer-python 实现 Data & AI 的融合
模型训练
通过 Byzer-python 读取任意 Byzer 表
通过 Byzer-python 返回 [文件目录] 表
通过 Byzer 把模型保存到数据湖
© Kyligence Inc. 2021, Confidential.
30. Byzer-python 实现 Data & AI 的融合
模型部署
Byzer 支持将 Python模型注册成UDF
UDF 可以直接应用于 批,流 API 中
© Kyligence Inc. 2021, Confidential.
31. Agenda
u 落地 Data & AI 的痛点
u Byzer 语言介绍
u Byzer 语言技术原理与能力展示
u Byzer 生产案例
u 预告
32. 案例 – 某消费金融公司落地数据平台案例
业务背景
技术挑战
u 金融行业,主营业务为个人消费贷 u 数据平台架构设计复杂,扩展性差
u 数据安全监管严格,安全合规投入大 u 技术栈混杂,开发迭代慢,上线流程繁琐
u 受政策强影响,业务调整频繁,人员流动快 u 权限管控依赖人工配置,易出错
u 业务需求量巨大,紧急需求多 u 计算资源无法合理分配,高浪费
u IT 团队和设施投入少,人员缩编 u 研发人员流动无法支撑数据平台架构
© Kyligence Inc. 2021, Confidential.
33. 案例 –某消费金融公司落地数据平台案例
使用 Byzer 完成大数据中心平台的迁移和升级
u 使用 Byzer 在语言层面统一技术栈和架构
u 生产环境稳定运行三年多
u 累计执行的数据处理任务 700 万次
u 单日执行的调度任务超过 4000 个
u 平台服务用户日活 50+
u 只投入了2人的研发团队
2 人研发团队支撑生产环境的开发和运维
© Kyligence Inc. 2021, Confidential.
34. 案例 2-厦门某信息公司
Before
After
效率提升 15 倍
痛点
收益
• 搞定一个模型需要 2周 + • 4人一月支撑30个模型,500+ 任务
• 无法满足复杂的数据处理, 如异构 Join • 同时满足数据处理 & 机器学习需求
• 必须现场服务器开发 • Byzer 支持现场、远程开发部署
© Kyligence Inc. 2021, Confidential.
35. Agenda
u 落地 Data & AI 的痛点
u Byzer 语言介绍
u Byzer 语言技术原理与能力展示
u Byzer 生产案例
u 预告
36. 预告
Byzer Org 白泽社区将在 12.21(冬至)正式开源
u 前身为 MLSQL 社区,核心是 Byzer-lang
u 面向 Data & AI,围绕 Byzer 打造技术生态
u 旨在释放分析师、工程师、运维人员的生产力
u 帮助用户以低成本、高效率的方式落地数据平
台和完成 AI 工程化
u
https://github.com/byzer-org
© Kyligence Inc. 2021, Confidential.
37. 联系我们
Kyligence Inc
Byzer Org
u http://kyligence.io u https://github.com/byzer-org
u info@kyligence.io u hailin.zhu@kyligence.io
u Twitter: @Kyligence
© Kyligence Inc. 2021, Confidential.
38. © Kyligence Inc. 2021, Confidential.