2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

优酷提出基于图执行引擎的算法服务框架,系统架构概览

  • 2020-06-10
  • 本文字数:2066 字

    阅读完需:约 7 分钟

优酷提出基于图执行引擎的算法服务框架,系统架构概览

背景

在阿里的业务中,有广泛的算法应用场景,也沉淀了相关的算法应用平台和工具:基础的算法引擎部分,有成熟的召回和打分预估引擎、在线实时特征服务;推荐算法应用领域,有算法实验平台 TPP(源于淘宝个性化平台),提供 Serverless 形式的算法实验平台,包括资源弹性伸缩、实验能力(代码在线发布、AB 分流、动态配置)、监控管理(完善的监控报警、流控、降级)等能力,是算法在线应用的基石。


但在实际的算法应用业务中(如优酷推荐业务),算法应用场景众多(100+活跃场景),需求灵活多变,如果没有一套通用业务框架抽象出通用和定制化的部分来提高算法组件的复用度,会严重拖慢算法实验的节奏。基于图引擎的算法服务框架就是为了封装这样一套框架,抽象算法在线服务的通用算子,支持运行时算法流程的装配,提升算法服务场景搭建的效率。

设计概览

算法推荐典型的在线处理执行流程是:多路粗排召回、合并、预估、打散策略。推荐服务根据用户的设备 ID 等其他必要信息进行多路并行召回,在召回引擎中粗排后,经过必要的过滤处理,截取一定数量的内容调用 Rank 引擎进行精排预估,预估结果经过一系列算法策略处理后输出最终结果。


整个过程中召回、合并、预估、打散等业务处理既有并行处理也有串行处理,可以根据业务需要灵活配置。基于图的推荐业务执行引擎是运行在算法实验平台上的执行引擎,它的典型处理流程是:在 AB 实验分桶上,通过图形化交互页面配置数据源、业务算子的执行依赖关系,并配置每个算子的运行时动态参数。


系统总体结构如下图所示,共分成五个主要模块(DAG 图执行引擎、图执行算子元件、图形化配置 DAG、图配置动态解析、Debug 调试)。



图:系统总体架构


当推荐请求到达时,引擎读取 AB 参数,根据参数上配置的算子信息,通过反射机制创建算子实例,动态组装成可运行的 DAG。根据条件分支配置,动态裁剪运行时的 DAG 实例,根据图运行占用最大线程数配置,动态调整线程复用。算子通过算法实验平台的底层协程池并行运行。

关键模块

1 图执行算子元件

1) 数据集

在 DAG 图中流转的数据统一封装为 DataSet 数据集,数据集是结构化多行二维数据的封装,在数据集上封装便利的基础算子操作。


数据集上一系列处理操作基于 Java 的 Stream API 来处理,以此达到集合处理的最好性能,将非 Action 操作延迟到最后数据处理时运行。

2) 数据源

将能够返回数据或者数据交互的二方服务封装为通用数据源,所有业务算子围绕数据源的数据进行业务开发,通用数据源包括召回数据集、在线算法需要的辅助数据集(如存放在 KV 内存存储的旁路召回数据、特征等数据)、打分预估结果集、内存数据源等。


数据源的封装通过动态参数配置方式实现通用性和可扩展性。数据查询只需要修改配置即可实现数据获取,不需要开发代码。

3) 基础算子

在 DataSet 数据集上封装的基本操作作为基础算子,比如 Join、Union、Filter、Sort、Map、Collect 等流式操作。在 DataSet 上重新封装 Stream 相关 API,便于对 DataSet 进行流式处理。

4) 业务算子

召回、预估、合并、打散、过滤等业务操作封装为业务算子,在业务算子中可以查询数据源,返回数据集后通过基础算子计算得到结果。

2 图形化配置 DAG

3 配置动态解析和优化

1)根据 AB 配置实时变更图执行结构

为了减少解析图结构的耗时,图引擎在运行时对图结构做了缓存,但在 AB 配置更新时需要实时反映到图引擎中,所以要根据图配置的哈希值校验的方式检测图配置是否更新,图结构变更后会重新创建引擎实例。

2)子图并行线程优化

在 DAG 执行时,所有算子都交给线程池异步运行,但是在大多数情况下子图可能是一个顺序执行图,不需要并行,不应该占用其他线程,所以在图执行时,动态根据依赖关系识别节点是否需要占用新线程运行。

3)条件分支动态裁剪

如果图结构中存在条件节点,会根据条件节点的动态结果裁剪后续图节点的运行。如果一个图节点的执行条件为否,后续单独依赖它的节点都不会运行,条件节点具备传递性。如果后续节点不单独依赖不运行的节点,则当前节点可运行。

4 DAG 图执行引擎

1)并发控制

通过图中依赖关系动态解析节点需要通过并行还是串行执行,在图中配置最大并发线程数来控制图的最大并发度。最大程度复用线程,减少线程切换带来的开销。

