赞
踩
先简单和大家介绍一下腾讯内部的业务及相关组织架构的现状,有助于帮助大家理解为什么我们会基于后面的架构来设计整套方案。
下图的应用大多数人经常会用到,比如微信、腾讯视频、游戏等等APP,其背后承载的技术也不尽相同,涉及了NLP、计算机视觉、强化学习、语音等不同的AI技术。
比如我们玩的《王者荣耀》或者下围棋,背后所对应的就是用强化学习训练出来的一个机器人,玩游戏没有队友陪同时,机器人可以满足我们对战合作等游戏需求。
不同的业务部门,APP对外需求也不同,均会针对自己的业务场景做一些AI平台的定制。我们做的是底层算力,给业务部门提供服务时,在考虑整体资源利用率的情况下,也要为各业务便捷地去做些定制服务,这就是腾讯内部的一个多租户的现状。
接下来,介绍一下腾讯内部业务的一些特点以及大概规模。
目前的环境是基于开源项目TKEStack,TKEStack是腾讯公有云TKE的开源版本,是一个开源的容器云平台解决方案,用的KubernetesV1.14版本,操作系统是腾讯自研的Linux操作系统,已经为GPU或者腾讯内部业务做了一层性能的调优和bugfix。
GPU节点是NVIDIA的V100、P100,个别会有一些M40的机器。网络联通使用100G的RoCE,既能够提供以太网的支持,又能够提供RDMA的网络协议支持,对于用户去做一些多机通信的优化有事半功倍的效果,也从硬件层面保证了整体的使用效率。
接下来介绍一下我们是怎么完善、开发以及设计这一整套流程的。
这里先介绍一下关于Kubeflow以及Kubeflow里面一些主要的组件,帮助大家理解其中的一些具体业务,或者设计。
Kubeflow是什么呢?
Kubeflow自从2017年底发布,目前逐渐成为主流的在Kubernetes上面跑机器学习、深度学习等训练或者推理任务的主要工具。
Kubeflow包含非常多的组件,比较多的像Operator ,或者像自动调参的工具。
先介绍一下Operator,它是Kubernetes中的一种概念,主要是用来打包、部署以及管理用户的任务。但在Kubeflow里面,Operator主要用来管理机器学习或者深度学习里面的任务。
那么它能帮用户做什么呢?
比如在多机的任务下面,如何去管理和维护一个任务的多个节点,以及之前通信是怎么做的,怎么能够帮助用户管理整个Pod以及任务的生命周期,比如某一个Pod失败了,整个任务是终止还是有一些其他的容错办法,这个都是由Operator来完成。
目前主流的Operator有几种,会对应每一种框架。比如用的最多的TF-Operator,主要对应的是tensorflow,MPI-Operator主要对应Horovod,Pytorch和Caffe2的Operator,它们针对各自的框架都有一些定制的场景。
这里着
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。