之前我在知乎介绍了两款练习人工智能算法的应用,都是谷歌的,当时有网友在评论区提到了国内有百度的 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 是很有竞争力的。根据官网介绍,飞桨是百度推出的「源于产业实践的开源深度学习平台」,致力于让深度学习技术的创新与应用更简单。Paddle 直译就是桨, 其实是 Parallel Distributed Deep LEarning 的缩写。和 TensorFlow,Pytorch 等框架一样,飞桨给开发者提供了很多常用的模型,也可以直接在包里直接加载常用的数据库,对于学习者来说,还是很方便的。飞桨(PaddlePaddle)还是有点国产的意思,去 Github 可以搜到 PaddlePaddle 的项目,除了英文文档,还提供了中文文档,有时候还是挺方便的。虽然现在 star 比起 TensorFlow 的还是差不少,但是感觉进展得如火如荼。飞桨生态其实设计得很好,可能 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 对比测试测试 kernel https://www.kaggle.com/orange90/mnist-with-lenet-5-test-run-time. Batch_size=50, 训练 5000 轮, 使用框架 TensorFlow,CNN 架构是 LeNet-5测试项目 https://aiStudio.baidu.com/aiStudio/projectdetail/45293Batch_size=64,训练 5000 轮, 使用框架飞桨,CNN 架构是 LeNet-5AI Studio 的测试结果在 2.1 展示了,就不再赘述了,以下是 Kaggle 的性能测试对比
GPU 相比 CPU 来说提升效果为 8 倍,因为训练过程有验证测试,所以并未达到理论上的 12.5x 的加速。由于架构的超参不一样,直接对比运行时间不太严谨,但从 GPU 提升速度的倍数上来说,AI Studio 略胜一筹。也在 AWS 开了个 instance 来测试,选的是这一款配置里的 p2.xlarge直接把 2.2 里用到的 kaggle 的内核导进去了,测试结果如下:顺便一提,这个测试做得我脑壳痛,前期开 instance,配置环境的就花了一个多小时。对于 AWS 新手来说,可能折腾一天,薅了十几美刀,还是没能把代码跑通。真的强烈不推荐在 AWS 来练习自己 deep learning 技能。在使用体验上,和 Kaggle Kernel 或者 Jupyter Notebook 很接近,虽然外观稍有不同,但快捷键基本一样,没有太大的不适应。除此之外,AI Studio 由于在国内,页面响应比 Kaggle 更快,比 Kaggle 网络更稳定,断线重连几率要更低,毕竟断线重连要重跑还是挺蛋疼的。不过需要提醒的是,AI Studio 目前还是按运行环境启动时间来计费,是在无 GPU 环境下把代码写好,再开启 GPU 去跑。虽然 AI Studio 的算力卡也是送的,但也要赶紧薅起来,囤点算力资源,万一哪天百度没钱了,不送了呢?现在的算力卡还是很好拿的,没什么门槛,自己申请一下就拿到了,而且每天运行一次项目,又送 12 个小时算力,连续运行 5 天再加送 48 小时。值得注意的是,申请的算力卡到手就是 48 小时,裂变之后能凑 120 小时,而且有效期比日常运行获取的 12 小时这种要长很多。我寻思每天免费让你 12 小时 NVIDIA V100 GPU 这种事情,真的是天上掉馅饼吧。此外,AI Studio 官方也有比赛,有奖金,如果你的实力在 kaggle 里离拿奖金只是一步之遥,那么趁 AI Studio 还没火起来之前,去 AI Studio 比赛应该是很好拿奖的。点击「阅读原文」或访问以下链接:https://aistudio.baidu.com/aistudio/questionnaire?activityid=539然后就静候佳音。通过运营人员核验后,用户的邮箱将收到运营人员发送的算力邀请码:一串 32 位数字。通过上面链接能申请到 48 小时的算力卡(有效期 1 个月),并且可以分裂,送给别人(稍后送上我的分裂算力卡)使用算力卡的方法很简单,在运行项目时选上 GPU,就会开始使用了,如下图。这个简直了,你不仅可以运行自己的深度学习代码,测试自己的项目,而且同时还会得到算力卡。每天跑一次就可以得到 12 小时算力卡(有效期 2 天),另外算力充电计划,就是连续 5 天有使用算力卡,就会额外送 48 小时 (有效期 7 天)。但预感这么高成本的事情应该不会持续太久,建议早薅。下面是我的算力卡奖励历史,感觉只要你用,AI Studio 就送你算力,不担心算力不够。AI Studio 的算力卡有分裂功能,你申请到算力卡会有三个邀请码,你可以分享给你的朋友。我申请的算力卡有三个分裂,我每天会在评论区放一个算力卡,对羊毛贪得无厌,或者懒得申请又想马上使用的,那可要盯紧评论区了。后续我再薅到新的算力卡就会评论区更新,先到先得,希望各位多多关注本文。另外额外告诉大家一个可能能行的薅羊毛的方法,需要一定的实力。AI Studio 也有一些常规比赛,相对于 Kaggle,可能竞争会小点,如果你在 Kaggle 能 top10% 以上,来 AI Studio 薅类似的比赛,就很大几率拿得到奖金了。
【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