0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于强化学习的自动码率调节算法的技术架构与实现要点

LiveVideoStack 来源:未知 作者:李倩 2018-08-02 17:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来自 爱奇艺 技术产品中心 资深工程师 王亚楠在LiveVideoStackCon 2018热身分享,并由LiveVideoStack整理而成。在分享中,王亚楠分别介绍了自动码率调节的实现过程、现行算法与评价标准,并重点介绍了基于强化学习的自动码率调节算法的技术架构与实现要点。

大家好,我是王亚楠,现在就职于爱奇艺终端网络部署,今天很高兴能在这个平台来跟大家讲述一下我们在爱奇艺做的一些很有意思的工作,这个工作主要就是我们基于强化学习做的自动码率调节。

今天的主要内容:

1.自适应码流

2.强化学习

3.基于强化学习的自动码率调节

今天的主要内容分三个方面,第一,介绍一下什么叫自适应码流,在自适应码流中我会着重介绍为什么要用自动码率调节。然后会给大家介绍一个很清晰的评价标准来衡量我们做的自动码率调节。第二,介绍强化学习,可能在座的大部分人对强化学习的了解应该不是很多。第三,基于强化学习的自动码率调节,在这里会简单介绍一下怎么样用强化学习来实现自动码率调节,自动码率调节现在已经有一些算法了,但这些算法都有自己的优势,当然也有自己的短处,那么为什么我们要用强化学习来做?以及我们在用强化学习做自动码率调节的时候,它应该是采用一种怎样的技术架构,以及有哪些要实现的技术要点?

1、关于我们

我们项目组是隶属于爱奇艺网络终端部的,爱奇艺目前是国内最大的长视频网络公司,仅在过去的一年,共增加两千八百多部的电视剧,以及一万多部的电影,移动端的月活动量达到6.1亿,PC端也达到了3.6亿,是除了微信和QQ之外,月活动量最多的一个应用。我们用户的网络环境和设备是千差万别的,网络环境主要分为三种, PC端主要用的是有线连接,手机端大多是的是WiFi,数据网络用的不是太多,除了这三种还有其他网络,比如连上一些其它的手机热点等等。爱奇艺的终端也包括很多种,现在最多的用户是手机用户,除了手机还有一些比较常见的如PAD和PC。另外,在中国的家庭里面,网络电视也是非常重要的一个方面。除此之外,还有一个特殊的应用——奇艺果,这是我们自己推出的一个很适合连接到网络电视上,可以将你手机上内容完全在电视上进行播放的一个工具,效果很好而且也很便宜。我们组一直致力于用技术手段为用户提供更清晰流畅的观看体验,下面为大家介绍的自适应码率调节就是提升观看体验的一种手段。

2、自适应码流

2.1 介绍自适应码流

用户在观看一个视频的时候,需要将视频内容从服务器上取到本地才能观看,在这个过程中因为用户的网络环境和设备千差万别,如何在一个复杂的环境中给用户提供一个清晰流畅的视频,自适应码流就是一个很好的解决办法。因为它可以根据用户的网络情况来为用户提供不同的码率节目,它能够更充分的利用用户的带宽,根据用户的带宽提供不同的码率节目,相比较于之前单一的码率节目,它所提供的节目会更清晰流畅。

自适应码流包括两个方面:

1)传输形式:HLS/DASH/Smooth Streaming

2)码率调节算法:ABR

HLS是苹果公司推出的一个传输协议,Smooth Streaming是微软推出的一个标准协议,DASH是大家目前用的最多的开源的传输形式。我们可以通过码率调节算法来确定如何通过用户的网络情况来提供不同码率,它整个流程是在节目生产的时候就会被编码为不同的码率,根据用户的不同情况,比如说在PC观看还是在手机观看,以及用户的网络情况不同,会给用户分发不同码率的节目,使得用户在观看的时候能够不卡且清晰度最高。

2.2 实现过程

同一个用户的带宽在不同的时间段是会有一定的波动的,如果我们为用户只提供单一码率的话,那在一部分时间之内会造成用户很大的带宽浪费,这样用户的观看体验并不是很好,在一定观看时间内,当带宽小于码率的时候,会造成用户观看的时候非常卡,而卡顿是对用户的观看体验影响最大的一个方面。

