推荐系统线上服务编排及架构说明

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 阿里巴巴技术专家傲海为大家带来推荐系统线上服务编排及架构说明的介绍。内容包括在线推理服务的架构说明和线上多目标问题两部分。

课程地址:https://developer.aliyun.com/course/2052

一、在线推理服务-架构说明

在如何构建企业级推荐系统系列课程中,前两节课我们分别介绍了召回算法及架构、排序算法及架构。本节课我们会介绍一下如何对排序和召回算法的结果做一个服务编排,以及最终我们的模型跟现场业务是如何对接的。首先,我们介绍一下整个的框架,用户的业务场景,特别是互联网的推荐业务,它的高峰基本上会集中在中午和晚上。这个时候如何减少咱们的资源消耗。比如说,你的高峰需要消耗10台机器,低谷可能用1台机器。如果你没有弹性的机制,在线下买,一定要买10台机器才能满足服务高峰的一个需求。但是,如果你使用了云上的服务,就可以把这一套东西做到弹性。相比于你一直拥有10台机器,会节约很多成本,这是一个推荐业务需要考虑的场景。所以在服务编排阶段通常会采用云上的这套架构去做,来应对它的业务的一个潮汐效应。
另外一个要解决的问题就是,召回和排序这样的一个流程究竟该怎么创建起来。我们的方案是,基于高扩展弹性业务场景,采用阿里云ACK构建整体推理架构。调用流程分为3步。第一步,多路召回:物品协同过滤,语义召回,热门及运营策略召回取回上千条候选集。第二步,曝光去重:基于该用户阅读历史,去掉已经曝光内容,去掉基于运营策略不能推荐的内容。第三步,排序:推理模块调用排序过程时根据用户ID及物料ID,获取用户特征及物料特征后,分批调用PAI-EAS服务返回排序结果。右面这张图其实讲的是排序PAI-EAS在线推理服务的一个在线监控的能力。就是你要观察排序模型的一个水位,进行动态的扩容、缩容,防止你的RT过高,或者QPS达不到业务的需求。这是整个的在线服务编排的框架。
image.png

二、线上多目标问题

最终模型上线的时候,我们还会面临一个问题。我们设计整个架构,有的时候并不是单一目标,而是多目标的。就拿文章或视频推荐为例,很多的客户都希望说,不光是我推荐的视频被用户点击了,用户还需要多看一会儿,这样的话就会规避一些标题党。比如说有些视频把标题起得很吸引人,但其实内容很浮躁。用户点进去看一眼觉得没意思就走了,这样的话他整个的使用体验也不好。所以它可能是多目标的,既要他点击,也要他多看一会。针对这样的一个多目标情况,我们该怎么设计整套的方案,怎么去编排整套的推荐召回应用逻辑,有两种方案。一种是说多模型解决多目标问题。假设就是点击和时长这两个目标,你可以有一套推荐召回模块专门针对点击。
另一块专门针对使用时长去做训练。这两个结果你把它融合一下,得到最终的推荐结果。但代价就会比较大,你要同时维护两个系统,而且二者的比例也不好去量化。方案二是合并多目标成单模型,是目前采用得比较多的一个方案,也是效果相对来讲会比较好的一个方案。你把目标一和目标二这两个目标先融合成一个目标。比如说你把是否点击和观看时长按照一个比例去压缩下,把它都放到0~1之间。不点击就0,点击就是1。然后你把观看时长去做一个归一化,把整个时间都缩小到0~1的区间去。这样,你整个的区间就变成了0~2,变成一个单目标的数值。这样的话你就可以针对这一个目标去训练你的召回、排序模型,从而拿到最终的结果。这样做的好处是你只需要维护一套推荐业务的建模流程,会比较方便维护,最后的效果也通常是方案二好一些。
image.png

三、参考资料

