究竟都是谁在使用?OpenMLDB 落地案例大起底

news/2024/5/19 10:54:47/文章来源:https://blog.csdn.net/weixin_48409843/article/details/126977265

本文整理自第四范式资深架构师、OpenMLDB PMC 卢冕在第四范式技术日「高效落地的AI开源生态」分论坛的主题分享——《开源机器学习数据库 OpenMLDB:提供线上线下一致的生产特征平台》。内容包括:

  • 感恩 OpenMLDB 贡献者
  • OpenMLDB 发展历程
  • OpenMLDB 架构设计
  • 0.6.0 最新版本讲解
  • 落地案例分享

Image

欢迎大家来到第四范式技术日,今天我分享的主题是《开源机器学习数据库 OpenMLDB:提供线上线下一致的生产特征平台》,我是来自第四范式的资深架构师,OpenMLDB PMC 卢冕。

感恩贡献者

正好是 OpenMLDB 开源大概一周年左右,所以我今天先趁这个机会来感谢一下我们 OpenMLDB 社区贡献者。

Image

左下的曲线图是 OpenMLDB 开源一周年以来的社区贡献者的增长曲线图,我们可以看到到今天为止 OpenMLDB 一共有一百多位贡献者,开源贡献者数量呈现一个比较平稳的上涨趋势。左边的头像以及右边的词云图其实是我们 OpenMLDB Github 社区上贡献者的头像以及 Github ID。

今天,趁此机会我在这里感谢百位 OpenMLDB 社区的贡献者。如果没有这些社区贡献者,OpenMLDB 社区不会取得这样茁壮的成长。

发展历程

接着,我也借这个机会来回顾一下 OpenMLDB 的发展历程,OpenMLDB 是在去年 6 月份正式开源。所以到今天为止,OpenMLDB 作为一个开源项目成长了一年多,在开源社区它还是一个非常年轻的项目。

Image

但是在开源前,OpenMLDB 已经跟随第四范式的商业化平台“先知”在很多客户中得到部署,落地超过一百多个场景。其实早在 2017年 OpenMLDB 就开始了代码技术的累积,所以虽然 OpenMLDB 才开源一周年,但是已经拥有四五年的技术积累。

开源以后,OpenMLDB 也取得了很多成绩。首先自开源到今天它一共迭代了六个版本,每个版本都有不同的新功能加入。

在去年 8 月份,基于 OpenMLDB 的优化创新论文在国际顶级的数据库学术会议 VLDB 上发表。

去年 9 月份我们有第一个开源企业用户 Akulaku,这是一家以印尼为主要市场的线上金融公司。

在过去一年里,我们通过社区收获到了非常多的用户反馈。来自 Akulaku、京东科技,以及一些传统行业的企业用户都给了 OpenMLDB 很多关注和支持,他们的意见对我们来说非常宝贵。

关于 OpenMLDB

OpenMLDB 在端到端的机器学习流程当中提供了一个线上线下一致性的实时特征计算平台。

Image

上图显示一个典型的机器学习的全流程,包括从离线开发一直到线上服务以及其他信息载体从数据到特征到模型的一个流动变化过程,而OpenMLDB 专注于中间的这一特征平台部分,给上下游去提供实时的特征计算能力。

OpenMLDB 需求场景

Image

那为什么 OpenMLDB 会强调毫秒级实时特征计算的重要性?因为我们看到今天只有这种毫秒级的硬实时计算才能够真正满足 AI 的需求,能够最大化地实现实时决策业务效果。

刚刚所说的实时计算主要有两方面的维度,一方面是我们需要使用最新鲜的实时的数据,比如过去一分钟或者几分钟访问点击的这个模式;另一个方面的实时计算是需要在非常短的时间去做实时响应。

我们今天看到在市面上确实也是有很多做批量计算和流式计算的计算框架,但它们都没有真正满足 AI 硬实时毫秒级的需求。与之对应的是毫秒级的需求非常常见,在诸如 AI 的无人车、反欺诈场景等应用中都有迫切的需要,比方说右侧表格列举的某银行事中反欺诈场景需要二十毫秒非常高速地的实时特征计算来业务需求。

OpenMLDB 架构设计

当没有 OpenMLDB 时,想开发一个满足实时计算,同时满足线上线下一致性的系统,应该如何做呢?我们看到很多企业的流程是这样的:

Image

首先他们会有一套离线开发的流程,就是数据科学家用他们特定的算法的知识去构建一个离线特征计算的脚本,数据科学家的任务是去构建一个模型精度能够达到业务实践需求的脚本,他们通常会用 Python 或者 SparkSQL 来完成,而这个脚本是不能直接实时上线,做到实时计算的。

