爱奇艺 AI 推理平台演进和实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 爱奇艺AI推理平台演进和实践 张俊钦 爱奇艺深度学习平台研究员
2.
3. 1. 2. 3. 4. 背景介绍 AI 推理平台架构演进 AI 推理平台落地优化实践 总结与展望
4. 1. 背景介绍
5. 背景介绍 • AI 在爱奇艺的应用场景
6. 背景介绍 • AI 业务的归类 CV/NLP 搜索/广告/推荐 爱奇艺 AI 推理平台
7. 背景介绍 • 从离线模型训练到模型部署 高可用 离线 模型训练 模型 上线 低延迟 监控告警 在线 生产部署 弹性扩缩容 稳定性
8. 背景介绍 • 爱奇艺深度学习平台总体架构 创作 Applications 生产 AI Frameworks 标注 TensorFlow 分发 播放 … … Pytorch Data Platform Algorithm Store AI as a Service Resource Management & Orchestration Infrastructure 数据样本 分析 训练平台 Mesos CPU/GPU 推理平台 工作流 Kubernetes 公有云 网络 存储
9. 2. AI 推理平台架构演进
10. AI 推理平台架构演进 • 架构演进 V1 V2 - 自定义镜像 - 容器化部署 - 支持 VIP - 抽象环境 - 模型独立 - 版本管理 V3 - 模型热更 新 - 支持多版 本 - 服务发现
11. 架构演进 V1 • 自定义推理镜像  • Docker 容器化部署  • 将模型封装到镜像,推送到 Docker Registry 绑定 VIP,对外提供 HTTP 服务 模型版本升级  通过更新镜像和重启容器 Docker Registry Image 部署 爱奇艺 AI 推理平台 VIP 对外 服务
12. 架构演进 V1 • • 优点  可以自定义复杂的前后处理逻辑  可以封装多个相互关联 AI 模型的推理 缺点  推理镜像环境依赖和训练环境难对齐  大部分是 Python 代码封装,推理效率比较低
13. 架构演进 V2 • 抽象深度学习框架环境  • 模型文件独立管理  • 平台提供各个框架版本的容器镜像 平台提供 S3 对象存储来上传/下载模型 模型加载和版本升级  传递模型 S3 路径到容器,启动时下载,版本更新通过重启容器 S3 对象存储 爱奇艺 AI 推理平台 模型 下载 VIP 对外 服务
14. 架构演进 V2 Step1: Step2: 上传模型文件 到 S3 存储 用 S3 路径通过平台 创建一个模型 Step3: 选择对应的镜像 和实例规格 8 CPU 20G MEM 1 GPU 模型 A 实例 2 Step4: 通过平台创建 Endpoint 服务, 自动把 S3 路径传递到 容器中 爱奇艺 AI 推理平台 Step5: 容器启动时 从 S3 下载 模型文件, 然后加载模型 Step6: 模型 A 模型 A VIP 对外 服务 升级时,传递新模型 S3 路 径到容器,并逐个重启
15. 架构演进 V2 • • 优点  推理服务只依赖于模型文件  支持模型优化,提高推理效率 缺点  模型更新时版本不统一  不能适应搜索/广告/推荐类业务对 TCP 长连接的需求
16. 架构演进 V3 • 模型版本动态热更新  • 模型多版本管理  • 通过 S3 对象存储下载模型,实时热更新,不需要重启容器 可以同时服务模型的多个版本,支持回滚 服务发现  支持 Consul 服务发现 S3 对象存储 爱奇艺 AI 推理平台 模型 下载 服务发现
17. 架构演进 V3 概念定义 • Model  • Model Version   • 表示某个 Model 的一个具体版本,指向一个具体的模型文件 一个 Model 下可以包含多个模型版本,版本号必须是自增的 Serving Set Version  • 表示某一个 AI 模型,一个逻辑的模型名称,并不包括任何模型实体文件 当前服务的模型版本集合,包含一个或多个 Model Version Endpoint  一个推理服务,包括一个或多个容器实例,每个实例服务相同的模型版本
18. 架构演进 V3 Model A Model Version V1 V2 Step3: 设置期望的 模型版本 … Vn-1 Serving Set Version Model A V2 Model A Vn Step4: 执行升级接口, 平台自动发送 HTTP 升级 请求到每个容器 Vn Step1: 上传模型 到 S3 存储 Step2: 创建对应的 模型版本 当前期望 模型版本为 Model A 的 V2 和 Vn Step5: 直接下载 模型版本 然后加载 Endpoint Docker Docker V2 V2 Vn Vn
19. 架构演进 V3 • 模型版本滚动升级 Model A Model Version Step1: V1 设置期望的 服务版本 V2 Serving Set v1 Model A V10 Model A V11 升级 … V10 Step2: V11 设置期望的 服务版本 V12 Serving Set v2 Model A V11 Model A V12 升级
20. 适配更多业务场景 • • XGBoost/FM 机器学习模型  在 TensorFlow Serving 的基础上增加了 XGBoost 和 FM 模型的推理支持,并对外开源  https://github.com/iqiyi/xgboost-serving ANN 向量检索  将 HNSW 算法封装成 TensorFlow OP 加入到训练 和推理服务  在 TensorFlow 中训练索引导出模型,部署推理服 务
21. 适配更多业务场景 • • • CTR 大模型分布式推理 将 TF 模型里的 Embedding 矩阵拆分出 来独立部署 增加远程 Embedding lookup OP
22. 3. AI 推理平台落地优化实践
23. 落地优化实践 • 指标监控  • 自动扩缩容  • 优化其他地区的推理服务从北京地区下载 AI 模型 请求限流  • 根据监控指标变化进行动态扩缩容 跨地区模型下载  • 服务内部的延迟,QPS 等监控指标 让推理服务在高负载下仍然可以降级服务 模型热更新请求毛刺优化  模型热更新期间,客户端请求超时毛刺优化
24. 指标监控 • • 使用 Brpc bvar 增加服务内部的延迟,QPS 等监控指标 bvar 是多线程环境下的计数器类库,几乎不会给程序增加性能开销
25. 自动扩缩容 • 支持 4 种类型的自动扩缩容策略 Scheduled Rule • 支持定时的扩缩容 Range Track Rule • 对特定指标的变化 进行动态扩缩容 • 使指标保持在指定 范围(range)内 Target Track Rule • 对特定指标的变化 进行动态扩缩容 • 使指标尽可能接近 并小于指定目标 (target) Predict Rule • 对指标的变化进行 提前预测,并根据预 测结果提前进行扩缩 容
26. 跨地区模型下载 • • • S3 对象存储集群部署在北京地区 在中西部地区的推理服务需要从北京地区下载模型 当实例数量过多,模型较大时对带宽压力比较大,时间过长 北京地区 中西部地区 Endpoint Docker Docker V2 V2 Vn Vn 模型 下载 模型 上传
27. 跨地区模型下载 • • 增加下载代理,通过智能 DNS 重定向 代理分片多线程下载,本地缓存 北京地区 模型 下载 中西部地区 Endpoint Docker Docker V2 V2 Vn Vn 代理 智能 DNS 模型 上传
28. 请求限流 • • 线上业务在高峰期出现服务过载不断重启的情况 原因是 GRPC Server 处理线程不断增加导致 OOM
29. 请求限流 • 限制 GRPC Server 的最大线程数量 MainWorkLoop 重新进入 PollForWork 从队列 中获取 GRPC 消息 已到 quota DoWork 开始 处理 GRPC 消息 判断 GRPC 线程数量 是否到了 resource quota 未到 quota 创建一个新的 WorkerThread DoWork 开始 处理 GRPC 消息 新线程
30. 模型热更新请求毛刺优化 • 模型热更新会出现短暂的客户端请求超时现象(称之为毛刺现象)
31. 模型热更新请求毛刺优化 • • • 通过 Warmup 来预热模型 使用 Jemalloc 做内存分配优化 模型参数分配和 RPC 请求内存分配分离
32. 4. 总结与展望
33. 总结与展望 • • 目前线上以 V1 和 V3 两种为主  V1 的框架比较多样,主要使用是 CV/NLP 类业务  V3 的框架以 TensorFlow 为主,主要使用业务是搜索/广告/推荐 后续的方向  利用 Triton 统一 CV/NLP 类模型部署  推理模型自动优化   TVM 自动编译优化 超大推荐类模型在线训练和推理支持
34.
35.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 17:47
浙ICP备14020137号-1 $Carte des visiteurs$