您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[网易]:Kubeflow产品化落地的设计与思考 - 发现报告
当前位置:首页/其他报告/报告详情/

Kubeflow产品化落地的设计与思考

2023-03-09网易路***
Kubeflow产品化落地的设计与思考

汪勇武网易数帆-智能计算团队Ku b ef l o w产品化落地的设计与思考 Copyright © 2020 by NetEaseKubeflow是什么当今IT界最活跃的两大技术:1.以Kubenetes为代表的云计算2.以tensorflow、pytorch为代表的机器学习Kubeflow作为桥梁将当今最炙手可热的两大技术结合在一起。 Copyright © 2020 by NetEaseKubeflow是什么重点:1.Toolkit (工具集)2.simple、portable、scalable(简单、可移植和可扩展。一句话云原生)3.to deploy best-of-breed open-source systems(我们不生产水,我们是大自然的搬运工)4.Anywhere you are running Kubernetes, you should be able to run Kubeflow.(还是云原生) Copyright © 2020 by NetEaseKubeflow是什么一句话描述:用云原生的手段把社区最优秀的AI框架集成在一起。 Copyright © 2020 by NetEaseKubeflow是什么那我们来看看Kubeflow都集成了哪些优秀的开源框架 Copyright © 2020 by NetEase6EasyAI机器学习平台-产品示意图Infrastructure(产品化基础架构)AlgorithmEngine (大规模稀疏、图神经网络、分布式计算、计算框架服务)专家开发环境模型/教程市场自定义算子免编码拖拽建模数据源管理镜像中心代码服务数据中心权限管理用户画像营销推荐社交推荐风险管控CRM管理工业智造游戏发行数据产品EasyAIKernelEasyAIOS在线服务用户中心交互式建模可视化建模特征平台(推荐垂域)Jupyter交互式建模Jupyter模型市场训练服务训练可视化作业管理弹性扩缩容多种部署方式模型性能监控大数据基础架构网易/公有云GPU/CPUKubernetes国产AI计算生态的Kubernetes高性能计算集群为AI开发者打造的一站式、高性能分析建模平台,满足人工智能业务场景需求。 Copyright © 2020 by NetEase7EasyAI机器学习平台-服务现状----服务70+模型,峰值近万QPS音乐广告音乐推荐Lofter推荐智慧企业NLP杭研数据服务部eHR人力资源有道严选传媒智慧企业定位网易支付易现 Copyright © 2020 by NetEaseEasyAI机器学习平台-服务现状 Copyright © 2020 by NetEase业务模块-交互式建模Notebook Servers Copyright © 2020 by NetEase业务模块-交互式建模Notebook ServersKubeflow对Notebook server进行了云原生的改造,引入了一个CRDnotebook来进行对notebookserver的管控Notebook-controllerApi-serverjupyter-web-appIstio-gatewayNamespace1Notebook-serverNotebook CRDNotebook-serverNotebook-serviceNotebook-serverNamespace2Notebook-serverNotebook-serverNotebook-serviceNotebook-serverwatch Copyright © 2020 by NetEase业务模块-交互式建模Notebook ServersKubeflow原生的Notebook在工业场景有什么问题:1.如何支持数据和算法工程师需要的大量框架2.如何打通公司的数据平台3.如何不改变工程师原有的工作模式 Copyright © 2020 by NetEase12业务模块-交互式建模为AI开发者提供的交互式建模环境,支持TensorFlow、Pytorch、spark等计算框架,覆盖环境安装、代码编写调试、任务提交等多个开发环节。开发前:统一的资源和环境管控开发中:沉浸式编程体验开发后:任务提交及任务监控统一镜像中心训练环境在线推理引擎——统一镜像中心,预发布AI+GPU镜像——基于K8s架构统一管控CPU、GPU硬件资源。Notebook开发环境——数据产品的无缝对接——支持定义Hadoop集群——集成jupyterlab,支持多计算框架。——支持与本地IDE无缝互通——支持专家级开发环境——一键式任务提交——任务实时监控 Copyright © 2020 by NetEase13环境、资源配置代码编辑本地IDE互通业务模块-交互式建模 Copyright © 2020 by NetEase业务模块-FairingKubeflowFairing•KubeflowFairing 是一个Python package,用于帮助用户在不同平台下高效构建、训练、部署一个训练任务•KubeflowFairing 的设计目标:•方便用户打包训练任务:让用户可以很容易地将训练程序,依赖的库打包成docker镜像•方便扩展到多云平台:提供high-level API ,方便用户在云平台上提交训练任务,而不用关心底层实现 Copyright © 2020 by NetEase业务模块-FairingKubeflowFairingKubeflowFairingNotebook(local、kubeflow)localTraining(kubernetescluster)Serving(kubernetescluster)预处理构建镜像并推送运行作业 Copyright © 2020 by NetEase业务模块-Fairing•原生Fairing SDK对用户代码具有侵入性,易用性不足。平台基于SDK封装了Client,用户编写yaml格式配置文件即可提交任务。•支持使用GPU设备,并选择特定GPU型号•深度学习平台集群中有多种型号的GPU,如1080-Ti,P40,K40m等。如果用户任务对GPU型号有要求,比如网络模型特别大,要GPU显存较大,那么可以配置任务使用P40显卡。•tfjob编排模式•binpack模式,多个ps,worker进程会尽量调度到同一个节点,以降低通信代价。•spread模式,多个ps,worker进程会尽量分散到不同的节点,以降低节点的计算压力。•独占节点•在一些业务中,用户有独占节点的需求•任务跨机房调度,同一个任务的多个pod调度到同一个集群中,避免跨机房通信的性能损失。•扩展MPI-Job模块,支持用户提交MPI任务。 Copyright © 2020 by NetEase业务模块-Fairing Copyright © 2020 by NetEase业务模块-EasyAI-TrainingFrameworks for Training到Kubeflow1.1默认安装的训练框架有:1.MPITraining2.MXNetTraining3.PyTorchTraining4.TensorflowTraining社区还集成了其他的训练框架:1.XGBoost2.Caffe2 Copyright © 2020 by NetEase业务模块-EasyAI-TrainingFrameworks for Training到Kubeflow1.1默认安装的训练框架有:1.MPITraining2.MXNetTraining3.PyTorchTraining4.TensorflowTraining社区还集成了其他的训练框架:1.XGBoost2.Caffe2 •EasyAIStudio、EasyAIDev提交训练任务的CR给K8S•相关的训练框架operator watch CR资源并构建相应的训练任务•支持tensoflow、pytorch训练框架•支持ALLReduce和PS分布式训练架构业务模块-EasyAI-Training 赋能:1.统一训练镜像集成常用的训练框架2.打通猛犸数据平台3.添加资源监控和报警业务模块-EasyAI-Training分享:后续会在km就Kubeflow常用的训练框架进行专题的技术分享(源码、常见问题解决等) 业务模块-推理服务 业务模块-推理服务功能异常丰富,用上了大量的云原生的技术,可以在上面讲很多的故事。问题:1.层次结构这么深,性能问题如何解决2.需要专业的团队来维护上面所有的技术栈。 业务模块-推理服务SeldonCore和BentoML都是社区开源的开箱即用的推理框架,支持各类框架训练的模型。感兴趣的话可以自行去社区深入研究。 Copyright © 2020 by NetEase业务模块-推理服务最终方案中在LB和服务之间加了nginx来实现grpc的7层负载均衡。基于sidecar、consul、consul-template来实现服务副本发生变化后nginx的动态感知。 Copyright © 2020 by NetEase26在线模型服务(EasyAIServing)-低延迟高并发推理引擎在线推理服务可视化建模业务系统交互式建模多类别模型支持支持机器学习模型、深度学习模型。支持TF-serving、PMML、Docker image等多种部署方式。无缝对接可视化建模板块,一键式模型部署。多版本服务支持支持模型的多版本管理,以及在线服务的平滑升级,支持服务回滚。弹性扩缩容针对流量高峰低谷,支持服务资源弹性扩缩。目前平台稳定运行2年以上,部分模型峰值上万QPS。高并发低延迟高并发高吞吐,服务毫秒级响应时长;广告业务峰值带宽40Gbps+,超时率万分位。模块定位:在线模型及推理服务的管控中心,和业务系统对接,提供高并发低延时推理服务。开放架构方便外部业务系统对接,例如对接决策引擎系统。 Copyright © 2020 by NetEase业务模块-可视化建模(Pipeline)熟悉网易有数大数据平台的同学对数据开发中的Pipeline肯定不会陌生,其实KubeFlow的Pipeline和大数据平台的Pipeline没有本质区别。KubeFlowPipeline就是云原生的Pipeline,基于云原生的argc来实现DAG的调度。KubeFLowPipeline的使用方式:1.基于Pipeline的SDK构造Pipeline2.将自己写的代码通过UI上传到PipeLine,argc会将代码渲染成DAG图。3.点击执行熟悉网易有数大数据平台的同学可能发现了,这不就是和网易有数大数据平台的使用方式一模一样吗。 Copyright © 2020 by NetEase业务模块-可视化建模(Pipeline)KubeflowPipeLine的设计思想:1.KubeflowPipeLine有3个核心的概念:•实验(Experiment)•运行(run)•Metadata(数据集、训练代码、模型、训练环境、超参等)实验是一个资源的集合,运行是一次执行pipeline,而且每次run都会记录包括运行过程产生的各种Metadata。方便对历史的run进行管理和对比。有点类似进程和线程的关系。 Copyright © 2020 by NetEase29可视化建模(EasyAIStudio)-低门槛建模管理及调度案例示意图为AI开发者提供的可视化建模环境,基于内置算子、用户自定义算子,低门槛帮助用户实现AI模型构建,同时帮助用户轻松完成数据预处理、模型训练、模型上线等整个建模流程的串流及调度。基于模板及内置算子快速构建业务模型。低代码机器学习建模(EasyAIProgramming)深度集成大数据资产,统一的数据管理和权限管控。无缝对接大数据资产(EasyAIDataAccess)实验粒度,进行建模流程统一管控和分享,快速复用。实验管理及复用(EasyAIExperiment)无缝对