SlideShare a Scribd company logo
小米广告算法架构
及Pegasus在特征缓存的实践
郝刚 小米高级软件工程师 2021-09-25
在线预估平台
#2
小米效果广告概况
#1
离线机器学习平台
#3
Pegasus在特征缓存的实践
#4
小米效果广告概况
#1
20+
小米商业化媒体
应用商店
个性主题
多看阅读
浏览器
小米音乐
日历
小米视频
安全中心
天气
新闻资讯
OTT
小米画报
MIUI论坛
小米运动
小爱同学
虎扑 陌陌 迅雷 趣头条 开心消消乐
2000+
生态开发者
覆盖小米手机、电视、盒子、
生态链等全系资源
2021Q2实现广告收入45亿元,同比增长46.2%[1]
[1]小米集团2021年第二季度业绩报告
广告预估流程
广告库
十万级
召回
topN
排序
千级
广告算法架构
流量(应用
商店、浏
览器等)
流量接入
平台
请求
广告交易
系统
效果DSP
品牌/外部DSP
广告
检索
定向
过滤
广告
预估
广告
排序
广告实时数
据(Druid)
统计特征数
据(HDFS)
在线推理服务 粗排
CTR/CV
R精排
调价 重排
统计特征
pipeline
Online
Offline
广告历史数
据(HDFS)
模型
(HDFS)
模型训练
特征抽取
广告库
(HDFS)
用户特征
(Pegasus)
离
线
训
练
平
台
请求
广告列表
排序后的
广告列表
请求
在线预估平台
#2
在线推理服务
功能:根据业务需求,计算⼴告的预估
ctr、cvr、price等数值
3大行业、20+媒体、1000+广告位、峰值60wQPS
用
户
ID
广
告
ID
上
下
文
信
息
用户特征 广告特征 上下文特征
统一
资源
管理
LR
XGBoo
st
WideDee
p
Deepx
DenseSpars
e
ML
R
Pegasus
TB级用户数据天级/实时更新
HDFS
预
估
点
击
率
预
估
转
化
率
支持传统ctr业务与ocpx业务
持续支持主流模型
单模型10G级,保证加载速
度与更新质量
单模型亿级特征
请求命中数上万
在线推理服务-挑战
• 全媒体60W+峰值
QPS
• 数千台物理机
大规模
高并发
• 单模型亿级特征
• 单机200w+峰值
数值计算
密集计算
• 广告整体链路可用性不
低于99.9%
• 服务P99不⾼于70ms
低延迟
• 需要对算法和⼯程
都有成熟的理解
核心代码
开发难度大
• 收入3万+/分钟
• 服务质量直接和收
⼊挂钩
高质量要求
在线推理服务优化-堆外存储
堆外空间
JVM堆内
背景
在线服务加载的模型大小10G+,在更新
时服务受gc影响大,影响可用性
• 根据编码后特征数据的特点,定制优化的堆外Map
存储结构,性能高于原生HashMap
• 多位采样,解耦hash与数据分布特性,特征查询时间
下降33%
在线推理服务优化-数值化编码
离线预计算(去字符串编码)加速
(空间换时间)
请求上下
文
用户画像 广告数据
城市:北京 性别:男 小米MIX4
北京_男 北京_小米MIX4 小米MIX4
样本数据
模型
特征计算过程
数值化请
求上下文
数值化用
户画像
数值化⼴
告数据
城市:101 性别:201 301
301
特征计算过程
101<<3&201 101<<3&301
样本数据
模型
请求上下
文
用户画像 广告数据
离线预计算
通过定制的特征计算逻辑,结合离线预计算改善性能
• 数值化特征编码,
特征构造延时延下
降42%
背景
早期的特征使用字符串原值进
行拼接,性能低下
在线推理服务优化-降级熔断
商店集群
基线田
实
验
田
浏览器集群
基线田
实
验
田
商店
流控
原始
流量
浏览器
流控
路由网关
降级实验
候选集截断 候选集截断
• 2020及2021春晚期间成功抗住
平日峰值约18倍的流量,保证
广告服务可用
• 在线服务集成了这套限流与降
级方案,使服务的稳定性和应
急能力得到提升。
在线推理服务优化-架构升级
商店ctr
统一网关
浏览器ctr
商店cvr
浏览器
cvr
商店
ctr/cvr
浏览器
ctr/cvr
…
商店ctr 商店cvr
统一网关
粗排 粗排
商店ctr 商店cvr
策略服务
统一网关
统一粗排
商店ctr 商店cvr
策略服务
重排
…
统一CTR后日均收入提升21w 支持粗排后日均收入提升23w
在线资源校验
检测到新模
型
新模型校验
1.检测⽂件大小
2.检测⽂件结构
3.对⽐新模型和旧模型 的预
估CTR、CVR、 ECPM出分
推送新模型
到安全⽬录
更新模型
检测安全⽬
录下是否有
新模型
更新模型
主节点 其他节点
功能:保障线上不会加载有问
题的更新模型
现状:上线后多次成功拦截问
题资源,挽回收入损失
算法实验平台
功能:路由请求到合适的算法
实验,算法观测AA、AB实验
效果
现状:目前实验平台有500+
实验同时运行
按照⼴告位
路由
流量组1:商店精品ctr
流量组3:浏览器ctr
流量组2:商店精品cvr
流量组4:浏览器cvr
…
按照用户id
路由
流量组1:实验1
流量组1:实验2
流量组1:实验3
算法测试平台
功能:使用线上真实流量进行
测试,全链路压测
现状:建立算法上线前流程化
测试体系
线上服务 TCP_COPY
流量
测试平台
HDFS
Talos
测试服务
测试报告
模拟qps
流量回放
离线机器学习平台
#3
机器学习平台
训练数据生成阶段
特征配置 特征数据 训练样本
模型训练和上线阶段
算法开发 模型实验 上线更新
机器学习平台-挑战
• 特征、数据重复创
建
• 资深算法工程师开
发的code不能很好
的被分享
信息
无共享
• 算法同学各自维护
特征、数据、训练
pipeline
效率低下
• 数据健康度没有任何管
理
• 模型上线之前没有强制
性的做离线校验
质量
无保证
离线机器学习平台
特征平台
模型训练平台
特征注册、搜索、批量导入、导出
数据源注册、搜索、同步灌pegasus
多种主流模型的样本文件生成
样本注册、搜索、健康度展示
自定义模型code上传
自定义模型超参
版本控制
算法共享
平台化提升模型迭代效率
• 从特征到到样本全流程数据的管理和生
成,支持一键灌Pegasus供线上读取
• 一键开启实时特征和实时样本
• 特征配置自动化解析
• 支持从算法管理里面选择任意算法机型训
练
• 对接公司级别计算资源CloudML, Spark等
等
• 任务状态平台化管理和维护
• 每个任务的结果都支持可视化的metric,
结果清晰明了可评估
平台化保证数据和模型质量
• 数据源设置健康度,每个环节对数据异常
检查
• 不断完善集成测试用例
• 多维度数据指标展示
• 打分均值校验支持
• auc校验支持
• q分布校验支持
实时模型
用户A
点击
Talos实时流
点击日志
实时样本 模型
update
在线预估
相似用户B
新广告:MIX4开售 广告:MIX4开售
调整模型参数,为相似用户推
荐“小米MIX4”的内容
实时训练
实时化建设
实时请求
请求编号、用户
ID、广告ID
特征平台实时样本pipeline
在线预估服务
Pegasus特
征缓存
实时特征日志
实时下发日志
实时样本数据 实时行为日志
带label的实
时样本数据
小时级模型
小时级TFRecord
天级TFRecord
离线训练平台小时级模型pipeline
在线服务实时落盘特征数据到
talos,Flink任务join下发日志
写入pegasus
在Flink内流式Join点击、转化
日志,生成样本数据
离线机器学习平台-成果
积累特征数 发布实验数
覆盖媒体 覆盖行业
23,000+ 300+
应用商店、浏览器、小米视
频、主题、日历等20+媒体
网服、电商、金融、
游戏、教育等20+行业
离线实验 管理任务
20+ 200+
Pegasus在特征缓存的实践
#4
为什么选择Pegasus
• 在线特征2T数据存储在HBase
中,访问延迟较高
性能问题
• 集中更新数据时约8w写QPS,受
HBase的gc影响,读延时大幅上涨
• 为解决HBase更新时的gc问题,服
务端引入缓存,但由于数据量大及
服务gc问题效果不佳
可用性
• Redis等内存存储价格
高昂
平衡成本
基于Pegasus的特征缓存设计
IMEI (用户ID) 数据源id
HashKey SortKey Value
特征值列表
用户特征
BucketId 数据源id 特征值列表
统计特征
基于Pegasus的特征缓存设计-离线写入
数据源1
imei1 datasource1 value
imei2 datasource1 value
imei3 datasource1 value
…
数据源2
imei1 datasource2 value
imei2 datasource2 value
imei4 datasource2 value
…
imei1 datasource1 value, datasource2 value
imei2 datasource1 value, datasource2 value
imei3 datasource1 value
imei4 datasource2 value
…
离线实时join MultiSet Pegasus特
征缓存
基于Pegasus的特征缓存设计-在线读取
请求imei
实验使用数据源id集合
MultiGet Pegasus特
征缓存
• 每次请求Pegasus只用请求imei需要的
特征
• 开启Backup Request,降低长尾延迟
基于Pegasus的读写分离设计
实际效果
• 读P99平均延迟由5ms降低到1ms
读写分离,写高峰期的读延迟由20ms降低
到2ms
• 使用bulkload功能,支持高速6wQPS写
入
更新B集群
&compact&
设置为读优先
数据特征更新流程
ZK状态
PegasusA
集群
B集群设置为
写优先,提升
写入qps
更新B集群的
zk状态为只读
&更新A集群
的zk状态为只
写
只读
更新A集群
&compact&
设置为读优先
A集群设置为
写优先
更新A集群的
zk状态为只读
&更新B集群
的zk状态为只
写
PegasusB
集群
只写
只写
只读
只读
只写
update zk
update zk
C++
SSD
持久化
低延迟
基于Pegasus的实时样本设计
广告下发日志队
列
实时服务端日志
队列
conn
ect
校验、过滤
校验、过滤
自定义Join函数
广告文件
填充广告数据
Pegasus
请求数据队列
Pegasus
On Flink
Key by [请求编号, 用户ID, 广告ID]
Key by [广告ID,数据源ID]
在线推理服务
Pegasus
Pegasus在算法架构的使用现状
离线特征平台
用户特征
实时特征
规模 吞吐量
4集群
7张表
30w+读qps
6w+写qps
数据
6T+数据量
谢 谢