最后,介绍一下我们给大家准备的一些资料。这第一个link它对应的是PAI团队结合自身过去几年在推荐领域的一些探索,总结了140页的推荐业务的动手实践文档。没有机器学习背景的人基于我们这些文档,也可以在一周之内搭建一套企业级的推荐系统,大家如果感兴趣可以去用一下。另外这一个是PAI的产品地址。
image.png

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2月前
|
消息中间件 监控 API
在Python中如何实现微服务架构,及相关的服务间通信方案?
Python微服务架构涉及服务划分、注册发现、通信协议选择(如HTTP、gRPC、消息队列)及服务间通信实现。每个服务应自治,有独立数据库和部署流程,并需考虑容错(如分布式事务、重试、熔断)和监控日志。API网关用于请求管理和路由。实际操作需根据需求和技术栈调整,并关注服务拆分和数据一致性。
24 5
|
2月前
|
运维 网络协议 安全
长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践
本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。
111 1
|
2月前
|
网络协议 Linux
Linux DNS服务详解——DNS主从架构配置
Linux DNS服务详解——DNS主从架构配置
422 4
|
3月前
|
监控 负载均衡 Dubbo
|
2月前
|
Dubbo Cloud Native 网络协议
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
39 1
|
2月前
|
监控 持续交付 开发者
深入探讨后端服务的微服务架构设计与实践
【2月更文挑战第10天】随着互联网应用的不断发展,微服务架构作为一种灵活、高效的解决方案在后端服务开发中备受关注。本文将深入探讨微服务架构设计与实践,从服务拆分、通信机制到部署管理等方面进行详细剖析,旨在帮助开发者更好地理解和运用微服务架构。
|
6天前
|
机器学习/深度学习 搜索推荐 算法
高并发推荐系统架构设计-1 基本介绍
【5月更文挑战第5天】推荐系统是信息过滤工具,通过处理物料数据和行为日志,运用预处理、特征工程、算法模型学习用户兴趣,实现个性化推荐。在线架构包括AB分流、多路召回、模型排序和业务规则重排序。旧版线上架构由C++编写的API和engine服务组成,HTTP请求经SLB、Nginx、FastCGI到达服务程序,召回和排序服务处理推荐。存在并发瓶颈问题。
26 1
|
7天前
|
Kubernetes Cloud Native 持续交付
探索云原生架构的未来:如何优化资源管理和服务部署
【5月更文挑战第6天】 随着云计算的快速发展,云原生技术已成为企业数字化转型的关键驱动力。此篇文章深入探讨了云原生架构的核心组件及其在资源管理和服务部署方面的优化策略。通过分析容器化、微服务及自动化管理的实践案例,本文旨在为读者提供一套系统的方法论,以利用云原生技术实现更高效、灵活且可靠的IT基础设施。
25 2
|
11天前
|
负载均衡 Java API
构建高效微服务架构:API网关与服务熔断策略
【5月更文挑战第2天】 在微服务架构中,确保系统的高可用性与灵活性是至关重要的。本文将深入探讨如何通过实施有效的API网关和设计合理的服务熔断机制来提升分布式系统的鲁棒性。我们将分析API网关的核心职责,包括请求路由、负载均衡、认证授权以及限流控制,并讨论如何利用熔断器模式防止故障传播,维护系统的整体稳定性。文章还将介绍一些实用的技术和工具,如Netflix Zuul、Spring Cloud Gateway以及Hystrix,以帮助开发者构建一个可靠且高效的微服务环境。
|
12天前
|
存储 负载均衡 监控
【Go 语言专栏】构建高可靠性的 Go 语言服务架构
【4月更文挑战第30天】本文探讨了如何利用Go语言构建高可靠性的服务架构。Go语言凭借其高效、简洁和并发性能,在构建服务架构中备受青睐。关键要素包括负载均衡、容错机制、监控预警、数据存储和服务治理。文章详细阐述了实现这些要素的具体步骤,通过实际案例分析和应对挑战的策略,强调了Go语言在构建稳定服务中的作用,旨在为开发者提供指导。

热门文章

最新文章