《2018年微博深度学习平台基于K8S的解决方案.pdf》由会员分享,可在线阅读,更多相关《2018年微博深度学习平台基于K8S的解决方案.pdf(32页珍藏版)》请在三个皮匠报告上搜索。
1、微博深度学习平台基于K8S的解决方案声明:本文档部分图片来源于网络目录01.微博深度学习平台2.离线训练篇3.在线预测篇4.K8S应用总结深度学习平台微博业务场景微博深度学习工作流微博深度学习平台架构深度学习平台1智能裁剪视频盗链检测音频分类明星识别视频Logo图片OCR图片:物体识别、OCR、人脸、明星、颜值、智能裁剪视频:版权检测、logo识别、直播盗链检测音频:标签、语音、语音转文本算法:VGG/resNet/Yolo/SSD/FAST+微博业务场景-多媒体内容理解关注排序热门推荐相关推荐微博业务场景-CTR任务复杂特征简单模型:特征工程+传统模型(LR/FM)简单特征复杂模型:Wide
2、&Deep、DeepFM、DeepCross 模型部署模型预测原始数据特征处理模型预测样本生成模型训练特征处理模型训练数据传输模型评估业务评估微博深度学习工作流K8S应用环节关注流工作流weiflowKubernetesyarnmesos调度业务应用算法tensorflow/caffespark/hadoop计算云弹性计算集群云高性能GPU集群资源高性能在线集群weips算法训练weilearn算法服务weiserving模型评估模型训练样本库推荐服务模型服务模型库特征服务特征库推荐流分类/检测图像/视频分类.深度学习平台端上引擎weiMobile内容生产微博深度学习平台存储 一站式服务平台,
3、加快业务开发速度,缩减业务迭代周期 业务无须关注底层工程细节和资源分配,专注于算法和效果调优weilearn-微博深度学习训练框架基于arena的分布式解决方案背景深度学习训练框架训练篇2业务实践效果tensorflow 分布式训练arena 阿里云深度学习工具图片训练业务实践 业务模式多:CTR/多媒体内容理解/多媒体内容生成背景-业务接入门槛高 分布式训练:分布式实施复杂,学习成本高 训练框架多:tensorflow、caffe、mxnet、kaldi 迁移成本高:不同框架的设计与编程模式不同计算资源异构(CPU/GPU)资源需求多样(单机单卡/单机多卡/多机多卡)训练框架类型多,集群部署
4、复杂框架迭代速度快,集群部署成本高集群管理资源管理任务管理任务需要隔离任务管理难度大分布式任务日志查看困难背景-保证平台稳定性样本库训练框架调度计算模型库CTR样本自然语言样本视频与图像样本样本处理CTR业务NLP图片视频VGGYoloinceptionresnetGRULSTMWide&DeepDeepFMDeep Cross NetworkSpark超参数资源算法配置Arena/K8SYARNDNNRNNCNNCTRNLP图像业务视频业务语音业务weilearn-深度学习训练框架任务配置化,降低业务接入成本统一资源调度,提高任务效率与稳定性tensorflow-分布式训练单机多卡 allr
5、educe&in-graph=MirroredStrategy多机多卡 all reduce&between-graph=CollectiveAllReduceStrategyuParamaterServer 模式clusterSpecTF_CONFIGHorovodDistributionStrategyParamaterServerringAllreducePS&Allreduce 集群拓扑模式u分布式策略模式uAllreduce模式tensorflow-分布式训练u集群拓扑:静态集群拓扑组织复杂u端口管理:需要额外的机制保证端口不冲突u任务稳定性:节点故障处理机制缺失u状态跟踪:分布式日
6、志与状态查看困难u资源隔离:原生tensorflow的资源抢占 遇到的问题CPUGPUHDFSKubernetes/NVidia Docker RuntimeKubeFlow/tfjobs/mpijobstensorflow/caffe/horvod/pytorcharena cliu阿里云开源https:/ service,对pod具体地址透明u网络通信:跳过service路由转发,提高性能u网络通信:pod 使用host 网络,保证集群通信性能Arena-基于K8S的分布式解决方案 Arena kubeflow opreator for tensorflow 简化任务管理与保障多种代码同步
7、机制(rsync/git)端口分配管理对外透明自定义任务保障与处理策略支持GPU调度 支持多种集群拓扑支持MPI模式支持PS模式支持单机任务提交 统一状态监控与日志收集日志状态-日志展示视图TFJob dashboard任务状态-支持tensorboard可视化模式资源状态-任务运行资源情况监控Arena-基于K8S的分布式解决方案76h接入平台后 standalone=distribute(4 woker 2 ps)raw pic=tfrecord keras=weilearn/weislim4h 10W sample incpetionV3 64 batchsize 30 epoch st
8、andalone接入平台前实践效果-分布式图片训练基于K8S的分布式预测框架高可用高性能多任务多模型weiServing-分布式推理框架负载均衡/服务保障/性能优化混合部署/混合调度预测篇3持续训练持续部署olsubmit-模型服务部署异构CPU集群kubernetes/ol-submitRPC服务框架LR/GBDTDNN/DeepFM/W&D统一版本管理/动态加载/批量化机制/多模型计算引擎特征映射Embedding数据处理异构GPU集群CNN业务应用模型服务框架排序模型服务多媒体分析服务自然语言分析服务weiServing-基于K8S的分布式预测框架集群调度层核心架构层算法模型层weiSe
9、rving-基于K8S的分布式推理框架CT/CD持续训练持续部署高可用高性能多任务多模型HA/HPMT/MM自然语言分析多媒体分析排序模型服务下载与解码多媒体理解向量索引文本分词文本分类语义分析CTR多任务:支撑排序与推荐、自然语言分析、多媒体分析服务场景不同场景对资源的需求各有差异多模型:同一在线样本需要选择多个算法模型进行处理视频下载视频抽帧视频指纹图片指纹关注流排序人脸识别图片分类视频分类音频分类热门流推荐CRF分词/JIEBA分词色情检测情感检测关键词模型主题模型MT/MM 多任务多模型 背景多任务p 常见任务类型CPU密集型任务GPU密集型任务IO密集型任务DownloadCNN相似
10、索引MT/MM 多任务多模型CPU密集型密集型GPU密集型密集型IO密集型密集型LR/FM相似索引人脸识别图片分类视频下载图片下载 混合部署方案k8S+docker 进行资源隔离label机制进行任务组的区分ResourceQuota进行业务组资源限制多模型p 常见CTR模型类型LR模型FM模型DNN模型u提高资源利用率 实践效果在线服务数30+100+模型类型数MT/MM 多任务多模型HA/HP 高可用高性能过滤WeiServing模型预测平台推荐排序服务召回粗排精排分发控制X1000+X300+背景单次请求量:100KB+(100+个特征,N+条物料)可用性要求高响应时间敏感服务端入流量大
11、uK8S 负载均衡机制 四层链路service 基于IPtable与IPVS 七层链路ingressu服务端的负载均衡 优:服务故障对客户端透明/松耦合/缺:增长网络链路,转发引起性能损耗,proxy可能成为瓶颈u缩短调用链路,保证服务性能u保证大流量下服务高可用图中 尖峰为某业务扩量到30%时,proxy网卡将近被打满的情况HA/HP 高可用高性能 客户端负载均衡ClientZookeeperServerServerServer服务注册服务发现u基于zookeeper的服务发现与机制userver动态权重调整,保证异构集群性能稳定uclient 加权轮询模式的负载均衡服务调用服务缓存HA/H
12、P 高可用高性能 客户端负载均衡uLivenessProbe 健康检查ExecAction 执行健康检查命令检查失败时重启PoduinitContainer 解决任务依赖加载业务方自定义健康检查程序模型初始化HA/HP 高可用高性能 服务保障 深度学习预测优化u计算优化 减少计算量 加快计算速度u通讯优化 减少通信量 加快通讯速度ubatching将线上请求批量聚合后,传递到GPU计算运行u重写算子调整Eigen实现,重写onehot算子HA/HP 高可用高性能ubatch:15+/per requestHA/HP 高可用高性能 实践效果峰值QPS50W+日调用量10ms100亿+平均响应时间
13、关注流u推荐排序场景 如果更新周期长,样本分布离线与在线有差异 及时捕获用户短期行为兴趣,快速反馈分发当前用户兴趣内容 模型持续训练持续部署,提升推荐精准度,保持线上推荐效果CT/CD 持续训练持续部署 背景热门流正文页推荐拓展阅读CT/CD 持续训练持续部署 方案模型验证离线训练实时训练模型训练模型部署在线服务离线验证在线发布在线验证在线一致性/模型稳定性/一键打包端口探测蓝绿部署/灰度发布AUC/准确率/召回率/流量切换版本更新全量发布 verson1verson2kubenetes/olsubmit模型库uk8s olsubmit 一键模型部署uk8s cronjob 周期执行配置中心配
14、置中心算法库模型版本配置服务发现配置OLSubmitSourcercontainerModelServingcontainerdeployment/pod服务封装服务封装uk8s deploymentu自动配置管理u触发式自定义灰度发布u服务部署分钟级u提高模型迭代效率CT/CD 持续训练持续部署Logger containercluster模型库模型库模型文件特征处理配置服务库服务库模型部署热升级kubectl olsubmit 实践总结4K8S在微博深度学习平台的应用分布式深度学习训练,一键集群任务创建,提高训练与调度效率在线预测服务异构混合调度,提高资源利用率在线预测服务保障,保证服务高可用持续训练持续部署,保障线上模型效果K8S后续计划离线训练 数据本地化,支持更多的框架类型打通离线在线集群,基于自定义指标,在线服务动态扩缩容,应对热点流量