所以这个时候一般会有工程化团队介入,把数据科学家的离线特征计算脚本转化成用 Database 或者 C++ 等高性能的方式去满足线上低延迟、高并发以及高可用的工程化需求。在这个流程当中,做完离线开发的线上服务后还有一个非常重要的工作叫做计算逻辑的一致性校验,它往往会耗费大量的人力去做沟通,去做反复地迭代、测试、开发。

根据第四范式以前的经验,如果基于这套流程,中间的一致性校验可能会花费数月的时间导致 AI 场景的落地成本剧增。

这个问题,OpenMLDB是怎么解决的呢?右边这张图显示了 OpenMLDB 比较简要的关键架构。

Image

我们可以看到首先 OpenMLDB 对外暴露了一个唯一的一个编程语言就 SQL。

OpenMLDB 内部还有两套处理引擎,一套专门负责批处理的引擎,是基于 Spark 做了源代码级别优化、针对特征计算场景提升性能的引擎。第二套是实时 SQL 引擎,是 OpenMLDB 团队自研的时序数据库,也是整个 OpenMLDB 保证毫秒级实时特征计算的核心引擎。

基于这两个离线引擎和在线引擎之间,我们会有一个一致性的执行计划生成器,保证它们生成的执行计划是一致的,天然保障了线上线下的一致性。

基于这么一套引擎系统,我们可以达到最终开发即上线的目的。数据科学家使用批处理的 SQL 引擎,去写批处理的特征计算脚本做离线的开发,开发后可以通过一个命令直接把 SQL 脚本一键上线,此时整个 OpenMLDB 的计算模式就会从线下切换到线上,这个时候我们再去接入这个实时数据,就能完成开发上线。

所以大家看到基于这么一套引擎,我们在整个流程当中只需要数据科学家把 SQL 脚本写好,通过一键上线就能做到上线服务,不再需要工程化团队优化,也不再需要人为完成逻辑校验,可以节省大量的 AI 落地成本。所以简单回顾一下 OpenMLDB 的核心特性就是做一个线上线下的特征计算一致去提供一个非常高效的毫秒级的实时特征计算能力。

Image

OpenMLDB 作为一个开源软件,也做了很多上下游生态的整合。OpenMLDB 内部的离线引擎本身就是基于 Spark,而线上引擎方面我们提供了两种模式,一种是基于内存的引擎这种能提供毫秒级计算的模式,另外一种模式面向对于成本比较敏感的用户,他们可以使用基于 RockDB 基于第三方存储引擎的这么一种模式,达到降低成本的效果。

Image

对于上游来说,OpenMLDB 也对接了很多在线的数据源,像 Kafka,像 Pulsar,能够更加方便把实时数据记录。离线的数据源目前主要是 HDFS、S3,后面也会做进一步扩展。对于下游来说,模型这一块目前主要是一个松耦合的对接方式,主要还是输出一些标准文件格式,使它们可以被后面 ModelOps 的软件所读取。

在部署和监控这一块,我们其实也做了很多第三方软件整合,比如在部署这一块我们跟 Airflow、Dolphinscheduler、Byzer 做了一些整合,监控也基于 Prometheus 和 Grafana 去做。

这里可以给大家简单看一下 OpenMLDB 和 Dolphinscheduler 整合界面,可以看到在这里的话我们已经把 OpenMLDB 作为一个算子整合在 Dolphinscheduler 里面,大家可以通过拖拉拽做非常简单的配置,比如任务的优先级,线上线下模式。这里就有一个非常典型的脚本,通过拖拉拽的形式,我们就可以方便地搭建 AI 整个流程。这张图显示了一个非常典型的流程,就是通过创建表导入数据,做离线特征抽取,我们去做模型的训练,这个时候会有一步验证的流程,如果模型训练成功就会直接切换到模型部署,否则就会输出一个报告。基于 Dolphinscheduler 加 OpenMLDB 就可以非常方便地做到这一个非常典型的从训练到部署的一个流程。

最新升级

接下来的时间我来为大家介绍一下 OpenMLDB 最新发布的 0.6.0版本,在这个版本里面我们集合了非常多来自社区的反馈意见,着重提升了 OpenMLDB 的可运维性和稳定性。

Image

因为 OpenMLDB 运维相对复杂的,所以最新版本里提供了一个全新的智能诊断工具,能够方便用户自己去排查。另一方面我们也提供了一些功能性的增强,以及修复了比较多的 bug,解决了一些稳定性问题。在生态合作方面,OpenMLDB 与 Airflow 完成了整合。希望这个版本的 OpenMLDB 可以达到比较稳定的状态并且可运维性得到较大的提升。

