智能成片性能优化探求与通常
一. 前言
各类剪辑类工具中都有一键成片的才干,处置创作者在视频创作中剪辑特效包装难的疑问,行业干流做法普通是对用户上行的视频素材识别提取高光,加上前期的模板特效包装,最后出片。以上处置均会对视频启动裁剪处置以顺应模板填充坑位的时长。
B站从2022年7月开局做智能成片性能,第一版仅允许「图片转视频」性能,外围是对用户选用的图片素材参与繁难的音乐包装,转化成视频,基本流程如下:
2022年10月开局做第二版的智能成片,允许参与视频元素,同时扩大了特效包装的维度,除了业界通用的模板特效,还联合了智能配乐,以及对用户音频消息的识别智能转化成字幕。新的智能成片业务流程:
以上第一版和第二版总体上完整了智能成片结构化的特效包装,即模板,配乐,ASR字幕 基础智能三要素。历史要素,在业务滚动迭代快的状况下,智能成片仅实现了极速上线的要求,也就是0到1的树立。在成片的性能上没有定义出外围可观测的目的。比如外部用户反应的成果疑问,成片耗时长等基础体验疑问较多:
本文关键从效率和成果 两个层面来讨论B站智能成片上的性能优化与通常。
二. 可观测性数据树立
基于智能成片全体的业务流,梳理外围的三条链路以及三条主链路下的子链路。首先定义出智能成片关键性的两个可用目的。
分解耗时:用户选用完素材之后,开局智能成片和实现智能成片的全体耗时。这里咱们取P90的目的来做参考
分解成果的定义提取较为复杂,有三个维度的链路可以去优化:
●素材运行成功率:优化智能成片子链路(基础的模板,配乐,ASR字幕)的素材运行成功率,每一个子链路运行成功,即代表最终恢复的成果越丰盛。
这一维度的定义偏现实化,但子链路素材运行成功率的目的业务上是可量化的。
●模板恢复原子才干的丰盛度:特效包装集模板自身的原子才干补齐,模板具有更丰盛的子元素。
这一维度为业务手腕补基础才干提模板成果,不做解说
●素材介绍的精准度:智能介绍的模板,音乐等包装特效劳和用户选用的素材内容相婚配,精准度高。
模板和音乐的介绍依赖于 AI模型的画面标签识别率,画面标签识别率关键是人工评测,识别率在41%(P0画面标签识别率 68%),这局部的优化依赖画面识别模型自身的才干更新,本文不做详解。
以上咱们最终选取「素材运行成功率」作为分解成果的关键量化目的。本文关键围绕这一维度的优化倒退。
有了基础的目的定义,咱们从智能成片全局角度整顿输入须要补全的观测数据:
三. 性能优化
初始数据显示,智能成片的P90耗时为 20s (基本超时),素材运行成功率:46%。全体可用性较差。
在基础数据量化的基础上,咱们从三条外围链路切入,摸排可优化的点定项优化。全体的摸排点如下:
3.1模版链路优化
初始模板的下载成功率只要91%,模板从抽帧介绍到下载实现P90耗时 在19s
模板介绍从素材页到智能成片分解页全体业务链路如下:
咱们从以下几个关键点启动优化
3.1.1 资源重复下载疑问
关键是两类资源重复下载疑问:
以上是两类典型的资源重复下载疑问,经过缩减不用要资源从而节俭下载耗时。最终P90耗时缩减 2s
3.1.2 不凡资源转码疑问
咱们对智能成片超时(业务性能20s即为超时)链路启动搜集,剖析80+ bad case,逐个检查超时要素。发现两个超时较多的场景:
1) iOS 端字幕下载经常超时 120s,经过重复尝试摸排,咱们发现业务下载器存在bug,下载多字幕字体时下载链路会卡住,直至下载义务超时120s之后前往结果。
2)模板素材中子元素蕴含GIF素材时,容易超时。剖析发现业务经常使用的三方剪辑SDK存在私有素材格局的定义,GIF素材在模板消费端会被转码成三方剪辑SDK自定义的CAF格局素材,这个转码环节耗时较长,容易超时。
基于第二个方向优化,又衍生出一系列链路须要处置:
以上两个打算在思索业务迭代和抢先模板消费保养老本的角度,优选是「自研剪辑SDK允许CAF格局」。从素材格局规范化的角度,优选「美摄允许CAF素材反向转成GIF格局」。最终咱们选用「自研剪辑SDK允许CAF格局」低老本的处置这个疑问。
素材格局转换处置和多字幕疑问修复之后,P90耗时大幅降低至12s。
3.1.3 模板资源大小消费规范化 & 版本兼容
智能成片的模版素材普通是由外部设计师消费。早期素材中台素材入库时没有对素材体积做规范化紧缩处置,模版消费时也未对模版做大小限度,局部消费的模版体积超大,下载耗时长。这里咱们从两个方向启动优化:
模版版本兼容
模板是一个特效包装集,它是由多个基础原子才干组成,比如字幕,字体,转场特效,滤镜,画中画..., 在加上规范恢复协定。模板的原子才干随着版本迭代逐渐参与。如何设计版本兼容打算?
繁难的做法是针对不同模版允许的原子才干做版本控制。这里的疑问在于:
更正当的做法,App端保养一份允许恢复的原子才干消息,云端依据App端允许的模板原子才干和模板自身允许的原子才干,挑选出相婚配的模版列表,在下发到App端。以上处置了模板散发的疑问。但仍有局部状况须要做版本兼容处置:
版本隔离的疑问在于,纯手工性能容易出错,在历史版本迭代中,也有少许因版本上线距离期间长,模板消费端人员变化长下文消息不全造成的版本隔离消息性能出错,最终造成模版子元素拉取失败,进而影响模板下载成功率。
以上疑问咱们经过模板下载报错消息,索引到对应模板子元素,逐个校准模板版本消息,该疑问处置之后,模版下载成功率优化至96%
3.1.4 模板资源参与预加载&兜底处置
业界基操,驳回预加载和参与兜底来优化素材下载运行的成功率。咱们从三个方面做了预加载的逻辑
同时也做了模板下载器自身的优化,历史模板业务下载器仅允许串行下载。业务上接入基架新的下载组件,处置无法并发下载的疑问。
3.2 ASR链路优化
智能成片的第二条智能链路,外围依赖ASR服务,ASR服务关键是对音频数据剖析,输入音频分类消息:有音乐,混音,有人声,没有声响四个类别。每个类别的标识看各类消息的占比:
其业务链路如下:
疑问1:ASR服务耗时较长,复线统计ASR链路耗时,发现P90基本超20s,处于无法用形态。
疑问2:ASR链路前置流程蕴含音频文件提取和音频上行链路。音频上行链路中会出现耗时较长的场景。关键点是历史要素:音频文件上行链路两边有一个业务服务和文件存储服务做转发,耗时有损。
疑问1:协同AI服务端查找极其case排查,最终是发现ASR服务接口被刷的状况,服务QPS过高,造成业务ASR处置排队期待耗时长。处置打算是将刷量的task义务参与黑名单。处置完之后,ASR链路P90耗时缩减50%
疑问2:去除上行业务服务两边层即可,客户端直接调用基础文件存储BFS服务接口再前往存储地址给到AI服务侧,缩减链路。
3.3 智能音乐链路
智能成片的第三条链路,音乐介绍。其基本流程如下。
AI侧处置照应音乐介绍关键有三个维度的目的:用户特色,音乐特色,画面特色:
基于以上三个特色按权重介绍音乐,且画面特色维度更婚配当次智能成片的成果。
在某次上行组件更新交流环节中,业务侧传递了失误的抽帧地址给到AI服务侧造成无法输入画面标签。AI侧基于用户特色和音乐特色前往了战略升级的音乐介绍(音乐和画面婚配度低,同质化疑问),业务侧无感知。
疑问的发现关键是AI团队有基于画面打标成功率监控诉警,一段期间内,打标成功率大幅低于预期值。
疑问的修复:
疑问的预警:业务测试和研发人员在交付验收阶段如何判别前往的介绍音乐能否升级。以及上线之后业务侧能否更快感知。
AI服务端前往无画面特色的失误消息,端上基于此失误做两个处置:
经过以上系列优化,智能成片P90耗时在 10s左右,素材分解成功率 90%+
四. 目的防裂化
前面关键解说了智能成片性能优化环节,这一局部关键是对已达成的目的做客户端监控诉警,防止数据劣化。咱们关键从以下几个纬度来树立监控诉警全体流程
这里有两个疑问,告警触发后如何极速通知值班人员?以及如何让值班人员极速查找error消息
咱们经过Fawkes告警平台,性能自定义的Webhook消息。告警触发后,经过解析规范Webhook性能,挑选告警关键日志消息,在经过自定义Webhook封装关键日志消息和当日的值班人员消息推送到告警处置群。
以上经过实时告警监控SOP树立,对智能成片三条主链路数据做日常巡检。活期搜集,剖析,调整告警消息,告警愈加精准,优化日常值班效率。
五.总结和展望
5.1 总结
咱们首先定义出智能成片外围可用性目的,基于外围目的细化关键链路节点可观测数据。同时基于数据围绕模板,ASR字幕,配乐三条链路做耗时和成功率的调优。最后咱们对智能成片外围链路树立实时监控诉警值班机制,防止数据劣化。未来数据,调优,告警三局部还会继续演进。
数据局部:愈加精细化,数据口径校准
调优局部:智能模板消费端素材大小监控,模板素材入库规范化,画面识别准召率优化
监控诉警局部:战略类告警补齐(智能配乐战略),智能成片耗时告警补齐,告警颗粒度细化,双端告警差异项对齐。
5.2 未来方向
智能成片1.0 关键是 模板,ASR字幕,配乐基础三要素特效包装,并没有对用户素材自身做处置(Before)。
智能成片2.0 是对标行业竞品,基于画面识别的才干做智能提取高光,智能剪辑(ing...)。
智能成片3.0 基于AIGV大模型,经过AI生成视频内容,一键成稿(Future)。