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

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

课程地址: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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6天前
|
存储 Linux KVM
Proxmox VE (PVE) 主要架构和重要服务介绍
Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。
59 7
|
3月前
|
安全 前端开发 JavaScript
逆向海淘代购集运系统:sugargoo的技术架构与创新服务解读
逆向海淘代购集运系统整合中国电商资源,为海外用户提供便捷购物及物流服务,降低购物成本。sugargoo系统搭建攻略包括: - **需求分析与规划**: 深入了解目标市场需求,明确服务特色。 - **平台开发**: 选用合适技术栈,开发关键功能模块,集成电商数据。 - **物流合作**: 建立物流合作关系,集成物流API提升自动化。 - **支付解决方案**: 支持多种支付方式,保障支付安全。 - **客户服务**: 提供多语言支持,建设专业客服团队。 - **营销与推广**: 优化SEO,利用社交媒体扩大品牌影响。
|
9天前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性
微服务架构中,如何确保服务之间的数据一致性
|
23天前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
22 5
|
27天前
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
31 3
|
10天前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
2月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
40 2
|
2月前
|
消息中间件 Java API
解密微服务架构:如何在Java中实现高效的服务通信
微服务架构作为一种现代软件开发模式,通过将应用拆分成多个独立的服务,提升了系统的灵活性和扩展性。然而,实现微服务之间的高效通信仍然是许多开发者面临的挑战。本文将探讨在Java环境中实现微服务架构时,如何使用不同的通信机制来优化服务之间的交互,包括同步和异步通信的方法,以及相关的最佳实践。
|
2月前
|
Kubernetes 安全 Serverless
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
66 5
|
2月前
|
编解码 Linux 数据安全/隐私保护
Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
为满足在Linux平台(x86_64与aarch64架构)上实现轻量级RTSP服务的需求,我们开发了一套解决方案。该方案通过调用`start_rtsp_server()`函数启动RTSP服务,并设置端口号及认证信息。支持AAC音频和H.264视频编码,可推送纯音频、纯视频或音视频流。此外,还支持X11屏幕采集、部分V4L2摄像头采集、帧率/GOP/码率调整、摄像头设备选择与预览等功能。对于音频采集,支持alsa-lib和libpulse接口。整体设计旨在提供150-400ms的低延迟体验,适用于多种应用场景。
下一篇
无影云桌面