深度预测平台RTP介绍

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介: 前言 RTP平台是阿里内部一个通用的在线预测平台,不仅支持淘系搜索、推荐、聚划算、淘金币等业务,也支持国际化相关icbu、lazada等搜索推荐业务,同时还支持着淘客,优酷、飞猪等大文娱的搜索推荐场景。

前言

RTP平台是阿里内部一个通用的在线预测平台,不仅支持淘系搜索、推荐、聚划算、淘金币等业务,也支持国际化相关icbu、lazada等搜索推荐业务,同时还支持着淘客,优酷、飞猪等大文娱的搜索推荐场景。作为一个通用的在线预测平台,RTP不仅提供基本的模型inference能力,同时对于排序打分类场景有更深度的优化。
RTP_

近些年,机器学习的发展速度越来越快,机器学习的技术应用也越来越广,从2016年开始,RTP平台开始逐渐支持一些简单的深度模型场景例如wdl、dnn等,但是有限的模型种类不仅限制了算法同学的发挥,在从系统维护优化角度来说,也是逐个击破的策略,总体业务支撑的效率偏低。

因此从2017年初开始,在原有rtp系统的基础上,我们基于深度学习的场景,重新思考了我们的架构和业务场景,对RTP整个平台做了一次较大的升级,从设计上考虑整体的迭代效率、运行效率、可扩展性,大幅提升了RTP整体的能力,从架构重构到现在,RTP整体的业务量和业务形式都有了大幅度的增长,同时算法同学应用RTP平台也拿到了相当可观的算法效果。

本文主要围绕着RTP重构的思路及问题展开。

迭代效率-平台与架构

近几年来,机器学习领域正在飞速发展,模型的快速迭代速度和架构的灵活性在这个时刻显得尤为重要。加快算法迭代速度,简化算法验证成本,能带来革命性的进步。在caffe、tensorflow等机器学习系统开源之后,对于训练本身的迭代瓶颈得到了一定的缓解,inference在小模型、小的问题集上也还能够适用,但是大规模模型的inference仍然是一个复杂的系统工程问题。

RTP系统的设计宗旨是让算法同学能够享受端到端的用户体验,尽可能简化算法同学需要对工程细节的了解。

我们思考一下,对于一个算法工程师而言,开发一个新的算法,或者上线一些新的feature需要做的工作。

  1. 原始数据准备
    一般而言数据源头都有对应的负责团队或者负责人负责数据的质量和使用方式的,大部分工作是数据准备,数据清洗等工作,odps/blink在这部分工作中起着巨大的作用,很多团队都沉淀了自己的一套流程,全量、批量数据、实时数据的产出都依托于odps及blink的能力,最终以表的形式推送到RTP系统。
  2. feature生成
    feature一般可以用通用的feature生成规则(一般就是原始值、id特征、各种交叉特征等规则),rtp从最初的版本开始就提供对应的feature生成规则,保证用户训练生成feature的逻辑与在线inference中产生的feature一致。
  3. 模型设计、训练
    模型方面应该将自由度交给算法同学,让他们能自由设计;训练平台方面,集团内也已经有较为成熟的训练平台,常用的例如Pai、Porsche,或者基于PS等自己开发的算法,亦或者Caffe等开源平台训练。

  4. 模型、数据、feature生成规则部署到在线
    这一步是比较复杂的,也是RTP系统希望能解决的。以往的做法有点类似算法同学作为PM的角色来上线整个模型,思考如何将模型推到在线的各种系统上去。具体需要考虑的部分包括原始数据、模型数据、模型inference具体逻辑。

虽然大部分都已经有自动流程,但是完全新增的模型,整体上线的时间也会很长,更重要的是,从模型与数据的整体设计产出,到真正可服务的链路过长,导致整体的认知成本极高,依赖算法同学来串联整体系统最终完成模型服务的模式是非常低效而又容易出现问题的。

整体模型的样本特征等的管理平台我们把它叫做AOP平台,AOP平台会负责整个模型及样本的所有元信息的管理及在离线的一致性。下图中可以看到AOP的运作方式,AOP主要管理着整体的元信息,并负责协调样本和日志数据的一致性,离线数据库表与在线字段数据的一致性、离线与在线的特征处理方式的一致性、离线模型的训练、验证及自动发布到RTP系统。

AOP

运行效率-存储与计算

RTP平台主要的运行效率取决于对应特征及模型的计算过程,整个RTP设计优化的思路也围绕这几点而来。

架构优化-online2offline

在很长时间以来,在线服务的体系里都将业务的离线处理逻辑和在线计算逻辑分离开,用户需要协调离线数据处理过程和在线计算逻辑,为了完成对在线逻辑的一些性能优化,往往需要离线数据做一定的预处理或者索引构建等过程,而后才能让在线的服务使用。
环视其他有在线服务特性的系统,对于搜索引擎而言,类似“组合索引”、“过滤转倒排”等优化方式,包括正常的倒排索引,都是“因为可以加速在线检索过程”而生成的;对于数据库而言,类似“物化视图”的思路,也是因为可以加速在线的查询过程而在离线提前计算好;对于分析引擎而言也是一样的,为了能快速拿到统计数据,在索引构建的同时就会将统计结果预先计算好。这些方案的核心思路都是数据的构建是为了在线计算
RTP系统是基于suez平台实现的,在RTP之前,suez平台并没有为数据的构建是为了在线计算建立一套行之有效的优化通路,先变更离线数据的计算方式,然后在线才开启这个优化/功能,这实际上和数据的构建是为了在线计算的思路是矛盾的。现有的一些优化方案中都需要多处配置,先配置好离线,等离线生效了才能配置在线,造成了很多优化功能实际上难以大范围的用起来,这也反向的制约了我们做联动优化的意愿。
这一现象在RTP的场景中更为明显,RTP的一个设计原则在于让迭代变得更简单,因此在RTP中,我们大大的削减了用户所需要关心的优化选项和配置,极尽可能的减少用户所需要关心的“工程优化”的问题,这就迫使我们必须体系化的解决优化的问题。
ops