More Related Content

Similar to The Advertising Algorithm Architecture in Xiaomi and How does Pegasus Practice in Feature Caching

20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
R.O.C.Executive Yuan
 
院會報告案:亞洲矽谷推動方案
院會報告案:亞洲矽谷推動方案院會報告案:亞洲矽谷推動方案
院會報告案:亞洲矽谷推動方案
releaseey
 
527 易视科技bp houde
527 易视科技bp houde527 易视科技bp houde
527 易视科技bp houde
Rui (Nash) Yang
 
Picoway Company Profile 1.5
Picoway Company Profile 1.5Picoway Company Profile 1.5
Picoway Company Profile 1.5
picoway
 
Picoway Company Profile V1.5
Picoway Company Profile V1.5Picoway Company Profile V1.5
Picoway Company Profile V1.5
picoway
 
Tt Seminar Taipei 9605(1)
Tt Seminar Taipei 9605(1)Tt Seminar Taipei 9605(1)
Tt Seminar Taipei 9605(1)wangjiaz
 
悠播Hd
悠播Hd悠播Hd
悠播Hd
benimaru0407
 
1091217 r02
1091217 r021091217 r02
1091217 r02
releaseey
 
GMIC 2012 - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军
GMIC 2012  - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军GMIC 2012  - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军
GMIC 2012 - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军Great Wall Club
 
