0

0

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台

WBOY

WBOY

发布时间:2023-04-08 21:41:07

|

979人浏览过

|

来源于51CTO.COM

转载

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台

嘉宾:卢冕

整理:墨色

2022年8月6日-7日,​​AISummit 全球人工智能技术大会​​​如期举办。在会上,OpenMLDB 研发负责人第四范式系统架构师卢冕带来了主题演讲《开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台》,从人工智能工程化落地的数据和特征挑战、OpenMLDB线上线下一致的生产级特征计算平台、OpenMLDB v0.5:性能、成本、易用性增强,三个方面进行了分享。

现将演讲内容整理如下,希望对各位有所启发。

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

如今,据统计,在人工智能落地过程中有95%的时间都是花费在数据上。虽然市面上有诸如MySQL之类各种各样的数据工具,但它们远远没有解决人工智能落地的难题。因此,先来了解一下数据问题。

如果大家有参与过一些机器学习的应用开发,应该对MLOps印象深刻,如下图所示:

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台

其实,当下对MLOps并没有严格的学术定义,整体上可将其分成离线开发和线上服务两个流程。每个流程中信息的载体,从数据、特征,到模型,会经历三种不同的载体,从离线开发流程一直走到线上服务流程。

接下来我们聚焦中间特征流程这一部分,了解到底是如何解决所面临的挑战的。

应用背景:决策类场景基于时序数据的特征工程

人工智能发展到现在主要有两种应用分类,一类是感知类,比如大家熟悉的人脸识别等都是感知类的AI应用,基本上会基于DNN算法进行。另一类是决策类的AI场景,比如淘宝购物的个性化推荐。此外还有一些像风控场景、反欺诈场景等都是AI在决策类中使用非常广泛的应用场景。

因此,我们现在讲的应用背景主要是针对这种决策类场景,最大的一个特点在于它的数据是一个二维表格的结构化数据,并且还是一个时序数据。如下图所示,用户交易表上有一个“trans_time”,代表了每一条记录所发生的时间点,连起来就是一个时序数据。基于时序数据的特征工程,最常见的一种处理方式就是基于时间窗口的聚合函数。例如针对用户一天内的交易总额等,这是决策类场景中特征工程常见的操作。

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台

业务场景:满足生产级上线需求的实时推荐系统

当下,我们为什么要使用OpenMLDB?一个非常大的背景是要用真正的硬实时计算去满足AI需求。

什么是硬实时计算?它有两层含义,一层是指要用最新鲜的实时数据来达到最大的决策业务效果。比方要用过去10秒或1分钟内用户的点击行为来做决策业务,而不是过去一年或前年的数据。

另外很重要的一点是,做实时计算,用户一旦发出行为请求就需要在短时间内甚至是毫秒级去进行特征计算。

当前市面上有很多做批量计算/流式计算的产品,但还没有达到毫秒级的硬实时计算需求。

例如,如下图所示做一个满足生产级上线需求的实时推荐系统,用户小李做一个关键词为“洗衣机”的搜索,他需要在系统中把原始请求数据以及用户、商品、交易等信息数据合起来进行实时特征计算,然后产生一些更有意义的特征,即所谓的特征工程,产生特征的过程。比如系统会产生“过去三个月内某一年龄段顾客购买的前三畅销洗衣机”,这一类特征不需要强时效性,是基于较长历史数据进行计算的。但是,系统可能也会需要一些强时效性的数据,比如“过去一小时内/半小时内的浏览记录”等,系统得到新计算出来的特征后会给到模型进行推理。而这样的系统特征平台的需求主要有两个,一个是正确性,即线上线下特征计算一致性;另一个是高效性,即特征实时计算,延迟

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台

特征计算开发到上线全生命周期

在没有OpenMLDB方法论之前,大家主要使用如下图所示的流程进行特征计算开发。

首先要做一个场景,数据科学家会使用Python/SparkSQL工具做离线特征抽取。数据科学家的KPI就是去做符合精度的业务需求模型,当模型质量达标后任务也就完成了。而特征脚本上线以后所面临的工程化挑战,如低延迟、高并发、高可用等并不是科学家的管辖范畴。

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

为了让数据科学家写的Python脚本上线,需要工程化团队介入,他们要做的就是把数据科学家所做的离线脚本进行重构、优化,使用C++/Database做实时特征抽取服务。这满足了低延迟、高并发、高可用的一系列工程化的需求,从而使特征脚本真正上线去做线上服务。

这一流程非常昂贵,需要两组技能团队的介入,而且他们所使用的工具不一样。两组流程走下来,还需要做计算逻辑的一致性校验,即数据科学家所开发的特征脚本的计算逻辑要与最后实时特征抽取上线的逻辑完全一致。这一需求看似明确、简单,但在一致性校验过程当中会引入大量的沟通成本、测试成本以及迭代开发成本。根据以往经验,项目越大则一致性校验需要的时间越长,成本非常大。

一般来说,在一致性校验过程中线上线下不一致的原因主要在于开发工具不一致,比如科学家用的是Python,工程化团队用的是数据库,工具能力有差异就可能会出现功能的妥协、不一致;还有就是对数据的定义、算法的定义,以及认知有差距等。    

总而言之,基于传统两套流程的开发成本非常高昂,需要两组不同技能站的开发人员、两套系统的开发和运营,中间还要添加堆砌的校验、核对等。

而OpenMLDB提供了一个低成本开源解决方案。

OpenMLDB:线上线下一致的生产级特征计算平台