Image

左侧的截图可以看出,最新版会提供一些诊断工具来帮忙判断当前 OpenMLDB 的状态,如果存在问题的话,诊断工具会把相关信息抓取出来,同时建议用户做相应操作完成简单的修复尝试。右侧的截图是 OpenMLDB 和 Airflow 整合的 Provider,就是用户可以在 Airflow 里调用 OpenMLDB 去做编排调度。

客户案例

最后要和大家着重介绍的是 OpenMLDB 过去一年来落地的客户案例。

Akulaku

首先要提到我们第一个社区用户——Akulaku,这是一家主攻印尼市场的线上金融科技公司。

Image

Akulaku 在整体架构里构建了一个智能计算平台,可以看到在它的智能计算平台里最上层是智能应用,大部分应用都与风控、反欺诈有关,而下面两层是 Akulaku 的底层技术架构层,OpenMLDB 的线引擎部署在模型计算层,离线引擎部署在特征计算层,提供特征计算。

Image

Akulaku 的需求跟 OpenMLDB 的特性非常吻合,在线上时需要做低延迟、高时效性的计算尽可能反映实时数据的变更,所以需要 OpenMLDB 使用实时数据去做实时的计算;线下它则要去做高吞吐的数据分析,最重要的保证线上线下部署的逻辑完全一致。这个与OpenMLDB 提供的线上线下一致性相契合,所以 Akulaku 最终使用 OpenMLDB 的解决方案,使用 SQL 作为离线和在线的桥梁,实现了一天内处理近 10 亿条定单数据的需要,能做到及时的更新,去做时间窗口实时滑动计算,达到4毫秒的延迟。

某银行——事中反欺诈

第二个案例有关某银行事中交易的风控系统。OpenMLDB 在风控系统架构中衔接了实时特征计算和批处理的特征计算,把两边的线上模块和自学习模块做了连接,保证两边线上线下的一致性。

Image

在这个案例里,银行方对特征计算模块的性能要求非常高,为了应对如今有数目繁多的欺诈手段,他们需要非常快速地做出高效的实时响应,银行的需求是要在 20 毫秒内走完特征计算流程。然而不管是基于行方传统的规则系统,还是客户自研的系统,都无法达到这一个严苛的要求,最后他们使用 OpenMLDB 的方案,依托分布式可扩展的在线预估能力,能够最终达到小于 20 毫秒的实时特征计算。

某国家级科研机构——计算海量数据特征

第三个案例是某国家级的科研单位使用 OpenMLDB 在 IOT 场景里做数据的处理。

Image

在某科研单位的应用场景里,多个设备的实时数据流是通过 Pulsar 导入到 OpenMLDB,OpenMLDB 以在线数据库的模式去做实时在线计算,同时在应用模块里面会不断请求实时计算一场波形的数据。因为数据来自三万个检测设备,每个设备又会每秒产生一百个数据点,所以客户的需求是数据写入需要达到 QPS 三百万的数级。在应用侧,查询计算每十秒就会发送不同设备的数据,请求进行多个窗口的边缘计算,所以计算请求的性能要求大概是 QPS 3000。基于OpenMLDB 的方案,我们只需要使用一台服务器就可以在不考虑高可用的情况下满足数据保存占用内存 50GP,一台服务器就可以满足整体的容量和智能需求,去提供实时 IOT 的数据处理和计算能力。

某金融服务机构——智能运维场景

这张图显示的是某金融服务机构的智能运维场景。

Image

在这个案例中有很多业务系统的监控指标。客户是通过 Kafka 把数据灌到一个实时数据特征平台,在特征计算平台里面做模型推理,再把这个预测结果放到规则决策的系统里,最后决定决策结果是否要报警给运维人员。

行方原来的方案是基于整体做了特征计算,随着业务的扩展,他们希望实现业务的十倍扩容,在原来的方案里面实现十倍扩容,机器也需要实现十倍增长,成本非常高的,所以最后他们使用了基于 OpenMLDB 的升级方案。升级方案是把 OpenMLDB 作为特征计算平台替代原来的 Redis 方案,升级之后 CPU 的资源消耗和内存使用上都有 2 到 3 倍的优化,进而实现扩容成本 50% 的下降,就是说只需要做五倍的机器扩容就可以实现业务的十倍扩容目标,大大降低了资源成本。

某互联网科技公司——实时风控场景

接下来的案例来自于某互联网科技公司。

Image