期末報告
期末報告期末報告
期末報告
凱勛 張
 
Bmc china presentation_workshop_chi
Bmc china presentation_workshop_chiBmc china presentation_workshop_chi
Bmc china presentation_workshop_chifm2008
 
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker FaireIBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
CAVEDU Education
 
Tiktok抖音,今日头条-商务合作方案
Tiktok抖音,今日头条-商务合作方案Tiktok抖音,今日头条-商务合作方案
Tiktok抖音,今日头条-商务合作方案
Hardway Hou
 
AI-enabled digital transform for manufacturing
AI-enabled digital transform for manufacturingAI-enabled digital transform for manufacturing
AI-enabled digital transform for manufacturing
Wang Johnson
 
小米品牌特色的投影仪
小米品牌特色的投影仪小米品牌特色的投影仪
小米品牌特色的投影仪
Darren Tsang
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Li Yi
 
20200730【簡報】經濟部:「智慧機械產業推動方案成果」
20200730【簡報】經濟部:「智慧機械產業推動方案成果」20200730【簡報】經濟部:「智慧機械產業推動方案成果」
20200730【簡報】經濟部:「智慧機械產業推動方案成果」
R.O.C.Executive Yuan
 
P1
P1P1
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf
Na Lee
 
Programmatic Buying: Brand Age——roy
Programmatic Buying: Brand Age——royProgrammatic Buying: Brand Age——roy
Programmatic Buying: Brand Age——roy
Simba Events
 

