机器之心发布
作者:吴昕
之前我在知乎介绍了两款练习人工智能算法的应用,都是谷歌的,当时有网友在评论区提到了国内有百度的 AI Studio,于是产生了兴趣,恰好在那评论出现后几个星期,又看到了 AI Studio 最近推出了算力卡计划的新闻,供学习者免费申请使用。贫穷的我决定薅一薅。然而直到现在,网上关于 AI Studio 使用或者测评的文章还声色未开,看来百度的动作还是小了点。于是决定自己薅点羊毛并测评,分享心得给朋友们。
1. AI Studio 和飞桨(PaddlePaddle)
1.1 AI Studio 和飞桨算是后起之秀,包括我在内的很多人还不是很熟悉这一整套方案,在开薅之前,所以先简单介绍一下
AI Studio 是百度提供的一个针对 AI 学习者的在线一体化开发实训平台(https://aistudio.baidu.com/?fr=jq)。平台集合了 AI 教程, 深度学习样例工程, 各领域的经典数据集, 云端的运算及存储资源, 以及比赛平台和社区。[1] 你可以把 AI Studio 看成国产版的 Kaggle。和 Kaggle 类似,AI Studio 也提供了 GPU 支持,但百度 AI Studio 有一个很明显的优势:它的 GPU 型号是 Tesla V100。Kaggle 的是 Tesla K80-下表对比两款单精度浮点运算性能,就能看出 v100 的优势了。
明显在单精度浮点运算上,AI Studio 提供的运行环境在计算性能上还是很有优势的。理论上训练速度可以提高近 3 倍左右。
虽然性能上好很多,但目前还是可以免费薅到,AI Studio 提供了免费申请和运行项目奖励这两种获得算力卡的方式,最后一章我会带领大家去薅。
即使算力卡用完了(目前送得太多,根本用不完),AI Studio 的 CPU 也是很有竞争力的。亲自用脚本测试过,AI Studio 的 CPU 是 Intel(R) Xeon(R) Gold 6148 CPU,可以说在配置上,AI Studio 是很有竞争力的。
1.2 飞桨
根据官网介绍,飞桨是百度推出的「源于产业实践的开源深度学习平台」,致力于让深度学习技术的创新与应用更简单。
Paddle 直译就是桨, 其实是 Parallel Distributed Deep LEarning 的缩写。和 TensorFlow,Pytorch 等框架一样,飞桨给开发者提供了很多常用的模型,也可以直接在包里直接加载常用的数据库,对于学习者来说,还是很方便的。
飞桨(PaddlePaddle)还是有点国产的意思,去 Github 可以搜到 PaddlePaddle 的项目,除了英文文档,还提供了中文文档,有时候还是挺方便的。虽然现在 star 比起 TensorFlow 的还是差不少,但是感觉进展得如火如荼。
1.3 AI Studio 与飞桨的生态
下图是飞桨的全景图:
飞桨生态其实设计得很好,可能 Tensorflow 先发得太早吧,感觉飞桨追赶得很吃力。但从百度最近推广飞桨的力度来看,我猜飞桨很有可能两三年左右进入主流深度学习框架之列。
2. AI Studio 实例测评:以数字识别项目为例
2.1 AI Studio GPU 和 CPU 性能对比
为了测试 AI Studio 的性能,我用最经典的 MNIST 数据集,在 LeNet 5 模型上进行运损,对比在 GPU 和 CPU 下在 AI Studio 的的性能,飞桨用的 MNIST 数据集是 60000 个训练数据,10000 个测试数据。
项目地址在此:
https://aiStudio.baidu.com/aiStudio/projectdetail/45293
以下是 AI Studio 的 CPU 和 GPU 测试性能对比
GPU 提升效果为 11 倍,因为训练过程有验证测试,而且 CPU 配置也太高了,所以并未达到理论上的 47x 的加速,但这速度还不错,况且 AI Studio 本来 CPU 是至强金牌处理器,就很高配了,所以理论上 47x 的加速可能还得打个折。
2.2 AI Studio 和 Kaggle 对比测试
测试环境:
1. Kaggle Kernel
测试 kernel https://www.kaggle.com/orange90/mnist-with-lenet-5-test-run-time.
Batch_size=50, 训练 5000 轮, 使用框架 TensorFlow,CNN 架构是 LeNet-5
2. AI Studio
测试项目 https://aiStudio.baidu.com/aiStudio/projectdetail/45293
Batch_size=64,训练 5000 轮, 使用框架飞桨,CNN 架构是 LeNet-5
AI Studio 的测试结果在 2.1 展示了,就不再赘述了,以下是 Kaggle 的性能测试对比
GPU 相比 CPU 来说提升效果为 8 倍,因为训练过程有验证测试,所以并未达到理论上的 12.5x 的加速。
由于架构的超参不一样,直接对比运行时间不太严谨,但从 GPU 提升速度的倍数上来说,AI Studio 略胜一筹。
2.3 AWS
也在 AWS 开了个 instance 来测试,选的是这一款配置里的 p2.xlarge
直接把 2.2 里用到的 kaggle 的内核导进去了,测试结果如下:
性能上比前两者都差一点。
顺便一提,这个测试做得我脑壳痛,前期开 instance,配置环境的就花了一个多小时。对于 AWS 新手来说,可能折腾一天,薅了十几美刀,还是没能把代码跑通。真的强烈不推荐在 AWS 来练习自己 deep learning 技能。
2.4. 测试总结
下表总结在不同环境下的测试效果及成本
在使用体验上,和 Kaggle Kernel 或者 Jupyter Notebook 很接近,虽然外观稍有不同,但快捷键基本一样,没有太大的不适应。除此之外,AI Studio 由于在国内,页面响应比 Kaggle 更快,比 Kaggle 网络更稳定,断线重连几率要更低,毕竟断线重连要重跑还是挺蛋疼的。
不过需要提醒的是,AI Studio 目前还是按运行环境启动时间来计费,是在无 GPU 环境下把代码写好,再开启 GPU 去跑。虽然 AI Studio 的算力卡也是送的,但也要赶紧薅起来,囤点算力资源,万一哪天百度没钱了,不送了呢?
3. 羊毛来了,薅起来
现在的算力卡还是很好拿的,没什么门槛,自己申请一下就拿到了,而且每天运行一次项目,又送 12 个小时算力,连续运行 5 天再加送 48 小时。值得注意的是,申请的算力卡到手就是 48 小时,裂变之后能凑 120 小时,而且有效期比日常运行获取的 12 小时这种要长很多。我寻思每天免费让你 12 小时 NVIDIA V100 GPU 这种事情,真的是天上掉馅饼吧。此外,AI Studio 官方也有比赛,有奖金,如果你的实力在 kaggle 里离拿奖金只是一步之遥,那么趁 AI Studio 还没火起来之前,去 AI Studio 比赛应该是很好拿奖的。
3.1 自己申请
访问以下链接:https://aistudio.baidu.com/aistudio/questionnaire?activityid=539
接着填写个人信息
提交后,会出现下图
然后就静候佳音。通过运营人员核验后,用户的邮箱将收到运营人员发送的算力邀请码:一串 32 位数字。
通过上面链接能申请到 48 小时的算力卡(有效期 1 个月),并且可以分裂,送给别人(稍后送上我的分裂算力卡)
使用算力卡的方法很简单,在运行项目时选上 GPU,就会开始使用了,如下图。
3.2 跑项目赚算力卡
这个简直了,你不仅可以运行自己的深度学习代码,测试自己的项目,而且同时还会得到算力卡。每天跑一次就可以得到 12 小时算力卡(有效期 2 天),另外算力充电计划,就是连续 5 天有使用算力卡,就会额外送 48 小时 (有效期 7 天)。但预感这么高成本的事情应该不会持续太久,建议早薅。下面是我的算力卡奖励历史,感觉只要你用,AI Studio 就送你算力,不担心算力不够。
3.3 算力卡分裂
AI Studio 的算力卡有分裂功能,你申请到算力卡会有三个邀请码,你可以分享给你的朋友。我申请的算力卡有三个分裂,我每天会在评论区放一个算力卡,对羊毛贪得无厌,或者懒得申请又想马上使用的,那可要盯紧评论区了。后续我再薅到新的算力卡就会评论区更新,先到先得,希望各位多多关注本文。
3.4 比赛薅羊毛
另外额外告诉大家一个可能能行的薅羊毛的方法,需要一定的实力。AI Studio 也有一些常规比赛,相对于 Kaggle,可能竞争会小点,如果你在 Kaggle 能 top10% 以上,来 AI Studio 薅类似的比赛,就很大几率拿得到奖金了。
羊毛不是天天有,该出手时就出手!
Reference:
【1】https://ai.baidu.com/docs#/AIStudio_Tutorial/top?fr=jq
【2】http://www.PaddlePaddle.org/?fr=jq
【3】https://ai.baidu.com/forum/topic/show/943419/?fr=jq
本文为机器之心发布,转载请联系本公众号获得授权。