为了使用户观看时候能够流畅,自适应码流能够根据用户的不同的网络环境和不同的设备类型,在特定的时间段内来选择特定的码率,使得用户在观看的时候既能不卡,又能提供在他的网络环境所能容纳的最高的码率节目,这样用户观看下来就会比较清晰、流畅。

当在刚开播的时候用户的网络环境可能不太好,或者是Buffer中没有内容,这时先给他一个比较低的码率,当用户的网速起来之后,或者当它的Buffer慢慢的变多之后,我们会给他提供一个比较高的码率,这样的话,他可以切换到这样一个更高的码率,如果用户的网速变得更好,那么我们也可以给他提供更高清的码率,但是这个在切换的时候,我们会选择一定的时间点,这个时间点也就是我们在自适应码流中所称为的关键帧。那么我们如何根据用户的当前状态来确定下一个要播放码率呢?目前采用的几个通用的方面,主要是带宽,还有目前已经缓存了多少的数据,设备的类型,以及当前设备所能支持的码率。当协议确定之后,就要通过自适应码流的一个非常关键的技术,也就叫自适应码率调节来根据用户的网络环境来进行码率的调节。

2.3 现行自动码率调节算法

1)基于带宽的算法:FESTIVE

基于带宽的算法主要是通过用户前一段时间的网络变化,然后来预估后续可能的网络带宽,然后根据预估的带宽,来决定这个用户所适合的码率。

2)基于Buffer的算法:BOLA

基于Buffer是因为用户的网络环境的变化最终会体现到用户的Buffer中,也就是Buffer中缓存了多少数据,是受带宽的影响的,那么只要基于Buffer,也可以决定我下一个将要选择的码率。

3)综合考虑Buffer和带宽的算法:MPC

基于Buffer和带宽的算法,也就是把这两种因素综合考虑起来。

各自优缺点:

2.4 自动码率调节评价标准

在考虑能不能用一种新的算法之前,我们需要先决定,我们怎么样来评估我们做的这个自动码率调节,要评估它在什么情况下才算是好的,它的效果是可以接受的。现在评估主要是从三个方面:清晰度,流畅度,平滑度。

简单解释一下,清晰度就是用户直观看到的码率的清晰度,比如说是720P,还是1080P;另外,流畅度比较好理解,用户只要不卡,它的观看就是流畅的,如果它卡顿的话,卡的时间越长,那用户可能就更多的会不再看你这个视频了;再一个就是平滑度,如果你在非常频繁的切换的话,用户能够很清晰的感知到你这个切换过程,也是对用户的观看体验也是有个影响的。

我们的目标就是在尽量不产生卡顿的基础上能够最大化的尽量利用用户的带宽,同时尽量减少我们的切换次数。基于这样一个标准,我们形成了一个公式:

这个公式考虑到了刚才说的三个方面的纬度,当然也会加一些调节因子。再者就是我们如果想做上线的话,需要考虑的一个重要方面就是成本控制。因为我们提高QoS的最终目的,就是希望用户能够更长时间观看我们的视频,这样会为我们带来更高的收益,但是如果我们完全不考虑带宽来为用户提高更高的码率,我们整体的带宽的成本也会变得越来越高,这样可能导致我们所取得的收益可能并不足以覆盖所付出的成本,所以如果要上线的话,成本控制也是需要考虑的一个重要方面。在这个评估模型中,它其实有很多方面都没有考虑到,一个是没有考虑到卡顿的次数;另外一个,它并不是用户观看体验直接的体现,只是我们一个计算公式。

3、强化学习

强化学习目前是AI领域中运用非常广泛的一个技术,主要是在预测,就是做决策方面比较擅长。它主要包括两个部分,一个是Agent,即最终做决策的一个单位,另外一个就是Environment,这个环境也就是Agent所面临的所有输入。整个流程就是在每一步,Environment会给Agent一个输入,这个输入也就是状态。在Agent取得这个状态以后,会采取一定的动作。在采取这个动作之后,这个Agent会获得一定的奖励,也就是Reward,那这个Agent就会观察我现在的状态,我所采取的动作是什么,我所获得的Reward是什么,这样在经过一系列的训练之后,它能够使得我之后再采取一些动作的时候,我所能获得的奖励就是最高的,就是这样一个过程。

那么为什么要用强化学习完成自动码率调节呢?