Similar to The Advertising Algorithm Architecture in Xiaomi and How does Pegasus Practice in Feature Caching (20)

20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
20160908國家發展委員會: 「亞洲‧矽谷推動方案」報告
 
院會報告案:亞洲矽谷推動方案
院會報告案:亞洲矽谷推動方案院會報告案:亞洲矽谷推動方案
院會報告案:亞洲矽谷推動方案
 
527 易视科技bp houde
527 易视科技bp houde527 易视科技bp houde
527 易视科技bp houde
 
Picoway Company Profile 1.5
Picoway Company Profile 1.5Picoway Company Profile 1.5
Picoway Company Profile 1.5
 
Picoway Company Profile V1.5
Picoway Company Profile V1.5Picoway Company Profile V1.5
Picoway Company Profile V1.5
 
Tt Seminar Taipei 9605(1)
Tt Seminar Taipei 9605(1)Tt Seminar Taipei 9605(1)
Tt Seminar Taipei 9605(1)
 
悠播Hd
悠播Hd悠播Hd
悠播Hd
 
1091217 r02
1091217 r021091217 r02
1091217 r02
 
GMIC 2012 - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军
GMIC 2012  - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军GMIC 2012  - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军
GMIC 2012 - XiaoMi Technology, Presentation by Mr LeiJun, 小米科技 雷军
 
期末報告
期末報告期末報告
期末報告
 
Bmc china presentation_workshop_chi
Bmc china presentation_workshop_chiBmc china presentation_workshop_chi
Bmc china presentation_workshop_chi
 
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker FaireIBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
 
Tiktok抖音,今日头条-商务合作方案
Tiktok抖音,今日头条-商务合作方案Tiktok抖音,今日头条-商务合作方案
Tiktok抖音,今日头条-商务合作方案
 
AI-enabled digital transform for manufacturing
AI-enabled digital transform for manufacturingAI-enabled digital transform for manufacturing
AI-enabled digital transform for manufacturing
 
小米品牌特色的投影仪
小米品牌特色的投影仪小米品牌特色的投影仪
小米品牌特色的投影仪
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
 
20200730【簡報】經濟部:「智慧機械產業推動方案成果」
20200730【簡報】經濟部:「智慧機械產業推動方案成果」20200730【簡報】經濟部:「智慧機械產業推動方案成果」
20200730【簡報】經濟部:「智慧機械產業推動方案成果」
 
P1
P1P1
P1
 
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf
 
Programmatic Buying: Brand Age——roy
Programmatic Buying: Brand Age——royProgrammatic Buying: Brand Age——roy
Programmatic Buying: Brand Age——roy
 

