魅族推荐平台架构解析(三)

2024-03-23 00:58

本文主要是介绍魅族推荐平台架构解析(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近线模块

该层主要是利用流式处理的技术对用户实时产生的行为日志进行加工,利用一些高效、高性能的算法生产有价值的数据,如处理算法数据召回、实时数据统计等等。

 

如图,近线模块-流式日志数据传输分为以下几个部分:

  • 数据通过Uxip从移动端、Web端进行收集;
  • 收集后的数据通过Agent转发到Flume进行专线或公网等网络传输;
  • 在中心机房的Flume将日志数据等进行归并传输到MetaMq;
  • 基于MQ消息可以对数据进行流式处理如实时计算、数据落地等等。

 

资源调度管理

如下图,机器动态划分分组,可以按业务进行划分,也可以按照模型资源情况进行划分。


资源调度管理的作用在于:

  • 解决单机重组问题,降低业务之间的相互影响,按照业务对性能的要求及复杂对分配不同的硬件机器。同时能够整合资源,不同大小的配置都可以在集群中得到应用;
  • 解决内存模型存储限制问题,将模型分散到不同的集群中进行横向扩展;
  • 在请求过程中请求根据Master进行动态调度,大型资源加载过程中机器请求自动调度到其它机器,解决大型资源加载过程中对业务的影响

 

在线模块-存储

在存储上实现多样性,根据不同的场景与性能指标采用不同类型的存储组合,实现业务隔离,根据模型的存储情况划分结果,实时调动管理所有分配数据。

 

LocalCache一般用来处理一次请求中访问数据频次超高但数据容量不需要太大的数据,如LR模型数据。

MysqlHbaseRedis这三种存储的选择一般从性能和各自的特性出发点来选择最合适的,各自都是集群的方式,MySql可以按业务数据进行拆分成不同的集群进行访问。

 

离线-机器学习平台

我们的离线-机器学习平台可以呀提供特征工程、统计、训练、评估、预测和模型发布等功能,覆盖机器学习全流程,算法同学可以通过拖拽的方式就能完成模型训练和评估。

其优势在于:

  • 模型训练及评估界面化,与调度平台无缝集成,使得算法离线模型处理及模型发布上线等更加高效简单;
  • 系统集成多种算法可进行逻辑回归LR、聚类Kmeans、模型LDA、协同过滤CF等多种模型训练;
  • 分布式数据处理与计算。

监控告警

整个模型和训练的过程都是处于离线和分布式环境下,监控在整个系统中必不可少。我们的监控告警系统的特点是:

  • 细粒度性能监控,可以细粒度到具体的业务请求接口,从业务QPS、PV量、响应时长(P50.P70,P99,P999…)等;
  • 应用服务器及操作系统各指标监控;
  • 业务指标监控,如算法效果及其它业务指标监控;
  • 监控指标可根据具体的需求扩展。

 

四、魅族推荐平台挑战和愿景

  • 挑战10亿/每天以上在线实时计算请求PV数;
  • 支撑起百亿条/每天的日志进行实时计算,毫秒级别的进行用户模型更新;
  • 支撑更多的特征集计算,同时在线计算响应时长更加的短;
  • 支撑更多的魅族产品线业务;
  • 推荐平台对外开放,能为行业其它的企业提供专业的推荐服务;
  • 深度学习集成。

这篇关于魅族推荐平台架构解析(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836635

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三