因此在过去的一年中,我们重构我们上线流程中涉及的大部分系统,将“用户应该做的优化”沉淀成一系列的optimize pass,从在线计算逻辑中推导出我们应该做的优化,并自动的生效的系统中。一些典型的应用,类似自动的离线predict、数据的format等都可以自动根据具体在线的运行逻辑而自动生成,大大降低了整体系统的优化的人力成本。

特征计算优化-codegen

特征的计算在整个RTP的系统中是非常重要的一环,无论是传统的LR、GBDT模型还是深度学习模型,都离不开基本的特征运算。对于特征运算而言,不仅需要考虑特征的表达能力和运算速度,还需要考虑扩展能力、组合能力等。

特征计算的过程实际上是一个非常结构化的数据的计算,在这一方向上,很长一段时间依赖RTP的特征计算都是解释执行的,而特征计算本身是较为固化的,解释执行在泛用性上是可以满足需求,但是性能上是不够优的,在过去的一年我们尝试了codegen技术,并取得了相当不错的结果,这部分细节我们在另一篇文章中已经总结了,具体可以看:
大规模深度学习预测场景下 codegen 的思考与应用

网络计算优化-异构计算

对于深度学习场景而言,异构计算是其中非常关键的一环,目前RTP平台不仅支持GPU,也大量使用FPGA来加速预测过程。
GPU在重计算的场景下有着巨大的优势,特别是一些CNN模型的场景下,GPU整体的吞吐和latency都明显优于FPGA,同时有良好的生态,整个机器学习领域甚至并行计算领域中,GPU的案例非常之多,前人都留下了无数的工作成果可以很方便的应用起来,例如量化、甚至于排序等都有现成可用的方案。
FPGA而言,对于非图像视频类场景而言,模型的计算复杂度不是特别高,很难发挥GPU完全的能力,从我们实践下来的结果看,FPGA非常适用于中小复杂度的计算,一方面是从成本角度看,FPGA相对于GPU而言是便宜得多的,另一方面FPGA对硬件的定制化能力更强,可以精细化调度和控制计算单元,使得整体硬件的能力能更加充分的被发挥出来,在刚刚过去的双十一,RTP用到的异构计算资源中,FPGA的数量已经超过GPU的数量,成为整个机器学习异构计算中相当重要的一员。
在我们看来,FPGA和GPU各有所长,对平台而言,这两种异构计算实际上是互补的,一个考虑泛用性,一个考虑成本;一个考虑高密度计算,一个考虑中小密度计算。这两种异构计算给了平台业务更多的选择和手段,同时给用户提供高灵活性和低成本。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
SQL 运维 搜索推荐
《揭秘,阿里开源自研搜索引擎Havenask的在线检索服务》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask的在线检索服务,它具备高可用、高时效、低成本的优势,帮助企业和开发者量身定做适合业务发展的智能搜索服务。
84538 138
|
并行计算 TensorFlow 调度
推荐场景GPU优化的探索与实践:CUDA Graph与多流并行的比较与分析
RTP 系统(即 Rank Service),是一个面向搜索和推荐的 ranking 需求,支持多种模型的在线 inference 服务,是阿里智能引擎团队沉淀多年的技术产品。今年,团队在推荐场景的GPU性能优化上又做了新尝试——在RTP上集成了Multi Stream,改变了TensorFlow的单流机制,让多流的执行并行,作为增加GPU并行度的另一种选择。本文详细介绍与比较了CUDA Graph与多流并行这两个方案,以及团队的实践成果与心得。
|
人工智能 搜索推荐 异构计算
|
11月前
|
运维 监控 搜索推荐
【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
424 0
|
搜索推荐 大数据 数据库
【Havenask实践篇】搭建文本检索服务
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文举例数据库检索加速的一个简单场景,使用Havenask对数据库的文本字段建立倒排索引,通过倒排检索列提高检索性能,缩短检索耗时。
114474 51
【Havenask实践篇】搭建文本检索服务
|
消息中间件 Docker 索引
【一文解读】阿里自研开源核心搜索引擎 Havenask简介及发展历史
本次分享内容为Havenask的简介及发展历史,由下面五个部分组成(Havenask整体介绍、名词解释、架构、代码结构、编译与部署),希望可以帮助大家更好了解和使用Havenask。
72746 0
【一文解读】阿里自研开源核心搜索引擎 Havenask简介及发展历史
|
自然语言处理 数据处理 调度
《Havenask分布式索引构建服务--Build Service》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask分布式索引构建服务——Build Service,主打稳定、快速、易管理,是在线系统提升竞争力的一大利器。
102054 3
《Havenask分布式索引构建服务--Build Service》
|
运维 搜索推荐 调度
Ha3搜索引擎简介
Ha3是阿里巴巴搜索团队开发的搜索引擎平台,它为阿里集团包括淘宝、天猫在内的核心业务提供搜索服务支持。
23768 1
|
人工智能 监控 算法
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践
TPP图化致力于打造一个算法在线服务领域易用、性能极致、迭代效率远超普通方式的产品。本文将介绍TPP图化以及2021年在性能、开发体验上的改进,并介绍未来TPP图化的规划。
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践