去年6月,OpenMLDB正式开源,是开源社区中的年轻项目,但已经在100多个场景中落地应用,覆盖超过300多个节点。

OpenMLDB是一个开源机器学习数据库,最主要功能是提供一个线上线下一致的特征平台。那么OpenMLDB是如何满足高性能和正确性的需求的?

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

如上图所示,首先OpenMLDB使用的唯一编程语言就是SQL,不再有两套工具链,不管是数据科学家还是开发人员,都使用SQL表述特征。

其次,在OpenMLDB内部分出两套引擎,一套是“批处理SQL引擎”,基于Spark++进行源代码级别的优化,提供了更高性能的计算方式,并做了语法扩充;另外一套是“实时SQL引擎”,这一套是我们团队自研的资源时序数据库,默认是一个基于内存的存储引擎的时序数据库。基于“实时SQL引擎”,我们才可以达到线上高效的毫秒级实时计算,同时也保证高可用、低延迟、高并发。

在这两套引擎之间还有一个重要的“一致性执行计划生成器”,目的是保证线上线下执行计划逻辑的一致性。有了它可以天然保证线上线下一致性而不再需要人工进行校对。

总而言之,基于此架构,我们的最终目的是达成“开发即上线”的优化目标,主要包括三个步骤:线下SQL特征脚本开发;一键部署上线;接入实时请求数据流。

可以看出,相较于之前两套流程、两套工具链、两套开发人员的投入,这一套引擎最大的优势是节省了大量工程化成本,即只要数据科学家用SQL开发特征脚本,不再需要工程化团队做第二轮优化,便可直接上线,也不再需要中间的线上线下一致性校验的人工操作,省下了大量时间和成本。

Sora
Sora

Sora是OpenAI发布的一种文生视频AI大模型,可以根据文本指令创建现实和富有想象力的场景。

下载

下图展示了OpenMLDB从离线开发到线上服务的完整流程:

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

总体来看,OpenMLDB解决了一个核心问题——机器学习线上线下一致性;提供了一个核心特性——毫秒级实时特征计算。这两点是OpenMLDB所提供的最核心价值。

因为OpenMLDB有线上线下两套引擎,所以应用方式也不尽相同。下图展示了我们的推荐方式,可供参考:

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

接下来介绍一下OpenMLDB中的一些核心组件或特性:

特性一,线上线下一致性执行引擎,基于统一的底层计算函数,逻辑计划到物理计划的线上线下执行模式自适应调整,从而使得线上线下一致性得到天然保证。

特性二,高性能在线特征计算引擎,包括高性能双层跳表内存索引数据结构;实时计算+预聚合技术的混合优化策略;提供内存/磁盘两种存储引擎,满足不同性能和成本需求。

特性三,面向特征计算的优化的离线计算引擎,包括多窗口并行计算优化;数据倾斜计算优化;SQL语法扩展;针对特征计算优化的Spark发行版等。这些都使得在性能方面相较社区版大幅提升。 

特性四,针对特征工程的SQL扩展。之前提到我们使用SQL做特征定义,但其实SQL并不是为特征计算设计的,所以在研究大量案例、累积使用经验以后,发现有必要对SQL语法做一些扩展,让它更好处理特征计算的场景。这里有两个比较重要的扩展,一个是LAST JOIN,另一个是比较常用的WINDOW UNION,具体如下图所示:

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

特性五,企业级特性支持。OpenMLDB作为一个分布式数据库,具有高可用、可无缝扩缩容、可平滑升级等特点,已经在很多企业案例中落地应用。

特性六,以SQL为核心的开发和管理,OpenMLDB还是一个数据库的管理,它与传统数据库较为相似,比如提供了CLI,那OpenMLDB就可以在整个CLI中实现整套流程,从离线特征计算、SQL方案上线到线上请求等,可以提供一个基于SQL和CLI的全流程开发体验。

另外,OpenMLDB目前已经开源,关于其上下游生态的扩展,如下图所示:

OpenMLDB 研发负责人第四范式系统架构师卢冕:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台 

OpenMLDB v0.5.0:性能、成本、易用性增强

接下来,介绍一下OpenMLDB v0.5的一个新版本,我们在三方面做了一些增强。

首先看一下OpenMLDB的发展历程。2021年6月,OpenMLDB开源,其实在这之前已经拥有了很多客户,并且从2017年就已经开始做第一行代码开发,技术的积累已有四五年的时间。   

在开源后一周年里,我们迭代了大概五个版本。相较于以往版本,v0.5.0具有以下几个显著特点:

性能升级,聚合技术能够显著提升长窗口性能。预聚合优化使得在长窗口查询下,无论延迟还是吞吐,性能都提升了两个数量级。

成本降低,从v0.5.0版本开始,在线引擎提供基于内存和外存的两种引擎选择。基于内存,低延迟、高并发;较高使用成本提供毫秒级延迟响应。基于外存,对性能较不敏感;低成本使用落地基于SSD的典型配置下成本可下降75%。两种引擎上层业务代码无感知,零成本切换。

易用性增强。我们在v0.5.0版本中引入了用户自定义函数(UDF),这意味着如果SQL不能满足你的特征抽取逻辑表达,支持用户自定义函数,比如C/C++ UDF、UDF动态注册等,方便用户扩展计算逻辑,提升应用覆盖范围。

最后,感谢各位OpenMLDB开发者,从开源开始已经有接近100位贡献者在我们社区做过代码贡献,同时,我们也欢迎更多的开发者可以加入社区,贡献自己的力量,一起做更有意义的事情。

大会演讲回放及PPT已上线,进入官网查看精彩内容。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.5万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号