百变应用场景下,优酷基于图执行引擎的算法服务框架筑造之路
本文插图
作者| 阿里文娱高级专家 随方 ,
阿里文娱开发专家 轩成
责编 | 屠敏
头图 | CSDN 下载自视觉中国
本文插图
背景
在阿里的业务中 , 有广泛的算法应用场景 , 也沉淀了相关的算法应用平台和工具:基础的算法引擎部分 , 有成熟的召回和打分预估引擎、在线实时特征服务;推荐算法应用领域 , 有算法实验平台TPP(源于淘宝个性化平台) , 提供Serverless形式的算法实验平台 , 包括资源弹性伸缩 , 实验能力(代码在线发布、AB分流、动态配置) , 监控管理(完善的监控报警、流控、降级)等能力 , 是算法在线应用的基石 。
但在实际的算法应用业务中 , 比如优酷推荐业务 , 算法应用场景众多(100+活跃场景) , 需求灵活多变 , 如果没有一套通用业务框架 , 用于抽象出通用和定制化的部分来提高算法组件的复用度;会严重拖慢算法实验的节奏 。 基于图引擎的算法服务框架就是为了封装一套框架 , 抽象算法在线服务的通用算子 , 支持运行时的算法流程的装配 , 提升算法服务场景搭建的效率 。
本文插图
设计概览
算法推荐典型在线处理执行流程:多路粗排召回 , 合并 , 预估 , 打散策略 。 推荐服务根据用户的设备ID等其他必要信息进行多路并行召回 , 在召回引擎中进行粗排后 , 经过必要的过滤处理 , 截取一定数量的内容调用Rank引擎进行精排预估 , 预估结果经过一系列算法策略处理后输出最终结果 。
整个过程中召回 , 合并 , 预估 , 打散等业务处理有并行处理 , 有串行处理 , 根据业务需要能够灵活配置 。 基于图的推荐业务执行引擎是运行在算法实验平台上的执行引擎 , 它的典型处理流程是:在AB实验分桶上 , 通过图形化交互页面配置数据源、业务算子的执行依赖关系 , 并配置每个算子的运行时动态参数 。
系统总体结构如下图所示:分成五个主要的模块(图执行算子元件、图形化配置DAG、图配置动态解析、DAG图执行引擎、Debug调试) 。
本文插图
图:系统总体架构
当推荐请求到达时 , 引擎读取AB参数 , 根据参数上配置的算子信息创建算子实例 , 根据算子的依赖关系配置动态组装成可运行的DAG 。 根据条件分支配置 , 动态裁剪运行时的DAG实例 , 根据图运行占用最大线程数配置 , 动态调整线程复用 。 算子通过算法实验平台的底层协程池并行运行 。
本文插图
关键模块
1. 图执行算子元件
1) 数据集
在DAG图中流转的数据统一封装为DataSet数据集 , 数据集是结构化多行二维数据的封装 , 在数据集上封装便利的基础算子操作 。
数据集上一系列处理操作基于Java的Stream API来进行处理 , 以此来达到集合处理的最好性能 , 将非Action操作延迟到最后数据处理时运行 。
数据集支持同步数据和异步数据读取 , 通过异步数据读取方式 , 可以延迟数据的解析和避免IO的等待 , 在使用时才进行数据的解析 。
2)数据源
将能够返回数据或者数据交互的二方服务封装为通用数据源 , 所有业务算子围绕数据源的数据进行业务开发 , 通用数据源包括召回数据集、在线算法需要的辅助数据集(如存放在KV内存存储的旁路召回数据、特征等数据)、打分预估结果集、内存数据源等等 。
推荐阅读
- 中国新闻网|侯立安院士:研发集成空气净化和消杀技术应用战“疫”
- 技术大神 Native:使用Vue.js框架构建原生移动应用程序的指南,Vue
- 技术大神Vue Native:使用Vue.js框架构建原生移动应用程序的指南
- 创造营2020|《创造营2020》总决赛奇怪场景之二:张艺凡卡7后的反应大合集
- 国防时报热点 收入受影响,部分人因此“断粮”,印度网红对中国应用禁令显错愕
- 国务院客户端|对于职场新人来说,有哪些好应用值得推荐?
- 国防时报热点|收入受影响,部分人因此“断粮”,印度网红对中国应用禁令显错愕
- 芯片:损失60亿!中国取消苹果“特权”,数万款应用被限制
- 选择遗忘|应用日报|微信支持拍一拍个性设置,iOS 13.6 beta 3 发布
- 印度将矛头指向了中国应用,这时英特尔公司发现了巨大商机
