全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2020-03-01_Kaggle竞赛硬件如何选择?不差钱、追求速度,那就上TPU吧

您的位置:首页 >> 新闻 >> 行业资讯

Kaggle竞赛硬件如何选择?不差钱、追求速度,那就上TPU吧 选自towardsdatascience 作者:Paul Mooney 机器之心编译 在每种机器学习算法背后,都是以数千兆赫频率运算的硬件提供支持。你可能已经注意到,在设置 Kaggle Notebooks 计算环境时,有几种处理器可供选择,但究竟哪种才是最适合你的呢?本文分别比较了在训练由 tf.keras 编写的机器学习模型过程中,使用 CPU(英特尔至强处理器)、GPU(英伟达 Tesla P100 显卡)和 TPU(谷歌 TPU v3)的优劣势。希望本文可以为 Kaggle 竞赛准备者理解和选择处理器提供帮助。 图 1:在 Kaggle Notebook 中可以免费使用 CPU、GPU 和 TPU。 如何准备测试? 为了比较 CPU、GPU 和 TPU 完成常见数据科学任务时的性能,我们使用 tf_flowers 数据集训练了一个卷积神经网络,然后用三种不同的后端(GPU 是英伟达 Tesla P100+2GHz、双核的英特至强 CPU,13 GB RAM;TPU 是谷歌 8 核的 TPUv3+2GHz、四核的英特尔至强 CPU,16 GB RAM)将相同的代码运行了三遍。所附的 Kaggle 教程笔记(tutorial notebook)显示,在一些情况下,TPU 性能最好。 例如: 用分片文档数据集(例如 TFRecord); 用 tf.data API 将训练数据传到 TPU; batch size 较大时(如 batch_size=128)。 在工作流程中加入这些步骤,可以避免常见的 I/O 瓶颈,否则这样的 I/O 瓶颈会妨碍 TPU 发挥全部功能。用户可以访问 Kaggle TPU 官方文档,了解其他一些在 TPU 上运行代码的优化技巧。 官网链接:https://www.kaggle.com/docs/tpu 硬件性能如何 这三种硬件之间最明显的区别在于使用 tf.keras 训练模型的速度。tf.keras 库是最流行的机器学习框架之一,因为 tf.keras 可以更快、更方便地实验新想法。如果写代码的时间短,则就可以拨出更多时间进行计算。如果等代码跑完的时间短,也就可以有更多时间评估新想法了。在机器学习比赛中,tf.keras 和 TPU 是一对很强大的组合! 图 2:tf.keras 概貌。(A)tf.keras 是最流行的实现深度学习模型的框架之一;(B) 在设计深度学习模型时,tf.keras 可以快速进行实验和迭代。 在下图 3 第一个实验中,我们在三种硬件上运行了相同的代码(官方教程笔记中的改进版),并且为了避免 CPU 和 GPU 出现内存不足的问题,batch size 也设置得很小(设为 16)。在这种情况下可以看出,训练 Xception 模型时,TPU 比 CPU 快了约 100 倍,比 GPU 快了约 3.5 倍,这是因为 TPU 处理批大小很大的数据时效率更高。我们也试着将 batch size 增加到 128,结果发现 TPU 速度快了 2 倍,GPU 和 CPU 均出现了内存不足的问题。所以,与之前的实验相比,TPU 训练 Xception 模型的速度比 GPU 快 7 倍。 官方教程笔记:https://www.kaggle.com/mgornergoogle/five-flowers-with-keras-and-xception-on-tpu 图 3:用 CPU、GPU 和 TPU 训练 Xception 模型(12 个 epoch)所需时间对比。 如下图 4 所示,模型训练的加速情况也与模型类别有关,Xception 和 Vgg16 就比 ResNet50 表现更好。在这种边界很大的情况下,模型训练速度是 TPU 唯一超过 GPU 的地方。例如,当预测少量样本时,TPU 比 CPU 快了约 3 倍,但又比 GPU 慢了约 3 倍(在某些情况,比如在 batch size 很大的情况下做预测,TPU 表现出色,但本实验中不存在这样的情况)。 图 4:模型类型和任务类型不同,加速情况也不同。(A) 与 ResNet50 相比,Xception 和 Vgg16 的提速更为明显。(B) 在诸如少量样本预测等特定任务中,GPU 的表现比 TPU 好。 为了使结果更为充分,我们注意到 Yu Emma Wang 等人 [1] 开发了一个叫做 ParaDnn 的严格基准,这一基准可以用来比较不同硬件训练机器学习模型时的性能。利用 Yu Emma Wang 等人 [1] 的方法,可以总结出:用 TPU 代替 GPU 时,参数化模型性能可以提升 1 到 10 倍,使用模型的性能也可以提升 3 到 6.8 倍(下图 5)。分片数据、很大的数据批和大模型结合在一起时,TPU 是最佳选择。 图 5:Wang[1] 论文中的重要发现。当 batch size 和 CNN 模型都较大时,TPU 的性能最好。你可以在 Kumar[2] 和 Jouppi[3] 的论文中,找到其他基准实验。 [1] https://arxiv.org/abs/1907.10701 训练模型时的价格考量 虽然平等地比较了硬件,但它们在价格上有相当大的差异。TPU(谷歌 TPU v3 每小时 8.00 美元,GCP 上可以按需选择的 TPU v2 每小时 4.50 美元)比 GPU(英伟达 Tesla P100 每小时 1.46 美元)贵了大概五倍。虽然如此,如果你想优化成本,那还是应该选择 TPU,因为在训练相同模型的情况下,TPU 的训练速度至少快了 5 倍。 当数据以分片格式储存在 GCS bucket,然后以大 batch size 传递到 TPU 时,模型训练会提速约 5 倍,因此建议熟悉 tf.data API 的用户使用 TPU。 有些机器学习实践者优先考虑模型训练时间,而不是模型训练成本。因此,对于想尽快完成模型训练的人来说,TPU 是最佳选择。在训练模型上花更少的时间,就可以花更多时间考虑新想法。但请不要一味听信本文内容——你可以通过 Kaggle Notebooks 在 CPU、GPU 和 TPU 上免费运行代码并评估结果。Kaggle 用户们已经成功在 TPU 上运行了文本数据,并从中获得了许多乐趣。 下面这篇文章的作者描述了是如何用 TPU 训练 BERT 模型,并在最近的 Kaggle 竞赛中赢得了 8000 美元奖金(二等奖)的。 文章链接:https://www.kaggle.com/c/tensorflow2-question-answering/discussion/127333 该选哪种硬件呢? 总之,如果有通用性和大内存需求的话,我们建议你使用 CPU。当你想加快各种数据科学流程时,GPU 是很好的替代品。如果想要尽可能快地完成模型训练的话,TPU 则是最佳选择。 针对所用硬件来优化代码,可以得到更好的结果。我们认为,对分别针对 GPU 代码和 TPU 代码的运行时(runtime)进行比较也很有意思。例如,用像 RAPIDS.ai 这样的 GPU 加速库训练梯度提升模型,再用像 tf.keras 这样的 TPU 加速库训练深度学习模型,比较二者的训练时间,这也是很有意思的。 那么,训练准确的机器学习模型最少需要多长时间?一天内可以评价多少不同的想法?结合 tf.keras,TPU 让机器学习从业人员写代码的时间变短了,等代码跑完的时间也变短了,这样就可以留出更多时间评估新想法,并在 Kaggle 大赛中提升自己作品的性能。 原文链接:https://towardsdatascience.com/when-to-use-cpus-vs-gpus-vs-tpus-in-a-kaggle-competition-9af708a8c3eb 本文为机器之心编译,转载请联系本公众号获得授权。 ?------------------------------------------------加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com投稿或寻求报道:content@jiqizhixin.com广告 商务合作:bd@jiqizhixin.com

上一篇:2024-10-18_机器智能与社交关系重构 下一篇:2022-07-11_英伟达用AI设计GPU算术电路,面积比最先进EDA减少25%,速度更快、更加高效

TAG标签:

19
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价