《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink 在 B 站的多元化探索与实践(3)

《Apache Flink 案例集(2022版)》——3.机器学习——Bilibili-Flink  在 B 站的多元化探索与实践(2) https://developer.aliyun.com/article/1228229



3. AI on Flink

image.png


传统的机器学习链路里数据的传输、特征的计算以及模型的训练,都是离线处理的,存在两个大的问题:第一个是时效性低,模型和特征的更新周期基本是 t+1 天或者 t+1 小时,在追求时效性的场景下体验并不好。第二个是计算训练的效率很低,必须等天或小时的分区数据全部准备好之后才能开始特征计算和训练。全量分区数据导致计算和训练的压力大。


image.png

在实时技术成熟后,大部分模型训练流程都切换到实时架构上,数据传输、特征计算和训练都可以做到几乎实时,从全量变成了短时的小批量增量进行,训练的压力也大大减轻。同时由于实时对离线的兼容性,在很多场景比如特征回补上,也可以尝试使用 Flink 的流批一体进行落地。


image.png


上图是B站典型的机器学习链路图。从图上可以看出,样本数据生产特征的计算、模型的训练和效果的评估都大量实时化,中间也夹杂着少量离线过程,比如一些超长周期的特征计算。  


同时也可以看出,完整的业务的模型训练链路长,需要管理和维护大量的实时任务和离线任务。出现故障的时候,具体问题的定位也异常艰难。如何在整个机器学习的链路中同时管理号这么多实时和离线任务,并且让任务之间的协同和调度有序进行、高效运维,是B站一直在思考的问题。


image.png


因此B站引入了 Flink 生态下的 AIFlow 系统。AIFlow本身的定位就是做机器学习链路的管理,核心的机器计算引擎是 Flink,这和B站的诉求不谋而合。这套系统有三个主要的特性符合B站的业务需求。  


第一,流批的混合调度。在B站实际的业务生产上,一套完整的实时链路都会夹杂着实时和离线两种类型的任务。AIFlow 支持流批的混合调度,支持数据依赖与控制依赖,能够很好地支持B站现有的业务形态,并且未来在 Flink 流批一体方面也会有更多的发挥空间;


第二,元数据的管理,AIFlow 对所有数据和模型都支持版本管理。有了版本管理,各种实验效果和实验参数就都可追溯;


第三,开放的通知机制。整个链路中存在很多的外部系统节点,难以归纳到平台内部,但是通过通知机制,可以打通 AIFlow 内部节点与外部节点的依赖。整套系统的部署分为三部分,notification service、 meta service 以及 scheduler,扩展性也很好,B站在内部化的过程中实现了很多自己的扩展。


image.png

AIFlow 的构建使用 Python 进行描述,运行时会有可视化的节点展示,可以很方便地追踪各个节点的状态,运维也可以做到节点级的管理,不需要做整个链路级别的运维。


未来规划

在平台建设方面,B站希望融合 Yarn session 模式与 application 模式做 session 的复用,解决任务上线的资源申请效率问题。同时希望大 state 任务也能够在 session 的基础上复用本地的 state,启动时无需重新下载 state。  


同时希望能统一目前的 SQL 和 JAR 包两种模式,统一任务构建方式,让用户以更低的成本更多复杂的操作,平台也更方便管理。  


在增量生产方面,B站希望构建一套标准的数据组织布局优化,并且基于历史查询自动对数据做重布局优化,使用Data Skipping等技术实现计算加速。同时希望对批流存储进行融合,并赋能AI数据的标准化。  


在机器学习方面,B站希望整个系统借助Flink的批流一体能力支持实时离线两套运行模式,方便回补历史数据。同时希望可以实现特征多版本管理,并支持Alink原生训练,打通外部训练系统,实现全链路拉起。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
22天前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
522 13
Apache Flink 2.0-preview released
|
27天前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
61 3
|
1天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到实践
【10月更文挑战第35天】在这篇文章中,我们将深入探讨机器学习的世界。我们将从基础理论开始,然后逐步过渡到实际应用,最后通过代码示例来展示如何实现一个简单的机器学习模型。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和见解。
|
8天前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
1月前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
22 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
26天前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
37 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
1月前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。
|
1月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
37 3
|
1月前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
30 1
|
1月前
|
机器学习/深度学习 算法 PyTorch
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
55 1

相关产品

  • 实时计算 Flink版
  • 推荐镜像

    更多
    下一篇
    无影云桌面