训练平台调研
背景
训练平台调研
调研
海云捷讯:AIStack人工智能管理平台
- GPU切片:GPU一卡多用(最多1:10),提高资源效率,节省系统建设成本。
- 自定义镜像:用户按需创建自定义镜像,系统内置镜像和按需要建立镜像可供选择,便于扩展。
- 实例模型:内置了丰富的算法模型,涵盖了图像处理、语音识别、自然语言处理等不同类别和不同应用场景,用户可直接访问界面进行体验。
- 支持多框架:支持PyTorch、Tensor-Flow、Caffe、MXNet等主流深度学习和机器学习框架,支持自定义算法和常用深度学习模型。
- 一站式流程支持:可提供数据集管理、模型开发训练、模型评估、模型发布及预测服务等功能,帮助用户快速释放AI服务。
- 降低学习成本:四种深度学习框架的高层封装,无需关心运行方式,只需专注于模型本身的结构以及训练模型的操作,大大降低了使用深度学习框架的学习成本。
美团:一站式机器学习平台
快速打造分布式深度学习训练平台
提升迭代的速度
深度学习框架的多样性和趋同性:“统一”多个深度学习的框架,即通过工程的手段开发一个训练平台,将深度网络的训练、测试过程抽象道统一的界面中。同时,配合数据管理(网络存储和对象存储),环境管理(容器),CI和自动部署等,形成一个深度学习的“循环”,这能极高的提升迭代的速度。
迭代性和周期性
深度学习的迭代性和周期性
深度学习训练的一个特点是具有很强的迭代性,即网络结构确定后,可以周期性地通过增加训练数据而提高模型的泛化能力。这个迭代周期越短,模型更新的速度越快,就能获得更好的效果和更快的产品更新。这个特点使得训练过程非常适合自动化。
计算资源的稀缺和浪费
2012年AlexNet开启这一轮深度学习热潮的时候,网络只有8层,但就算只有8层也需要大量的计算。更何况2016年153层的ResNet,最近甚至出现了上千层的网络结构,这让计算资源变的非常稀缺。另一个方面,随着训练数据的快速增长,分布式训练变得很迫切和必需,这进一步增加了计算资源的稀缺性。
目前大多数的训练过程使用Nvidia GPU,而Nvidia GPU虚拟化的欠缺,使得GPU资源变的不容易管理。当数据中心有成百上千块GPU的时候,很容易出现一个矛盾的现象:GPU计算资源稀缺,同时又有部分GPU资源被闲置浪费,整体的利用率比较低。
其实这个现象在云计算和虚拟化出现之前就存在,只是那个时候浪费的是CPU、内存、IO和存储。现在同样的问题出现在GPU上而且显得更严重和迫切。当然,无论是国内还是国外的公有云、私有云厂商都在积极的解决这个问题。在没有成熟和稳定的方案出来之前,我们需要先自力更生,研发一个私有“GPU云”来应对这个问题。
国内外的互联网和IT公司都在非常积极的解决上诉问题,有更深层次和更广泛的平台级解决方案,比如Google TensorFlow、FaceBook FBLearner、阿里云PAI、腾讯DX-I等等。你可能已经发现,目前能提供这些平台服务的厂商也基本上是公有云的提供商。其实这是自然而然的事情,在Iaas,Saas之后,Aaas(AI as a service)已经是业界的共识和趋势。但是这些公有云平台的现状还在快速发展且不太完善,比较难以满足我们实际的需要。例如,这种通用平台难以快速响应最新的、实验性的深度学习技术;在细节实现和灵活性上难以满足中小客户的需求;另外一个很重要的原因是,目前公有云上的GPU或HPC实例的价格比较高,从成本角度,中小型公司还没有足够的动力把深度学习的业务全部迁移到公有云。
基于上面谈到的几点原因,我们决定研发一个深度学习的训练平台,这个平台要具备的功能包括:
- 管理多台训练服务器,尤其是带有GPU的高性能计算服务器,可把训练任务分到到分布式的计算节点上执行计算
- 集成多种训练框架,抽象训练过程,提供Web界面,上传和指定相关数据和参数,即可启动训练任务并监控和分析训练过程;
- 池化计算资源,尤其是GPU资源,做成“GPU云”。启动训练任务时,平台会自动把训练任务分配到合适的GPU上;
- 打通数据中心,可以直接把数据存储平台中的数据导入到训练节点上中;
- 隔离计算节点中的资源和环境,兼容不同型号的GPU、不同版本的CUDA/CuDNN和不同的深度学习框架。
开源的OSS服务也有不少选择。比较知名的是Ceph。我们用过一个更轻量级的SeaweedFS,稳定性和性能也不错。