闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(中)

简介: 闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践

接上篇:https://developer.aliyun.com/article/1225873?spm=a2c6h.13148508.setting.22.595d4f0eudDbz0


二、 算法离线面临的挑战

 

1. 闲鱼对实时数据的强诉求-公共实时数仓建设

 

闲鱼有非常多的场景需要消费实时数据,比如在生态治理方面,闲鱼上很多优质供给在很短时间被黄牛扫光,但是从平台角度看肯定更希望这些优质供给能被更多的用户消费

 

因为这个原因,闲鱼长久以来有3个团队在做数据相关的建设:算法面向模型,需要非常实时的数据,所以会做很多定制化的链路;BI面向数据分析;工程面向应用。随着不断的演进叠加,其问题也逐渐暴露出来:

 

数据时效性缺乏。除了算法,工程和BI对实时数据的诉求也越来越强。

数据准确度问题。由于之前的数据都是烟囱式开发,其数据在使用之前无论是数据口径还是精确都需要做多轮check。

成本浪费。存在大量的数据冗余存储和计算。

 

所以BI,工程,算法一起打造闲鱼的公共实时数仓,作为下游众多应用的数据来源。

 

image.png


2. 特征需要被统一管控

 

在闲鱼,特征不仅应用广泛,而且影响非常大。无论是从沉淀服务更多场景还是成本的角度看,都需要统一管控起来。

 


image.png

我们期望通过特征中心的建设,实现以下几个目的

 

特征能以资产的形式沉淀下来。所以我们构建了特征写入和存储模块,结合特征管理模型,实现特征的低成本快读接入。

 

特征能够高效的对外输出。一方面性能足够好,另一方面能以不同的形式服务众多下游。

 

特征生命周期管控。在这以前,闲鱼的特征是不可迭代的。因为只上不下,线上哪些特征在用,这些特征的价值如何,没有人能回答。因此我们构建了特征质量模块,通过对特征重要性分析,对特征进行统一管控。

 

基于特征的样本构建足够高效。通过特征全埋点来自动构建在离线一致的实时样本流。

 

3. 在离线模型的差异

 

一般来说,离线训练得到的模型并不能直接部署线上。这里有多方面的原因

 

模型网络结构的差异。典型的模型离线训练流程为:输入,预测,优化。在线预测阶段则只需要输入,预测两个环节。

 

输入的差异。一方面数据结构的差异,模型离线训练阶段需要输入特征和label共同组成样本。在线则只需要输入特征即可。另一方面数据源也存在着差异。训练阶段的数据大多来自于存储在某个地方的数据集,在线服务的输入则来自于请求入参和在线服务。

 

计算架构的差异。离线训练阶段由于对性能要求不高,模型可能运行在CPU之上。但在线阶段由于对性能要求较高,则有可能运行在更为复杂的如cpu+gpu环境之上。

 

1) 模型自动裁剪

 

在模型Offline2Online过程中,我们首先需要对模型做一轮自动裁剪。

 

image.png


2) 模型网络压缩

 

压缩过程中主要有几个策略

 

模型计算图的拆分。将cpu和gpu拆开,计算密集型的任务放在gpu上完成。

 

计算逻辑Online2Offline。部分计算逻辑从在线计算变为离线提前计算完,在线只需要IO读取。

 

模型计算图压缩。这部分主要是算子的合并,减少数据传输和切换的开销。

 


image.png

除此之外,在GPU上也做了大量的优化工作,这些优化工作总结起来遵循两个原则

 


image.png

最后做一个总结,闲鱼推荐系统的离线架构如上所示,主要解决

 

数据研发效率。如何快速拿到需要的数据。这里面会涉及到数据时效性如何,数据准确度是否满足要求,数据是否散落在各地等一系列问题。

 

特征迭代效率。这里会面临的问题包括:特征在离线一致性;样本高效回刷;特征一致性解析训练阶段和在线服务阶段,特征来源不一样

 

样本生产效率。每次模型迭代机会都会涉及到样本的更改。一个比较典型问题如行存样本导致的重复计算和重复存储的问题。

 

模型开发效率。可复用能力:有效的模型网络是否沉淀,以便新模型快速冷启;一些和模型无关的细节能否底层做掉,对算法屏蔽掉细节,比如滑动auc窗口时auc自动清零等;常用的脚手架代码能否通过框架完成等。

 

image.png


三、 推荐在线服务部署方案

 

1. 在线服务部署-兼顾性能和效率

 

闲鱼推荐整体流程采用业界通用的分阶段召回架构,主要包括召回、粗排、精排、上下文重排这几个大模块,如下图所示:

 

image.png

在讲在线部署方案的时候,我们需要回答两个问题

 

1) 对业务来说,部署方式是否足够灵活。哪些因素会阻碍业务想要的灵活性?我们认为有以下几点:

 