该公司的需求场景也是实时风控场景。客户原先的实时风控场景同样使用了基于 Redis 方案,辅助一些自研脚本来完成实时特征计算。但是随着业务升级,客户发现原来这套方案在实时计算的反应速度上无法达到需求,计算延迟较高,于是客户选择使用 OpenMLDB 的升级方案,最终使用 OpenMLDB 去替代 Redis,资源利用率获得显著提升,实现了毫秒级实时特征计算,轻松满足了他们的业务需求。

慕尚集团——智能营销平台

最后一个落地案例来自于 OpenMLDB 和慕尚集团的深度合作。慕尚集团是一家中国领先的、由新零售模式驱动的休闲时尚服饰和多品牌运营公司,2019年已经在港交所上市。

Image

随着业务的扩展,慕尚集团对数字化转型产生非常迫切的需求,而以前的营销平台是基于专家规则打造的,需要改造。结合慕尚集团的业务与需求,第四范式使用了 AutoX +OpenMLDB 共同构建了新的智能营销平台,并基于新营销平台搭建衍生出了适应多种场景 AI 应用,比如个性化推荐应用、广告精准投放应用、客户流失预警应用等等。

最后

最后我们也欢迎大家加入OpenMLDB的开源社区,和我们在技术方面或者案例方面做更多的互动交流。

谢谢大家,我今天的分享就到这里。

相关链接

OpenMLDB 官网

https://openmldb.ai/

OpenMLDB github 主页

https://github.com/4paradigm/OpenMLDB

Airflow 官网

https://airflow.apache.org/

Airflow github 主页

https://github.com/apache/airflow

OpenMLDB 微信交流群

Image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11595.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinForms时代结束,报表控件FastReport.NET开启FastReport.Core.Skia 时代!

要创建高质量的报告并将其正确导出为不同的格式(PDF、Word、Excel 等),必须使用图形引擎。从 .NET Framework 的最早版本开始,Microsoft 就将 GDI 及其包装器用作 System.Drawing 库的一部分。FastReport.NET长期以来一直使用相同…

第一篇文章 mybatis 综述

mybatis框架可以让程序员只需专注于写sql语句 框架就是半成品,将公共的部分固定下来,非公共的部分你自己开发就行 三层架构: 界面层Conttroller层:用来接收客户端的输入,调用业务逻辑层Service层,返回结果…

关于Facebook营销的十个常见问题,一次性讲清楚!

--- NO.1--- 为什么做Facebook营销? 作为全球最大的社交媒体,Facebook月活用户已达到了惊人的29亿,并且这个数据还在持续增长中,这意味着全球几乎一半人都会出现在Facebook上。很多企业对Facebook的关注点,也从是否做…

VMware Explore 大会发布重磅云上技术之外,VMware 有哪些前沿探索?

编辑 | 宋慧 出品 | CSDN 云计算 最近,VMware 举办了年度技术大会 VMware Explore,重磅发布了其在多云趋势下的多个技术产品组合,包含了云基础架构、云原生、网络与安全、远程混合办公等等。不过,在这些优势领域的产品之外&#…

系统架构与设计(1)- 权限系统的设计以及主流的五种权限模型

作者:码猿技术专栏来源:https://juejin.cn/post/7121977695197970463 ------------------------------------------------------------------- 这篇文章就来介绍一下权限系统的设计以及主流的五种权限模型。权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他…

阿里云国际站代理商:FFmpeg 处理音视频文件的常用方法

阿里云代理商(聚搜云)专业服务于阿里云ECS服务器采购、阿里云Ddos采购、阿里云waf采购、对象存储OSS、阿里云企业邮箱采购、阿里云国际站代理商、阿里云国际站充值、云安全中心(态势感知)、阿里云高可用云数据库RDS、web应用云waf…

YOLO系列目标检测算法-Scaled-YOLOv4

YOLO系列目标检测算法目录 YOLO系列目标检测算法总结对比YOLOv1YOLOv2YOLOv3YOLOv4 Scaled-YOLOv4- 文章链接 YOLOv5- 文章链接 YOLOv6- 文章链接 YOLOv7- 文章链接 本文总结: 提出一种网络缩放方法,使得基于CSP的YOLOv4可以上下伸缩,以适…

2019Linux系统教程189讲-08_基于LAMP架构部署商城系统

任务需求 1、任务具体要求 使用yum(dnf)工具一键部署LAMP环境 发布电商项目上线 ① 能够实现web界面注册会员账号 ② 能够实现web界面进行后台商品及会员的管理 2、项目选型 ㈠ PHPSHE商城系统概述 PHPSHE商城系统是将商品管理、品牌管理、规格管理、折扣管理、拼团管理、…

【Electron】常用小功能实现合集

