申请试用
HOT
登录
注册
 
2 爱奇艺视频推荐领域的 ANN 实践-张吉
0 点赞
0 收藏
6下载
AI 检索技术社区
/
发布于
/
182
人观看

议题简介:

在推荐算法领域,召回-粗排-精排是成熟稳定的系统方案。而传统过滤/模式匹配的召回算法在个性化、实时、智能推荐的需求上力不从心,对快速增加的各种非数值类特性和海量数据的处理无能为力,同时在线的推理过程对性能又提出了严苛的要求。我们结合 Youtube DNN 等多种向量召回模型与重排序的需求,探索了数种向量检索的服务的技术与产品,结合这些技术 和 Tensorflow Serving,完成广告、搜索、视频推荐等业务在爱奇艺的召回基础服务。

嘉宾简介:

张吉,爱奇艺深度学习云研发工程师。

展开查看详情

1.爱奇艺视频推荐领域的 ANN 实践 爱奇艺 张吉

2. 01 02 03 背景介绍 工程实践 问答

3.推荐系统

4.推荐系统框架 1. 速度快 2. 数据量大 召回阶段 排序阶段 百万 量级 千量级 十量级 生成 所有候选集 排序 候选集 基于规则 基于模型 用户观看历史 用户上下文 用户特征

5.工程实践 • 算法选型 • 工程部署

6.算法选型 • 模型召回 softmax • 速度快 ReLU Youtube Net Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.

7.算法选型 • 模型召回 softmax • 速度快 ReLU 视频向量 用户向量 Youtube Net Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.

8.算法选型 用户向量 视频向量 视频得分 视频 ID topk

9.算法选型 用户向量 视频向量 ANN 内积

10.Serving 结构 用户特征 用户向量 DNN ANN ID + score

11.Serving 结构 • 整体模型如何更新 • Serving 效率 Version 1 C DNN Version 2 • 接口与 TF Serving 一致 L I E N Version 1 T ANN Version 2

12.方案一 用户特征 用户向量 gRPC TF Serving ANN 任意接口 DNN model Service ID+score ID+score

13.方案一技术选型 • Tensorflow • Milvus • 文档丰富 • 封装完善 • 开箱即用

14.方案一结构 docker TF Serving 用户侧 实时行为特征 Milvus SDK PB RPC 视频列表 Milvus (打分) Index

15.Tensorflow Serving 改造 • 检查签名 TF Serving • 解析 proto Serving Model request management • TF runtime 计算 Tensorflow • 封装 proto Runtime Return proto RunPredict https://github.com/tensorflow/serving/blob/r1.14/tensorflow_serving/servables/tensorflow/predict_util.cc#L167

16.Tensorflow Serving 改造 • 检查签名 TF Serving • 解析 proto Serving Model request management • TF runtime 计算 Tensorflow Runtime • 封装 proto Milvus SDK RPC Return proto RunPredict https://github.com/tensorflow/serving/blob/r1.14/tensorflow_serving/servables/tensorflow/predict_util.cc#L167

17.模型升级 Version 1 TF Serving PB RPC Version 2 C Milvus L Index TF Serving I PB RPC CONSUL E N Version 1 Milvus T Index TF Serving PB RPC Milvus Index

18.优缺点 • 开发速度快 • 不够灵活 • 模型版本难以管理

19.Milvus 场景&配置 • 只读场景 创建 • 数据量在百万级别 Milvus A meta.sqlite meta.sqlite-shm • 索引文件可共享 加载 Milvus B meta.sqlite-wal tables 加载 Milvus C DB

20.TF serving 与 Milvus 结合 • TF serving 静态编译 GRPC,Protobuf • Milvus 静态编译 GRPC,Protobuf Tensorflow serving 1.14 GRPC(TF) 1.19.1 Protobuf(TF) 3.7.1 Milvus 0.10.1 GRPC(milvus) 1.24.1

21.业务需求 • 召回后重排序 • 召回模型带版本 • 前置过滤

22.方案二 TF Serving 用户特征 DNN gRPC ANN ID+score 其他逻辑 TF Runtime

23.方案二技术选型 • Tensorflow serving • Hnswlib • 性能好 • 线程模型简单 • Head only

24.方案二 • 使用 HNSW OP 创建计算图 TF Serving • 升级部署与纯 TF Serving 一致 Serving Model request management DNN ANN 其他逻辑 Tensorflow Runtime Return proto RunPredict

25.优缺点 • 可支持更灵活的逻辑 • 模型版本易于管理 • ANN OP 需要开发

26.模型升级 Tensorflow serving Version 2 Version 3 C L Tensorflow serving I CONSUL Version 2 E N Version 3 T Tensorflow serving Version 1 Version 2

27.整体 Serving 工作流 PB emb PB Index 1. 上传 Version 1 Version 1 S3/NFS S3/NFS PB emb PB Index Version 2 Version 2 4. 下载模型/索引 PB emb Version X 3. 上传 用户侧 2. 创建 模型 实时行为特征 服务实例 索引 Milvus 索引 方案1/方案2 HNSW 视频列表 在线任务 (打分) Index 离线任务

28.HNSW OP 性能测试 操作系统 centos7 python 版本 3.6.10 cpu intel 6248(tf-intra=8) tensorflow 版本 1.14(build with avx512) hnsw 版本 0.4.0(build with avx2) 网络延迟(10 次) rtt min/avg/max/mdev = 0.165/0.201/0.260/0.029 ms 压测工具 Locust 0.14.5

29.HNSW OP 性能测试(纯 ANN) 数据集 索引参数 请求参数 准确率 ef=128 M=64 sift-128-euclidean Top=100 95.35% ef=128 batch=1000 concurrency wait_time qps avg min max 50% 90% 99% 99.9% 99.99% cpu% 20 (3,5) 3229 1 1 19 1 2 2 3 11 333% 40 (3,5) 6525 3 1 27 1 2 2 4 12 620%

0 点赞
0 收藏
6下载
相关文档