因为强化学习所解决的问题就是马尔科夫过程的问题,ABS问题又正好是一个马尔科夫过程的问题,因为ABS其实是根据我们当前的状态来选择下一个码率,它和之前的状态都是不相关的。如果我们采用强化学习来做选择下一个码率,我们把带宽,Buffer,还有等等一些播放状态来当作我的状态,只需要把这些状态输入我的Agent,无需要对带宽进行预测了,而且我们现在的技术已经可以满足,提供一些数据后,强化学习自动训练,并且针对不同的场景可以使用不同模型,这样的话,也无需进行调参。

4、基于强化学习的自动码率调节

在做成基于强化学习的自动码率调节后首先需要考虑一个问题,即这个过程是放到客户端还是服务器端来做?

1) 客户端实现码率预测功能

架构非常简单,我们只要把这个模型训练好之后,拿到客户端来做,由客户端自己来决定下一个码率就好了。

2)服务器端实现码率预测功能

这就要实现一个BS架构,自动码率调节功能是由客户端和服务器端共同来做的,服务器端来决定选择哪个码率,然后将这个码率再发送给客户端。

另外一个问题,经过模型训练后,如何确定一个最优模型呢?

模型训练好了之后,需要进行一个评估,评估好了之后,我们会选择我们评估效果最好的那个模型来使用,在这个过程我们会选择用A/B Test的架构来选取最优模型。A/B Test的结果是确定最终模型的关键;C/S架构更适合做A/B Test,因为服务器端是可以很容易控制的,我们在CS这样一种架构上来做A/B Test是比较简单方便的。

下面来看一个实时多模型的A/B Test架构图:

客户端和服务器端进行沟通的时候,我们可以先经过一个算法的选择器,可以用一个服务器来做分发,来实现A/B Test以更好的评估训练出来的模型,在这个算法服务器后面,就是对应的一个一个的强化学习模型的服务器,通过一个算法分发器,就能够决定一个模型它所针对哪些用户。同时Selector也可以知道它所收集到的不同模型的数据是什么;然后通过这个A/B Test Selector服务器,将收集到的数据通过QoS Scorer服务器来进行最终的计算,这样就实现了一个A/B Test 的过程。

在利用A/B Test来评估最优模型的过程也会遇到很多的问题:

1)码率预测模型的选择

强化学习它有很多模型,因为码率预测它的状态是个连续的过程,所以我们选择DRL,DRL对连续的输入输出都会有一个比较好的结果。

2) 选择合理的训练方式

首先,训练数据的收集是需要客户端来投递的;其次是Reward的选择,因为强化学习一个很重要因素就是需要给它一个Reward,那Reward的选择会直接影响到后续训练出来模型的效果;再就是On-Policy还是Off-Policy的训练方式。

3)QoS评估

我们现在很常用的一些模型它没有考虑卡顿次数的因素,所以需要考虑这个;再就是我们会增加一些用户反馈的数据来直观的表现出用户是否喜欢我们这样给他做的自动码率调节,可能有的用户并不喜欢。

4)成本控制

我们需要考虑的非常清楚,我们为用户提供更清晰的视频,收益是否会大于支出。

5、Q&A

Q1:亚楠老师,有一位同学问到,请问你们这个是用在点播上的吗?有应用在直播吗?

A:我们现在是在点播上用,不过会计划部署到直播端,线上现在也是有用户在用,如果你是我们的灰度用户,你可能会观看到这样一个效果。最后的效果也是我刚才介绍的一部分,这里面会有一个评分,评分最高就是用强化学习来做自动码率调节的效果,相比于其他的得分是一些其他模型的得分,目前我们来看用强化学习来做这样的事情还是可以的,相对于强化学习来说,自动码率调节还算是一个非常简单的事情。

Q2:亚楠老师可以具体的说一下QoS的评分吗?

A:QoS评分我们现在会有很多种了,我现在翻到那页PPT,我们现在的QoS评分,目前这个QoS评分是我们做得一个Reward,我们最终在做,我刚才给的那一幅图上面,会加很多其他的因素,我这里的卡顿次数,还有用户观看的体验的这样一个得分,在这里定义的QoS是清晰度的得分,还有流畅度的得分,平滑度的得分,这三项结合到一起,然后我们自己调节的这样一个模型。

Q3:输出的码率是连续的吗?