More from acelyc1112009

Apache Pegasus (incubating): A distributed key-value storage system
Apache Pegasus (incubating): A distributed key-value storage systemApache Pegasus (incubating): A distributed key-value storage system
Apache Pegasus (incubating): A distributed key-value storage system
acelyc1112009
 
How does Apache Pegasus used in SensorsData
How does Apache Pegasusused in SensorsDataHow does Apache Pegasusused in SensorsData
How does Apache Pegasus used in SensorsData
acelyc1112009
 
How does the Apache Pegasus used in Advertising Data Stream in SensorsData
How does the Apache Pegasus used in Advertising Data Stream in SensorsDataHow does the Apache Pegasus used in Advertising Data Stream in SensorsData
How does the Apache Pegasus used in Advertising Data Stream in SensorsData
acelyc1112009
 
How to continuously improve Apache Pegasus in complex toB scenarios
How to continuously improve Apache Pegasus in complex toB scenariosHow to continuously improve Apache Pegasus in complex toB scenarios
How to continuously improve Apache Pegasus in complex toB scenarios
acelyc1112009
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
acelyc1112009
 
The Introduction of Apache Pegasus 2.4.0
The Introduction of Apache Pegasus 2.4.0The Introduction of Apache Pegasus 2.4.0
The Introduction of Apache Pegasus 2.4.0
acelyc1112009
 
How does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsDataHow does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsData
acelyc1112009
 
The Design, Implementation and Open Source Way of Apache Pegasus
The Design, Implementation and Open Source Way of Apache PegasusThe Design, Implementation and Open Source Way of Apache Pegasus
The Design, Implementation and Open Source Way of Apache Pegasus
acelyc1112009
 
Apache Pegasus's Practice in Data Access Business of Xiaomi
Apache Pegasus's Practice in Data Access Business of XiaomiApache Pegasus's Practice in Data Access Business of Xiaomi
Apache Pegasus's Practice in Data Access Business of Xiaomi
acelyc1112009
 
How do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine partHow do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine part
acelyc1112009
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend part
acelyc1112009
 

More from acelyc1112009 (11)

Apache Pegasus (incubating): A distributed key-value storage system
Apache Pegasus (incubating): A distributed key-value storage systemApache Pegasus (incubating): A distributed key-value storage system
Apache Pegasus (incubating): A distributed key-value storage system
 
How does Apache Pegasus used in SensorsData
How does Apache Pegasusused in SensorsDataHow does Apache Pegasusused in SensorsData
How does Apache Pegasus used in SensorsData
 
How does the Apache Pegasus used in Advertising Data Stream in SensorsData
How does the Apache Pegasus used in Advertising Data Stream in SensorsDataHow does the Apache Pegasus used in Advertising Data Stream in SensorsData
How does the Apache Pegasus used in Advertising Data Stream in SensorsData
 
How to continuously improve Apache Pegasus in complex toB scenarios
How to continuously improve Apache Pegasus in complex toB scenariosHow to continuously improve Apache Pegasus in complex toB scenarios
How to continuously improve Apache Pegasus in complex toB scenarios
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
The Introduction of Apache Pegasus 2.4.0
The Introduction of Apache Pegasus 2.4.0The Introduction of Apache Pegasus 2.4.0
The Introduction of Apache Pegasus 2.4.0
 
How does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsDataHow does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsData
 
The Design, Implementation and Open Source Way of Apache Pegasus
The Design, Implementation and Open Source Way of Apache PegasusThe Design, Implementation and Open Source Way of Apache Pegasus
The Design, Implementation and Open Source Way of Apache Pegasus
 
Apache Pegasus's Practice in Data Access Business of Xiaomi
Apache Pegasus's Practice in Data Access Business of XiaomiApache Pegasus's Practice in Data Access Business of Xiaomi
Apache Pegasus's Practice in Data Access Business of Xiaomi
 
How do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine partHow do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine part
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend part
 

The Advertising Algorithm Architecture in Xiaomi and How does Pegasus Practice in Feature Caching