一、前言 本篇主要介绍在electron项目开发过程中,一些实用小功能点的实现。比如设置开机自启动、只允许打开一个应用、设置electron项目基地为中文、获取当前的系统数据等等。 二、功能点 接下来咱们就逐一来说一说这些功能点是如何实现的。 1.设置应用开机自启…

MySQL索引结构B+树

数据结构图示例网站:Data Structure Visualization 索引数据结构: 二叉树 红黑树 Hash表 B-Tree B-Tree,特点:(每个节点都存储key和data,叶子节点指针为null) 1、叶节点具有相同的深度&#x…

y140.第八章 Servless和Knative从入门到精通 -- Serving及实践(四)

5.Serving及实践 5.1 Knative Serving工作模式 Serving的工作模式,上图从一个更大的全景图上了解Serving以及它与istio进行结合的时候它们的工作逻辑,Serving有4个关键组件,最关键的组件就是kservice,kservice本身会有两个非常重要的组件组成,一个叫做configuration也就是…

linux驱动_uart

linux uart驱动基础知识下面链接这篇文章写得很完备,我没必要再介绍了,就写目前项目的代码,方便以后重温。 Linux的tty架构及UART驱动详解 本项目驱动文件包括: /kernel/drivers/sstar/serial/ms_uart.c # 主要实现文件 /kerne…

HTML 头部

html 中 <head> 元素包含了所有的头部标签元素。在 <head> 元素中可以插入脚本(scripts)、样式文件(CSS)及各种 meta 信息。 一般来说&#xff0c;可以添加在头部区域的元素标签有&#xff1a;<title>、<style>、<meta>、<link>、<scri…

借助实例,轻松掌握 Makefile

实例1&#xff1a;hello world 编辑 Makefile all:echo "hello world"编译执行 $ make $ make all 结果输出 语法说明 echo 前面必须只有 TAB&#xff08;即你键盘上的 TAB键&#xff09;&#xff0c;且至少有一个 TAB&#xff0c;不能用空格代替。 实例2&#xff…

python相关知识的巩固-《python与量化投资从基础到实战》的python基础部分

python与量化投资从基础到实战数据格式numpypandasSciPy 插值 积分 优化 图像处理 特殊函数OLS 回归分析插值正态性检验凸优化matplotlib 绘图的始祖&#xff0c;适合绘制简单的统计图表。Seaborn 绘制美观的图表Scikit-Learn 机器学习常用的第三方模块决策树支持向量机朴素贝叶…

Flink SQL解析嵌套Json数据测试过程调研

一、背景 测试需求->流式计算->json嵌套类型数据&#xff0c;流式计算的流程是基于&#xff0c;将配置的任务&#xff0c;转化为flink sql&#xff0c;然后提交到集群上&#xff0c;执行计算任务的过程&#xff0c;所以&#xff0c;除基本功能测试以外&#xff0c;需要考…

前端单元测试---孤勇者级教程

《孤勇者》最近火爆的一塌糊涂&#xff0c;占领了小学生、甚至幼儿园&#xff0c;连我家2岁多的儿子尽然也会哼几句。虽然他以为这首歌是奥特曼的主题曲。 回到正题&#xff0c;现代前端项目的工程化、模板化日益壮大&#xff0c;各种类库框架层出不穷&#xff0c;整个行业俨然…

JavaScript日期库之date-fn.js

前言 用官网的话来说&#xff0c;date-fn.js 就是一个现代 JavaScript 日期实用程序库&#xff0c;date-fns 为在浏览器和 Node.js 中操作 JavaScript 日期提供了最全面、但最简单和一致的工具集。那实际用起来像它说的那么神奇呢&#xff0c;下面就一起来看看吧。 安装 安装的…

新的 WALLET 奖励倍数在 Ambire 上线,现在可以获得特殊福利!

Ambire 钱包奖励那些在以太坊上持续活跃的用户。 &#x1f4e3; 呼叫以太坊的铁杆粉丝&#xff01;我们专门为你们准备了最新的 $WALLET 奖励倍数来帮助你赚取更多的加密货币&#xff0c;前提是你已经保存好 Ambire 账户&#xff08;用于接收奖励&#xff09;。 听上去不错&…

Redis知识点总结-钊兵的笔记

简介 什么是Redis? redis是c语言开发的高性能的k-v形式的NoSQL型数据库&#xff0c;数据存储在内存中&#xff0c;诞生于意大利优点&#xff1a;存取速度快,官方称 读取速度会达到30万次每秒,写速度在10万次每秒,具体限制于硬件.缺点&#xff1a;对持久化支持不够良好,所以r…