A:输出码率是不连续的,因为自适应码率它的码率都是固定档位的,它会有几档之分,它不是连续的码率的。

Q4:在实战中有没有部署过mao的Pensieve,在相同的State&Action下,Performance是怎么样的?

A:这是个好问题,我们这个工作就是和mao合作的,一开始是我们和他合作的,他们希望能够用一些业界的数据来证明一下,那我们在做这个事情的时候,如果做研究的模型,直接拿出来用到我们线上的话,是有很多方面是需要进行改动的,调节的。那我们最开始的思想是借鉴的毛的这个Pensieve的一个思想,最后加入了很多我们的思考,以及针对我们在实际的工作中遇到的很多问题进行了解决。那基本思想就是Pensieve,我们是和他进行一个合作的。Performance,因为我们是在这个模型之上加入了很多我们自己的一些理解,还有一些其他因素这样做的,具体的performance数据数据可以关注我们后续的技术分享。

Q5:客户端集成模型,你们感觉它的性能是怎样的?

A:客户端集成模型我们也有评估,最终确定出来效果之后,我们觉得影响应该不会很大,特别是对PC端,当然对一些低端的安卓机可能会有一些影响,具体的一些低端的安卓机我们要不要用这样一种在客户端实现的方式,我们后面还需要继续评估。对于一些比较高端的安卓机,还有苹果机应该是没有什么影响。复杂度,看你怎么说,因为这样一个事情,除了网络和Buffer以外,就是一些我们所考虑到的,比如说成本的因素,等等这样一些因素,我们的维度是比较少的,并没有很多,所以它的复杂度也并不是很高,这样的话,对于我们的放到客户端来做,其实是有优势的。我们现在之所以会首先选择C/S架构,主要是为了先做A/B Test,做完A/B Test之后,我们能最终确定一个最优的一个模型。

Q6:比如卡顿比各播放码率分布在部署前后的变化,总带宽的变化,下载速度的统计等这些是怎样的?

A:卡顿比,这个数据都比较细了,我们可以说一下,首先是码率分布的话,码率的质量是有一个很明显的提升的,包括我们的720P和1080P的占比都会有一个非常明显的提升,相对应的卡顿比的变化倒不是很明显。我在这里之所以提高到,提了很多次这些成本控制,就是我们观测到,因为我们的清晰度,就是高码率的占比会比较大的时候,我的带宽的增长其实是非常大的,所以这个带宽的变化也是比较大的。下载速度,当然下载速度我们倒没有特意的去评估,因为我们觉得,我们从我们评估的角度来看,卡顿比如果没有增加的话,它的下载速度是能够支撑他在下载的码率。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4816

    浏览量

    98812
  • 强化学习
    +关注

    关注

    4

    文章

    275

    浏览量

    12013

