DPP推荐引擎架构升级演进之路|得物技术

一、DPP整体架构

DPP依赖于算法平台的引擎服务(FeatureServer,召回引擎, 精排打分),提供“开箱即用”的召回,粗排,精排服务。采用“热加载技术”解决算法平台的工程和算法同学策略迭代效率问题,支持策略随时发布,让他们可以专注于业务逻辑,即可拥有稳定的推荐在线服务。

图1.0 DPP服务整体架构

平台特性

  1. 快速迭代:通过系统解耦,实现算法、策略的快速迭代。

  2. 效果分析自动化:打通数据平台,BI数据分析标准化。

  3. 灵活实验:通过分层实验平台,支持多层多实验的灵活配置。

  4. 诊断方便:落地各子流程中间结果,支持算法、策略的细化分析;提供方便的监控告警,运维,时光机等问题排查工具。

二、DPP引擎演进

DPP编排引擎的迭代分为了3个阶段:固定编排,灵活编排,图化DAG编排;均是在策略迭代过程中,围绕着“迭代效率”提升的不断进化。下面分别介绍下各阶段引擎产生的背景及其方案。

2.1 固定编排 - DPP-Engine

推荐业务一般都可以抽象为“召回->融合->粗排->精排->干预”等固定的几个阶段,每个阶段通常是有不同的算法或工程同学进行开发和维护,为了提升迭代效率,通过对推荐流程的抽象,将各阶段的逻辑抽象为“组件"+"配置”,整体的流程同样是一个配置,统一由“编排引擎”进行调度,同时提供统一的埋点/日志等。让工程或算法同学可以关注在自己的业务模块和对应的逻辑,而框架侧也可以做统一的优化和升级。

DPP-Engine就是在此基础上,将业务策略抽象为“初始层->召回层->融合层->粗排层->精排层->干预层”这6层, 有DPP负责串行调度这6层,每一层有若干个组件组成,各层将结果进行合并后传递到下一层(也就是List)。

图1.2-1 DPP-Engine层编排

通过分层,DPP-Engine较好的支持了业务的快速迭代,业务“各层”的开发同学可以独立迭代。但是随着场景的增多,对“灵活”编排有了更多的需求,比如不固定6层,层内可有自己的"编排"等。

其次对于DPP平台同学来说,DPP-Engine嵌入在DPP系统内, 不利于引擎的迭代和维护。

2.2 灵活编排 - BizEngine

BizEngine根据策略同学提供的组件及其编排流程,负责执行和调度,包括组件间的并发。它在推荐系统链路中的位置如下图:

图1.3-1 DPP系统(BizEngine)

目前在BizEngine看来,“组件”是策略开发的最小粒度,策略同学在DPP-后台中可以在场景维度划分桶(小流量桶, 分层桶),在桶可以配置不同的层编排,默认为6层:INIT层->召回层->融合层->粗排层->精排层->干预层。分别在层内可以配置不同的组件。一次请求中,BizEngine负责按层进行调度(层与层之间为串行调度),层内的组件根据组件间的依赖进行串行或者并发调度。

图1.3-2 编排管理及其配置协议

用户请求到DPP后, 会通过AB分流得到该请求(用户)命中的所有实验(包括桶,层,实验),DPP解析命中配置后,可以构建出BizEngine需要的入参-编排配置(桶配置+实验配置+组件配置),它会根据层及组件的配置构建出执行的层Stages,按组件维度提交到各线程池进行同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值