《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 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
|
2月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
108 2
|
14天前
|
消息中间件 资源调度 API
Apache Flink 流批融合技术介绍
本文源自阿里云高级研发工程师周云峰在Apache Asia Community OverCode 2024的分享,内容涵盖从“流批一体”到“流批融合”的演进、技术解决方案及社区进展。流批一体已在API、算子和引擎层面实现统一,但用户仍需手动配置作业模式。流批融合旨在通过动态调整优化策略,自动适应不同场景需求。文章详细介绍了如何通过量化指标(如isProcessingBacklog和isInsertOnly)实现这一目标,并展示了针对不同场景的具体优化措施。此外,还概述了社区当前进展及未来规划,包括将优化方案推向Flink社区、动态调整算子流程结构等。
277 31
Apache Flink 流批融合技术介绍
|
27天前
|
机器学习/深度学习 人工智能 算法
利用机器学习预测股市趋势:一个实战案例
【9月更文挑战第5天】在这篇文章中,我们将探索如何使用机器学习技术来预测股市趋势。我们将通过一个简单的Python代码示例来演示如何实现这一目标。请注意,这只是一个入门级的示例,实际应用中可能需要更复杂的模型和更多的数据。
|
2月前
|
Java 微服务 Spring
驾驭复杂性:Spring Cloud在微服务构建中的决胜法则
【8月更文挑战第31天】Spring Cloud是在Spring Framework基础上打造的微服务解决方案,提供服务发现、配置管理、消息路由等功能,适用于构建复杂的微服务架构。本文介绍如何利用Spring Cloud搭建微服务,包括Eureka服务发现、Config Server配置管理和Zuul API网关等组件的配置与使用。通过Spring Cloud,可实现快速开发、自动化配置,并提升系统的伸缩性和容错性,尽管仍需面对分布式事务等挑战,但其强大的社区支持有助于解决问题。
42 0
|
2月前
|
机器学习/深度学习 存储 分布式计算
Hadoop与机器学习的融合:案例研究
【8月更文第28天】随着大数据技术的发展,Hadoop已经成为处理大规模数据集的重要工具。同时,机器学习作为一种数据分析方法,在各个领域都有着广泛的应用。本文将介绍如何利用Hadoop处理大规模数据集,并结合机器学习算法来挖掘有价值的信息。我们将通过一个具体的案例研究——基于用户行为数据预测用户留存率——来展开讨论。
77 0
|
2月前
|
消息中间件 Java 数据处理
揭秘Apache Flink的Exactly-Once神技:如何在数据流海中确保每条信息精准无误,不丢不重?
【8月更文挑战第26天】Apache Flink 是一款先进的流处理框架,其核心特性 Exactly-Once 语义保证了数据处理的精准无误。尤其在金融及电商等高要求场景下,该特性极为关键。本文深入解析 Flink 如何实现 Exactly-Once 语义:通过状态管理确保中间结果可靠存储;利用一致的检查点机制定期保存状态快照;以及通过精确的状态恢复避免数据重复处理或丢失。最后,提供一个 Java 示例,展示如何计算用户访问次数,并确保 Exactly-Once 语义的应用。
53 0
|
2月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
34 1
|
2月前
|
消息中间件 分布式计算 Hadoop
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
37 3
|
2月前
|
消息中间件 运维 Kafka
Apache Flink 实践问题之达到网卡的最大速度如何解决
Apache Flink 实践问题之达到网卡的最大速度如何解决
36 2

相关产品

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

    更多
    下一篇
    无影云桌面