原文标题:王亚楠:基于强化学习的自动码率调节

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在阿里云PAI平台的机器人感知强化学习规模化实践

    物理 AI 正在迅速从基础运动控制迈向更复杂的环境理解。传统机器人强化学习(RL)长期依赖本体感知(proprioception),包括关节角度、力矩反馈和内部状态,来训练灵巧的运动技能。
    的头像 发表于 05-18 10:34 374次阅读
    在阿里云PAI平台的机器人感知<b class='flag-5'>强化学习</b>规模化实践

    NVIDIA与Ineffable Intelligence合作打造强化学习基础设施

    我们正在共同构建能够解锁全新水平智能的强化学习基础设施。
    的头像 发表于 05-18 10:30 454次阅读

    Momenta R7强化学习世界模型实现量产首发

    等话题展开深度对话,正式宣布Momenta R7强化学习世界模型实现量产首发,标志着智能驾驶从“看见世界”到“理解世界”的全新跨越,物理AI正式从技术理念走向规模化量产落地。
    的头像 发表于 04-29 15:44 829次阅读

    Momenta R7强化学习世界模型助力上汽大众ID. ERA 9X正式上市

    2026年4月25日,上汽大众全新旗舰SUV ID. ERA 9X于2026北京国际汽车展览会期间正式上市,并将全球首发搭载Momenta R7强化学习世界模型。这意味着Momenta R7率先在全球强化学习+世界模型方向上取得量产突破——标志着物理AI上车。
    的头像 发表于 04-29 15:42 746次阅读

    上汽奥迪E5 Sportback车型升级搭载全新Momenta强化学习大模型

    近日,上汽奥迪宣布旗下 E5 Sportback 车型升级搭载 全新Momenta 强化学习大模型。
    的头像 发表于 04-09 09:33 331次阅读

    上汽大众ID. ERA 9X全球首发搭载Momenta R7强化学习世界模型

    3月30日,Momenta R7强化学习世界模型全球首发搭载车型——上汽大众ID. ERA 9X正式开启预售。
    的头像 发表于 03-31 13:48 514次阅读

    Momenta R6强化学习大模型上车东风日产NX8

    3月20日,东风日产NX8技术暨预售发布会在广州举办,官宣Momenta R6强化学习大模型正式上车东风日产新能源SUV——NX8。以全球顶级大厂合力,融合先锋科技力量,打造更适配全家出行的智能SUV,开启合资品牌智能化全新赛道。
    的头像 发表于 03-24 09:08 988次阅读

    Momenta强化学习大模型助力别克至境世家纯电版正式上市

    3月17日,别克至境世家纯电版正式上市,这是别克与Momenta强化学习大模型的又一次深度联手。融合别克在MPV市场深耕27年的技术积淀,以更从容的智慧驾控,重新定义豪华与自在的出行体验。
    的头像 发表于 03-18 15:48 418次阅读

    自动驾驶中常提的离线强化学习是什么?

    [首发于智驾最前沿微信公众号]在之前谈及自动驾驶模型学习时,详细聊过强化学习的作用,由于强化学习能让大模型通过交互学到策略,不需要固定的规则,从而给
    的头像 发表于 02-07 09:21 440次阅读
    <b class='flag-5'>自动</b>驾驶中常提的离线<b class='flag-5'>强化学习</b>是什么?

    强化学习会让自动驾驶模型学习更快吗?

    [首发于智驾最前沿微信公众号]在谈及自动驾驶大模型训练时,有的技术方案会采用模仿学习,而有些会采用强化学习。同样作为大模型的训练方式,强化学习
    的头像 发表于 01-31 09:34 942次阅读
    <b class='flag-5'>强化学习</b>会让<b class='flag-5'>自动</b>驾驶模型<b class='flag-5'>学习</b>更快吗?

    多智能体强化学习(MARL)核心概念与算法概览

    训练单个RL智能体的过程非常简单,那么我们现在换一个场景,同时训练五个智能体,而且每个都有自己的目标、只能看到部分信息,还能互相帮忙。这就是多智能体强化学习
    的头像 发表于 01-21 16:21 403次阅读
    多智能体<b class='flag-5'>强化学习</b>(MARL)核心概念与<b class='flag-5'>算法</b>概览

    如何训练好自动驾驶端到端模型?

    [首发于智驾最前沿微信公众号]最近有位小伙伴在后台留言提问:端到端算法是怎样训练的?是模仿学习强化学习和离线强化学习这三类吗?其实端到端(end-to-end)
    的头像 发表于 12-08 16:31 1687次阅读
    如何训练好<b class='flag-5'>自动</b>驾驶端到端模型?

    今日看点:智元推出真机强化学习;美国软件公司SAS退出中国市场

    智元推出真机强化学习,机器人训练周期从“数周”减至“数十分钟”   近日,智元机器人宣布其研发的真机强化学习技术,已在与龙旗科技合作的验证产线中成功落地。据介绍,此次落地的真机强化学习
    发表于 11-05 09:44 1203次阅读

    自动驾驶中常提的“强化学习”是个啥?

    [首发于智驾最前沿微信公众号]在谈及自动驾驶时,有些方案中会提到“强化学习(Reinforcement Learning,简称RL)”,强化学习是一类让机器通过试错来学会做决策的技术
    的头像 发表于 10-23 09:00 1014次阅读
    <b class='flag-5'>自动</b>驾驶中常提的“<b class='flag-5'>强化学习</b>”是个啥?

    【书籍评测活动NO.62】一本书读懂 DeepSeek 全家桶核心技术:DeepSeek 核心技术揭秘

    )和解码(Decoding)分离的策略 ,以及冗余专家策略,在提高推理速度的同时确保了系统的稳定性和可靠性。 DeepSeek 架构图 DeepSeek-R1技术突破 01. 纯强化学习训练
    发表于 06-09 14:38