对算法是否足够轻量,让算法专注策略本身,屏蔽工程细节性能,部署,资源调度等

上线周期是否足够快。

能不能进行低成本,大流量分层实验。

 

2) 对算法来说,部署方式能否保证其有足够的迭代空间。比如是不是足够稳定,性能是不是足够好,资源利用率是不是足够高等等。

 

image.png


为了回答这两个问题,闲鱼推荐在线服务采用上面的部署方案,总体包括4个模块

 

1) 在线服务模块。

面向业务的serverless层,将算法能力打包成在线服务对外输出。它有几个特点

 

serverless平台。对算法屏蔽了底层资源调度,部署等细节。足够轻量,一次发布只需要秒级即可完成。

dag引擎。采用全图化框架,底层运行在dag引擎之上。算法代码完成后天然高性能并发,业务逻辑可视化。

实验平台。能够支持算法快速进行低成本,大流量的分层实验。

 

 

2) 召回&粗排。

召回&粗排由于需要对万级别的数据进行计算,所以进行单独部署。在内部采用多行多列部署模式,增加灵活性的同时保障有足够的性能。

 

3) 打分引擎。

精排环节由于数据已经收敛,所以优先保障迭代的灵活性,所以精排单独部署,同时会把模型和特征尽可能提前部署在一块儿,最大化性能表现。

 

4) 监控平台。

屏蔽底层差异,无论是基于Java的在线服务还是基于C/Python的引擎层,都可以通过足够标准化的数据协议使用一套方案解决。

 

2. 业务规模快速增长带来的挑战

 

image.png



 

 

 

 


接下篇:https://developer.aliyun.com/article/1225864?groupCode=idlefish

相关文章
|
11月前
|
算法 搜索推荐
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(上)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
197 0
|
11月前
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(下)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
186 0
|
11月前
|
存储 机器学习/深度学习 安全
《云上社交行业技术服务白皮书》——第五章 展望
《云上社交行业技术服务白皮书》——第五章 展望
72 0
|
11月前
|
运维 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(下)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
165 0
|
11月前
|
移动开发 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(上)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
145 0
|
11月前
|
移动开发 Dart 前端开发
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】(中)
闲鱼技术2022年度白皮书-KUN主题-这一年,我对终端组织与技术架构的思考【专家讲技术】
172 0
|
12月前
|
前端开发 搜索推荐 小程序
蚂蚁P10玉伯的产品思考:技术人如何做产品
蚂蚁P10玉伯的产品思考:技术人如何做产品
261 0
|
设计模式 移动开发 运维
QCon演讲实录|淘系前台业务“秒交付”研发模式的革新探索
淘系业务高速发展,淘宝、天猫、淘宝直播、淘宝特价版、闲鱼等平台上业务不断创新,同时也对技术效率提出了新的更高的要求。而当前移动互联网客户端服务端分离的研发模式,存在跨技术栈+多端协同的挑战,也面临一些基础的技术和业务能力无法有效的复用的问题。在此背景下,结合云基础设施的演进,结合端技术的发展,淘系技术探索实践了业务云端一体化的研发,围绕应用架构的跨代升级,构建新的研发过程、研发体验,在研发期、交付期、运行期重新定义了前台业务的研发模式。
QCon演讲实录|淘系前台业务“秒交付”研发模式的革新探索
|
存储 编解码 人工智能
5G 和云原生时代的技术下半场,视频化是最大最新的确定性 ——QCon2020 主题演讲全文
随着 5G/ 芯片 / 区块链等等新技术的不断成熟、云计算的普及和云原生时代带来的诸多便捷,开发者和架构师们眼前的挑战也不再只是 0-1 的建设问题,技术如何更多地带来业务价值成为了一个值得讨论的话题。由极客邦科技举办的 QCon 全球软件开发大会 2020(深圳站)上,阿里巴巴集团研究员,阿里云智能视频云业务负责人林昊(花名毕玄)发表了主题演讲《5G 和云原生时代的技术下半场》,以 5G 典型场景音视频为例,探讨相关技术和技术人的下半场,以下内容为演讲整理。
5G 和云原生时代的技术下半场,视频化是最大最新的确定性 ——QCon2020 主题演讲全文
|
弹性计算 Cloud Native NoSQL
阿里云新品发布会周刊第63期 丨 优秀技术人,如何做到高效沟通?
MaxCompute作为企业级云数据仓库,从底层基础设施、数据中心、网络、供电等,到中间的平台能力安全,再到向上的用户权限管理、隐私保护等共提供三级超过20项安全功能。敬请关注8月5日阿里云新品发布会,将为您详细解读云上大数据平台发展趋势及面临的安全挑战!
677 0
阿里云新品发布会周刊第63期 丨 优秀技术人,如何做到高效沟通?