OpeNMLDB加速企业上线智能化应用
如果无法正常显示,请先停止浏览器的去广告插件。
1. OpeNMLDB加速企业上线智能化应用
陈迪豪
OpenMLDB PMC,第四范式平台架构师
2022 年 6 月
第四范式(北京)技术有限公司|Copyright ©2021 4Paradigm All Rights Reserved.
2. About Me
陈迪豪
chendihao@4paradigm.com
-
-
-
-
第四范式平台架构师
开源项目 OpenMLDB 核心研发与 PMC 成员
开源项目 HBase / OpenStack / TVM 贡献者
目前专注于分布式计算存储系统以及AI应用
2
3. 目录
1. 人工智能工程化落地的数据和特征挑战
2. OpenMLDB:构建线上线下一致的生产级特征平台
3. OpenMLDB v0.5.2:性能、成本、易用性升级
3
4. 1. 人工智能工程化落地的数据和特征挑战
4
5. 正确、高效的 AI 数据和特征供给成为数据侧的新挑战
95%
时间精力花费在数据上
Source: How to Operationalize Machine
Learning and Data Science Projects,
Gartner
≠ AI
6. 机器学习应用从开发到上线全流程(MLOps)
离线开发
FeatureOps(特征) ModelOps(模型)
• 数据采集 • 离线特征计算 • 模型训练
• 数据存储 • 特征存储和共享 • 超参数调优
DataOps(数据)
线上服务
ModelOps(模型) FeatureOps(特征) DataOps(数据)
• 在线推理 • 实时特征计算 • 实时数据流接入
• 结果数据回流 • 特征服务 • 实时请求
ProductionOps
高可用、可扩缩容、平滑升级、实时监控
7. 应用背景:决策类场景基于时序数据的特征工程
- 面向结构化数据和决策类场景
- 处理时序数据
- 基于时间窗口的聚合函数
举例:针对 用户 A 的 一天内 的 交易总额
分组
时间窗口
聚合函数
8. 业务场景:满足生产级上线需求的实时推荐系统
实时行为数据
user date searching
小李 2022.1.15 洗衣机
+
交易数据库
商品数据库
用户数据库
实时特征计算
特征平台需求
user 过去三个月30-35岁顾客买的前
三畅销洗衣机 小李一小时内浏览过的
洗衣机平均价格 小李半小时内浏览过
的洗衣机优惠力度最
大的型号
小李 1. Samsung WW75TA046TE
2. Bosch WAJ20180SG
3. Panasonic NA-V11FX2LSG 3000 Bosch
WAJ20180SG
模型推理
ü 特征实时计算,满足延迟 < 20 ms
ü 线上模型精度符合业务需求
9. 特征计算开发到上线全生命周期
离线开发
Python/SparkSQL
离线特征抽取
离线特征
线下模型训练
数据科学家
计算逻辑
一致性校验
线上服务
Database/C++
工程化团队
实时特征抽取
实时特征
线上预估服务
特征计算平台
9
10. 线上线下不一致性可能的原因
工具能力的不一致性
需求沟通的认知差
离线开发
线上应用
Account Balance
线上应用 current “account balance”
离线开发 “account balance” as of yesterday
11. 线上线下一致性校验带来的高昂工程化落地成本
线下开发
两套 系统的开
发、运营
对
齐
两组 不同技能栈的
校
验
开发人员投入
线上服务
12. 特征平台工程化解决方案
1% 头部企业 非头部企业 拥抱开源
• 耗费上千小时 • 采购昂贵的 • OpenMLDB
自研构建平台
SaaS 工具和
服务
• 低成本、高效
的企业级解决
方案
13. 2. OpenMLDB:线上线下一致的生产级特征计算平台
13
14. 过往5年
MLDB → OpenMLDB
在 100+场景 落地,覆盖超过 300个节点
信用卡现金分期精准营销 贷前风险评分 营销获客 个性化推荐 反洗钱可疑交易智能识别
信用卡账户风险预警 合规额度决策 风险管理 投顾客户挖掘 信用卡申请反欺诈
欺诈养卡防控 理财个性化推荐 零售贷款反欺诈 历史客户激活 客户流失预警
网点流量预测 交易欺诈评分 现金分期个性化推荐 信用卡交易反欺诈 金融产品推荐
14
15. OpenMLDB 是一个开源机器学习数据库,提供线上线下一致的特征平台
开发即上线 三步骤
1. 线下 SQL 特征脚本开发
2. 一键部署上线
3. 接入实时请求数据流
15
16. 解决一个核心问题,提供一个核心特性
解决核心问题
线上线下一致性
核心特性
毫秒级实时特征计算
16
17. OpenMLDB 应用场景和使用方式
高
OpenMLDB 使用:已有特征脚
本,需求实时特征计算
离线引擎
☑ 在线引擎
线上线下一致性
OpenMLDB 使用:从离线开发
到实时线上计算的完整流程
☑ 离线引擎
☑ 在线引擎
☑ 线上线下一致性
OpenMLDB 使用:离线特征探
索,或者使用跑批进行推理预测
☑ 离线引擎
在线引擎
线上线下一致性
离线计算性能需求
高
18. 从离线开发到线上服务完整流程
Model training
1. Offline data
import
Offline
database
2. Offline feature
extraction
3. SQL
deployment
Offline Mode
4. Data import
for cold-start
5. Real-time
data streams
Online
database
6. Online data
preview (optional)
SQL
Online Mode
Real-time requests
Time window
Request Mode
7. Real-time
feature extraction
Real-time
features
Inference
18
19. OpenMLDB 上下游生态
* 自研组件
FeatureOps -
DataOps
ModelOps
Online Storage Engine Online SQL Engine
Online Data Sources
…
(external storage) (*built-in, in-mem)
Offline Data Sources
(*built-in)
Offline SQL Engine
…
(*OpenMLDB Spark Distribution)
=
…
ProductionOps
Deployment
DolphinScheduler
Monitoring
19
20. 产品特性一:线上线下一致性执行引擎
§ 统一的底层计算函数
§ 逻辑计划到物理计划的线上线
下执行模式自适应调整
线上线下一致性得到 天然保障
20
21. 产品特性二:高性能在线特征计算引擎
- 高性能双层跳表内存索引数据结构
- 混合优化策略:实时计算 + 预聚合技术
Double-layer skiplist
Pre-aggregate
21
22. 产品特性三:面向特征计算的优化的离线计算引擎
- 多窗口并行计算优化
- 数据倾斜计算优化
- SQL 语法扩展
- 针对特征计算优化的 Spark 发行版
Spark 3.0.0
OpenMLDB
22
23. 产品特性四:针对特征工程的 SQL 扩展
LAST JOIN
Fetch the latest record when matching multiple rows
WINDOW UNION
Window aggregation across two tables
23
24. 产品特性五:企业级特性支持
高可用
为大规模 企业级 应用而生
可无缝
多租户
扩缩容
已在 上百个 场景中实践落地
可平滑
云原生
升级
企业级
监控
24
25. 产品特性六:以 SQL 为核心的开发和管理体验
OpenMLDB CLI
离线特征计算
SQL 方案上线
线上请求
基于 SQL 和 CLI 的全流程开发体验
25
26. 拥抱前沿新硬件技术:基于持久内存的优化
持久内存(Persistent Memory):
提供低成本、大容量、可持久性的革命性内存技术
OpenMLDB 基于持久内存的优化:秒级恢复、更高性能、更低成本
研究成果:Cheng Chen, et al. Optimizing in-memory database
engine for AI-powered on-line decision augmentation using
persistent memory. VLDB 2021.
Reduce 58.4% of TCO
Reduce 99.7% of recovery time
Reduce 20% of tail latency
27. OpenMLDB 上下游生态
* 自研组件
FeatureOps -
DataOps
ModelOps
Online Storage Engine Online SQL Engine
Online Data Sources
…
(external storage) (*built-in, in-mem)
Offline Data Sources
(*built-in)
Offline SQL Engine
…
(*OpenMLDB Spark Distribution)
=
…
ProductionOps
Deployment
DolphinScheduler
Monitoring
27
28. OpenMLDB 案例 – 某银行事中反欺诈交易
事中交易风控系统架构图
银行要求毫秒级业务响应
卡核心
· 客户需求:响应时间20ms内、高准召率的事中反欺诈系统
下发授权前交易报文
实时风控应用
风控引擎
通过SDK调用推送
授权前交易流水
Kafka
解决方案 响应时间 准召率
传统规则系统 ~200ms 较差
PRM
订阅授权后
交易流水
客户自研系统
机器学习平台
授权后交易流水
API模块
数据对接模块
基于 OpenMLDB 方案
、
50ms 中等
<20ms 优等
人工核查结果数据
预处理
SQL
数据引入
SQL
批处理特征计算
实时特征计算
增量训练
模型预估
在线预估
模型缓存
模型预估
自学习
OpenMLDB 提供分布式、可扩展的在线预估服务快速响应能力,将毫秒
级变化作为特征入模
· 对接实时流计算引擎及消息队列
· 高性能实时时序数据抽取
· 实时交易闭环数据回写
· 实时高并发的读写分离支持
28
29. OpenMLDB 案例 – Akulaku 智能计算架构中的特征平台
智能应用
行为评分 团伙模型 地理位置标签 设备唯一ID 异常文本识别
反洗钱模型 风险设备标签 地址评分 智能客服 智能投顾
模型训练
模型计算层
特征计算层
微服务与容器管理
异构计算
调度
参数搜索与
优化
模型部署
微服务与容器管理
在线特征数据库 高性能存储
图数据库 离线特征数据库 流式计算引擎
分布式锁 离线计算引擎 高性能存储
知识推理引擎
知识图谱
推理组件 粗排组件
图数据库 召回组件
消息队列
场景驱动:OpenMLDB
29
30. OpenMLDB 对 10 亿条订单进行窗口特征计算,达到 4 毫秒延迟性能
特征计算环节难点
•
线上部署:低延迟,高
OpenMLDB 解决方案
•
时效性,尽可能反映数
据变更
•
基于 OpenMLDB 的业务实现
场景驱动:业务调用环节驱动,调用时计算 • 场景:近1天订单个数实时计算
结果,现用现算 • 数据量:10亿条订单数据/天
具体方案:1)使用PMem,空间换时间;2) • 需求:实时更新,时间窗口实时
滑动,存在复杂关联需求
• 线下分析:高吞吐量 使用SQL作为离线和在线的桥梁;3)在线
• 逻辑一致:线下分析和 基于时序数据库做时间滑窗
•
线上部署的逻辑需要完
全一致
资源占用:3 x 256G PMEM 三
节点集群
•
测试结果:4毫秒 延迟
30
31. 3. OpenMLDB v0.5.2:性能、成本、易用性增强
31
32. OpenMLDB发展历程
开源前
2017.02
2017.08
commit第一行代码
第一个金融客户
2021.6
OpenMLDB
正式宣布开源
2021
7月
0.2.0版本发布,支持RestAPI访问
2022
1月
,优化代码风格和注释
8月
OpenMLDB
基于 OpenMLDB 的优化创新论
第一次Meetup
文在国际顶级数据库学术会议
2019.09
2020.12
第一个零售客户
VLDB 2021 发表
获得Gitee认可,荣获GVP称号
落地超过100个场景
9月
0.4.0版本发布
5月
0.5.0版本 发布,支持
预聚合,UDF
第一个开源企业用户 Akulaku
荣获信通院“开源社区及开源项目”奖项
11月 0.3.0版本发布,支持单机模式
12月 OpenMLDB贡献者计划启动
举办国内首次Feature Store Meetup
32
33. OpenMLDB v0.5.2:性能升级
预聚合技术:显著提升长窗口性能
- 预聚合优化使得在长窗口查询下,无论延迟还是吞吐,性能都提升了 两个数量级
- 详细配置和结果参照官方发布的 第一版性能测试报告
34. OpenMLDB v0.5.2:成本降低
SQL
在线引擎提供基于内存和外存的两种存
储引擎选择
- 基于内存:低延迟、高并发;较高使用成本
è 提供毫秒级延迟响应
Real-Time SQL Engine
- 基于外存:对性能较不敏感;低成本使用落地
è 基于 SSD 的典型配置下成本可下降 75%
- 两种引擎上层业务代码无感知,零成本切换
Built-in
(DRAM)
RocksDB
(HDD/SSD)
Storage Engine
35. OpenMLDB v0.5.2:易用性增强
用户自定义函数(UDF)
- 目前支持 C/C++ UDF
- 支持 UDF 动态注册
- 方便使用者扩展计算逻辑,提升
应用覆盖范围
自定义函数开发 — OpenMLDB documentation
36. 感谢 OpenMLDB 的社区开发者
0.4.0 版本以来参与贡献的社区开发者(GitHub IDs):
HuilinWu2 keyu813 TanZiYen L-Y-L nautaa yabg-shuai666 zoyopei Leowner Ivyee17
jingchen2222 mangoGoForward wuxiaobai24 wuteek zjx1319 prashantpaidi Cupid0320
aimanfatima TheFu527 bxiiiiii yangcol 1korenn Manny-op shiyoubun kfiring KaidoWang
hezhaozhao-git johndinh391 Stevinson jasleon lwq20020127 zhouxh19 kutlayacar Liu-2001
37. OpenMLDB v0.6 Roadmap
重点关注易用性和可运维性
- 数据库状态自检和报告工具
- 查询调试和 tracing 工具
- 数据库性能分析和统计报告生成工具
- Flink connector
- 整合特征编码等相关算法
关注 v0.6.0 roadmap,参与需求讨论
https://github.com/4paradigm/OpenMLDB/issues/1519
38. 欢迎加入 OpenMLDB 开源社区
OpenMLDB 中文官网:https://openmldb.ai/
GitHub: https://github.com/4paradigm/OpenMLDB
WE ARE HIRING!
(Fulltime & Intern)
OpenMLDB 微信交流群
个人微信
38