2)超时控制

通过整个图上配置超时时间来控制图的超时,根据业务粒度将子业务配置为子图,从而通过控制子图的超时时间来控制子业务的超时时间。

3)通过协程优化异步执行

DAG 运行依赖线程池运行,算法实验平台提供了基础线程池,并同时将线程池在 JVM 层面优化为协程,通过压测比对,普通线程池的性能要低于协程池的性能。

总结 &展望

基于图引擎的算法服务框架建设,通过抽象算法业务的通用组件,提供图形化流程编排工具和图执行引擎,实现了 0 代码、配置化支持算法业务需求。为快速的算法应用,不断提升用户的个性化服务打下了坚实基础。对推荐、搜索、广告等算法应用业务有参考价值。


接下来,为了进一步提升引擎性能,我们将在构图优化和引擎执行性能上做优化,在保持业务表达灵活简洁的同时,追求更优的执行性能。


作者介绍:阿里文娱高级专家 随方,阿里文娱开发专家 轩成


2020-06-10 11:164440

评论

发布
暂无评论
发现更多内容

The Life of a Read/Write Query for Apache Iceberg Tables

数新网络官方账号

西格电力:助力规避企业级储能技术路线图制定的潜在风险

西格电力

#高性能存储 智慧储能电站 微电网 储能 企业级储能

使用AI发现API密钥与敏感信息的安全漏洞挖掘

qife122

信息安全 API安全

如何有效衡量开发者生产力:超越代码行数的思考

qife122

开发者生产力 绩效衡量

2025年机械电子与自动化国际研讨会(ISMA 2025)

搞科研的小刘

自动化

Palantir Ontology:革新商业智能的企业 AI 操作系统

俞凡

人工智能

MIAOYUN | 每周AI新鲜事儿(10.31-11.07)

MIAOYUN

AI AI技术 AIGC AI大语言模型 AI工具

【2025年权威盘点】十大舆情监测软件全对比

沃观Wovision

舆情监测 舆情监测软件 全球舆情监测

Agentic AI基础设施实践经验系列(五):Agent应用系统中的身份认证与授权管理

亚马逊云科技 (Amazon Web Services)

人工智能

适合局域网使用的企业内部通讯软件有哪些?

BeeWorks

即时通讯 IM 私有化部署

区块链Web3项目开发流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

企业系统开发:数字化转型的技术实施路径

寻路科技

动效设计——数据可视化中的动态叙事革命

inBuilder低代码平台

数据可视化 数据交互 动效设计 信息可视化 交互式设计

前端周刊第439期(2025年11月3日–11月9日)

掘金安东尼

第八届土木建筑、水电与工程管理国际学术会议(CAHEM 2025)

搞科研的小刘

建筑土木

西格电力储能技术路线图的破局之道,实现从精准规划到高效落地

西格电力

高性能存储 储能 能源经济 绿色能源转型 电力系统

联通国际精品互联网专线,为政企客户提供更低时延互联网访问体验

宽炜网络

《澳门日报》专访|光联董事长黄书展:把握澳门科技研发产业园机遇,共创科创未来

光联世纪

新闻资讯 澳门 科技人才

舆情监测软件选型指南:通过5大维度精准决策

沃观Wovision

舆情监测 海外舆情监测 舆情监测软件

被权重出卖的“脏数据”:GPT-oss 揭开的 OpenAI 中文训练真相

掘金安东尼

电信SD-WAN 在跨境线路方面的优势

宽炜网络

全球组网SD-WAN,助力跨国企业全球业务!

宽炜网络

NJet event框架性能百倍提升,Why and How

通明湖

CMDB的价值?——CMDB业务设计全解析

智象科技

CMDB #运维 一体化运维平台

写给0-1岁的初创公司合伙人(5):出海常用技术栈组合

Y11

互联网 求职 找工作 招聘 出海

“从PMO到VMO价值交付管理” — Agile VMO业务敏捷CVP认证

ShineScrum

敏捷 PMO 敏捷转型 敏捷活动 VMO

“CSM认证培训” · 12月6-7日北京线下&12月13-14日 · Jim老师引导

ShineScrum

Scrum 敏捷 Scrum Master Scrum event

第十一届机械制造技术与工程材料国际学术会议(ICMTEM 2025)

搞科研的小刘

机械制造

别让运维跪着查日志了!给老板看的“业务观测”大盘才是真香

乘云数字DataBuff

运维 可观测性 业务观测

舆情监测网站哪家强:从免费工具到企业级平台全测评

沃观Wovision

舆情监测 海外舆情监测 舆情监测网站

大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)

武子康

Java 大数据 spark 分布式 Apache Kudu

优酷提出基于图执行引擎的算法服务框架,系统架构概览_AI&大模型_阿里巴巴文娱技术_InfoQ精选文章