相信和我一样,有很多刚入门学习ML、DL的亲们都会遇到一个问题,那就是没有足够的算力去跑自己的网络。而自己去买一块显卡可能又成本太高。在我研究了数天,尝试了各种云资源之后,现在终于总结出低成本高效的云服务了。
本来想在这篇文章的标题加上“新手”两字的,但是实际上即使是高手也同样可以很好的使用到这些资源。
这次我介绍和对比的资源主要来自于以下几个平台
微软Azure云
谷歌GCP
淘宝GPU机器
美团云
(想看结论的亲们可以直接拉到最下面)
微软Azure云
Azure在国内并不是特别出名,而且国内的Azure也很坑(Azure分中国版和国际版),我们此次说的是国际版的Azure。
在国际版的Azure中,可以申请试用,这需要你有一张Visa或者MasterCard的信用卡。申请试用后可以在一个月内使用200美刀的额度,而且一个月后还可以继续使用Azure的免费服务。
/zh-cn/free/
在这时,我们会发现,虽然有额度,但是有的区域的虚拟机是无法创建的,而可以创建的VM中好像没有GPU的机器。实际上是有的,只是藏得比较深。不过Azure的配额是可以通过反馈提交申请的,似乎也没有什么额外要求。下图是申请在东南亚区使用NV系列虚拟机成功后的邮件。
显卡型号 单精度浮点 价格 位置
P100 | 10.6T | 1848 | 美国中南部
M60 | 9.7T | 894 | 美国东部2
K80 | 8.74T | 736 | 美国东部2
如果使用额度的话,看这样子是不是还可以,能跑几天?但是有个关键点,以上的单精度浮点运算能力并不是这个机器真实的运算能力。微软卖的是显卡核芯,双芯卡会被拆成两台机器来卖。比如如果选择的是K80的机器,实际单精度浮点性能只有4.111T。
选择Azure时,配置上也有坑。如果选择的是普通的Windows或Linux系统,上面是不会预置任何东西的。Python、CUDA、CuDNN、甚至显卡驱动都要你自己装。但是在可选系统里其实是有已经配置好的系统可选的。打个比方,我可以在“新建”→“搜索”里搜索“tensorflow”。
在这里,搜索到的结果就是一些可选项,点进去就可以了。在后面的步骤中,和创建其他VM是一致的。
谷歌GCP
在网络上,如果仔细搜一搜,能找到不少推荐使用谷歌的GCP。GCP是一个很好的平台,但还是有不少坑。
首先,申请GCP的免费试用,同样需要Visa或者MasterCard。申请后,可以在一年内使用300美刀的额度。GCP的额度比起Azure的额度要好得多。GCP产品的平均价格比Azure低了一个档次,由于抢占式实例(先给你用着,有别人要就把你的关了,一次最多能开机24小时)的存在,更加高配的GPU虚拟机价格只有Azure的三分之一。在这里不得不提一下AWS,AWS本人并没有亲自使用过,由于它的申请步骤非常繁琐,而且给出的虚拟机配置参数在我能查到资料范围内不高,性价比也比较低,是除了BAT的云服务外最低的,因此没有尝试AWS。
https://console./freetrial
这里有个小问题,那就是没有Visa卡或MasterCard也同样有机会使用到300刀额度。解决方案是上淘宝买一个,价格是200块。我一开始就是在淘宝买的,也因此踏入了另一个坑。
淘宝买的GCP账号是真的,也确实有300刀的额度,你也确实可以花它。问题却出在配额上。你这个免费账号是无法使用GPU机器的,因为你的GPU配额是0。当你在“IAM和管理”→“配额”中尝试增加配额的时候,GCP会发一封邮件给你,对于我们来说的有用信息是我们需要跟着它的步骤预付款,每个GPU额度35美刀,预付款后回复这封邮件,它会在24-48小时内处理。
如果没有Visa或MasterCard,是无法完成预付款的。那么你就只能使用CPU机器。没关系,CPU机器其实很便宜,对于初学者来说,CPU的性能其实也能一定程度上满足需求,而且CPU的价格比GPU要便宜得多。
如果你有Visa或MasterCard的卡,把卡添加到你的付款项然后选择支付即可。比如我要申请2个GPU的配额,那我就付70美刀。下图是通过GPU配额增加申请的结果。
一般来说,一张信用卡只能给一个账户激活免费额度。如果有长期GPU需求的其实可以在淘宝上买,用自己的卡去预付款,然后把自己的卡解绑。等额度用完了,就可以买下一个账户了。只用一个显卡的话,相当于用445RMB买到了335美刀的GCP产品,其实还是蛮划算的。
GCP的机器和Azure的机器一样,都是按照核芯来卖。实际上2个核芯才能算是一个完整的显卡。
淘宝GPU机器
淘宝上出租GPU机器用于ML和DL的并没有特别多家,他们的机器时常是处于缺货的状态。显卡是你需要什么显卡、要几个显卡就给你插多少在机器上。价格相比BAT的云服务低了很多,性能高了不少。然而相比Azure的免费、GCP的半免费来算,还是比较贵的。一个小时几块钱,一个月低配的几百,高配的上千。
(淘宝的链接就不用给了吧……)
如果没有什么更好的选择,淘宝上租赁GPU机器也未尝不是一个好办法。不过由于灵活性的问题,淘宝上的GPU机器应该更适合于已经完成小规模测试,需要跑大规模数据的那种情况。可以把这个GPU机器的价值最大化。
短期租赁淘宝GPU机器并不划算, 这种机器比较适合长时间大规模数据的运行。
美团云
最好的要放在最后,这是一个定律。不得不说,在我尝试过的这几种方案中,美团云的服务是最好的。并不是有意给美团云打广告,我也没有领5毛(每条1元,括号内删除)。但美团云无论在价格还是配置上都能完全碾压前面几种方案。
美团云对于ML、DL的开发者来说,有两种产品可以使用。
1. GPU主机
2. 深度学习平台
这两者其实都很好理解,GPU主机就是带GPU的VM。而深度学习平台则是把你的代码、模型、数据集等放到云端去跑。实际上也有一些其他平台推出了这样的服务,但最关键的一点是,美团云的深度学习平台现在是免费的!我也不知道这个免费会持续多久,但即使开始收费,相信价格也会远低于其他平台,因为GPU主机就是一个例子。而且这个深度学习平台不用申请,没有前置需求。
目前的GPU主机是M60核心,在美团云的两个数据中心都有。与Azure、GCP一样都是按照核心卖的,因此单精度性能只有4T多。一颗核心的价格是1.16RMB/时(刚刚计算的)。美团云的机器也是经常性的缺货。用完了一定要删除机器,否则会继续扣费!可以保留镜像备份下次用。关于使用美团云,网上有一些教程,这里给出一个官方的教程链接。/leceall/article/details/78550795
深度学习平台是使用P40,每个单独的节点最多能使用4张显卡,最多能使用4个节点,但总量最多可以在一个任务里使用8张显卡。每张显卡都是完整的P40,有12T单精度和24G显存,可以胜任几乎全部的任务。平台支持Tensorflow和Caffe。使用这个深度学习平台的方法还是稍微有些复杂的。我同样贴一个官方教程的链接。/leceall/article/details/78550642
有些亲可能觉得麻烦就懒得用了,实际上这个是绝对值得使用的。在官方的文档中,列举了详细的使用方法和例程,各位亲一定要仔细看。因为之前我需要使用pandas,而官方镜像没有,我自己折腾了半天,最后发现可以自己配置镜像。所有碰到问题一定要仔细看文档。/doc/products/ai/dls/introduction
关于使用hdfs的文件,官方给出的是一语带过的用gfile模块。关于gfile的使用在百度上是搜不到的,TF官方给出的资料有的地方也有问题,很容易误解,Google可以搜到使用范例。我也给出一条加载文件的替换代码。
f=open('record5.csv') #使用自带的open读入数据df=pd.read_csv(f)#读入数据#以上替换为f=tf.gfile.FastGFile(FLAGS.data_dir, "r") #使用gfile无阻塞读入数据df=pd.read_csv(f)#读入数据
具体的使用方法就请各位看官方教程和文档以及自己摸索吧。可能一开始运行会失败很多很多次,各位可以查看log输出来定位问题所在。
总结
在看了这四种方法后,相信大家也已经有了一些自己的想法,但我还是来做一个总结吧,从各个方面来对这四个方法进行评分。
就是这样了,希望能帮到大家!
谢谢!
如果觉得《机器学习深度学习云GPU资源与对比》对你有帮助,请点赞、收藏,并留下你的观点哦!