推荐引擎优化实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 推荐引擎优化实践
蔡平
美团点评事业部
2. 目录
• 搜推概述
• 引擎优化
• Q & A
3. 产品形态
内容 / POI / 交易
用户
4. 技术领域
排序
(粗精排)
召回
物料库
千万级
百/千级
十级
技术栈
数据
计算
引擎
检索
Tekken(自建)
流批一体
Spark/MR
机器学习框架
ES
Faiss
Flink
Idxlib
Idx Builder
海量 Hbase Tidb
存储 Hive/HDFS DataLake
基础设施
框架
GPU
编译
Docker
策略引擎
Tensorflow Pytorch
FG Pipeline
TVM
yarn/k8s
XLA
TRT
Mrpc
DAG Runtime
DSL
Dataframe
Playground
MQ/Kafka
5. 核心挑战
• 量化目标: 渗透 / CTR / CVR / 时长 …
算力
算力:每一层的能力决定下一层的上限
效率
可用性
6. 目录
• 搜推概述
• 引擎优化
• Q & A
7. 系统链路
8. 思路归纳
搜推场景的特点
I.
单请求海量计算CPU密集,数据交互规模大IO密集
II. 离线、近线大规模计算
硬件
OS
运行时
性能视角的设计
•
分片、高内聚、CPU/IO分离、近似计算、增量计算
其他性能优化思路
•
并行、异步、内存优化、缓存化、压缩、预计算
应用层
9. 收益归纳
策略迭代效率提升
在线推理GPU利用率
标签召回耗时
+100
%
-40
% 向量检索负载
索引聚合耗时
-70
%
+50
%
10. 检索框架
2018 早期
2019~2021 探索
点评探索内容推荐,Java栈 检索与排序引擎C++化,分
通用搜索引擎 布式检索、向量检索
2025~ 整合
整合搜推检索引擎、KV存储
11. 检索框架
检索框架
• 高性能的C++分布式检索引擎
• 支持倒排、正排等检索能力,Payload海选
• 支持向量检索和标量过滤
12. 索引聚合
索引聚合框架优化
I.
CPU/IO分离:算子抽象、配置化编排
II. Cache:Tidb、Hbase
DataSource Joiner 离线数据 分布式全量
Joiner 二进制构建
MySQL 增量(mq)
Joiner 增量构建
Idx Builder
S3存储
Online Searcher
Proxy
III. 并行:Primary ID分片
Service
KV……
索引聚合耗时
-70
%
Data Cache
Portal
Shard 0
引擎管控平台
Shard 1
13. 检索框架
倒排检索优化
Searcher
I. 预计算:离线海选截断、Payload预排序
II. 并行:召回和打分并行、协程
Query parser Result merge
Opt searcher Scorers &Filters
III. 近似计算:TopK截断
IV. 内存:内存池、零拷贝
V. 磁盘IO:Directio、预追增量
VI. 网络IO:同机房优先路由、协议优化
多路召回耗时
-40
%
Proxy
(router)
Score plugin Filter plugin
Payload index Faiss index
Table
14. 检索框架
向量检索
• 基于Faiss、支持标量过滤等
• 业务LBS属性
• DSSM + HNSW à MIND + IVFPQ,召回率99%
15. 检索框架
向量检索优化
I. 预计算:按Key分区构建索引
II. 并行:SIMD指令、锁粒度优化
III. 近似计算:HNSW、IVF、 LSH
IV. 量化压缩:PQ、SQ
向量检索单机负载
+50
%
更多见 https://github.com/erikbern/ann-benchmarks
16. 排序框架
排序框架
• 高性能C++在线预估引擎
• 离在线统一Fglib
• 一站式平台
17. 排序框架
排序框架优化
I. 特征样本:列存、增量计算
II. 模型训练:热启增量、混合精度
III. Predictor:特征缓存、计算图优化
IV. TFServing:算子融合、frozen、stream、 自定义
embedding_lookup
迭代效率月到周,GPU平均利用率
+100
%
训推更多见《美团技术沙龙第79期:美团搜索/推荐/广告稀疏模型
的端到端工程实践》
18. 策略引擎
策略引擎
• 标准化算子、标准化流控、标准化数据协议
• 手写complete future异步框架 à DAG编排
业务层 业务算子
基础层 DSL定义
通用算子
工具链
Playground
DAG Runtime
算子接口抽象
数据抽象
Dataframe
19. 策略引擎
策略引擎设计
I. 并行:子图并行
II. 异步: IO算子异步
III. Dataframe:列存结构
IV. 图优化: IO算子合并、缓存、剪枝
性能持平,迭代效率提升
20. Q&A
21. 招聘:搜索推荐研发工程师岗位
邮箱:ping.cai@meituan.com
更多技术干货
欢迎关注“美团技术团队”