新入坑的SageMaker Studio Lab和Colab、Kaggle相比,性能如何?

简介: 新入坑的SageMaker Studio Lab和Colab、Kaggle相比,性能如何?
SageMaker Studio Lab 将是免费计算资源领域一个强有力的竞争对手。

一周前,亚马逊启动了 SageMaker Studio 的免费简化版 SageMaker Studio Lab,提供了一个时限为12小时的 CPU 实例和一个时限为 4 小时的 GPU 实例。SageMaker Studio Lab 成为继 Google Colab、Kaggle 和 Paperspace 之后的又一个免费深度学习计算空间。
Studio Lab 为用户提供了所有入门 AI 所需的基础能力,包括 JupyterLab IDE、CPU 和 GPU 模型训练算力以及 15 GB 的永久存储。

那么,SageMaker Studio Lab 如何与竞争对手抗衡?它是否值得使用?

现在一位名为 Benjamin Warner 的博主已经申请使用了 SageMaker Studio Lab,并为大家撰写了一篇博客「开箱测评」。以下是博客原文。

本文我使用图像和 NLP 分类任务,比较了在 SageMaker Studio Lab 和 Colab、Colab Pro 以及 Kaggle 上训练神经网络的效果。

与 Colab 和 Kaggle 的比较

与 Colab 和 Kaggle 一样,Studio Lab 提供 CPU 和 GPU 实例:运行时间为 12 小时的 T3.xlarge CPU 实例和运行时间为 4 小时的 G4dn.xlarge GPU 实例。比较结果如下表所示:

image.gif

image.png

在测试比较中我发现:

  • SageMaker 只有持久存储,但与 Google Drive 不同的是,它的速度足以训练;
  • Colab 暂存盘因实例而异;
  • Colab 的持久存储是 Google Drive 免费分配的;
  • Colab Pro 可以分配 Tesla T4 或 Tesla K80;
  • 免费版 Colab 也可以分配 Tesla T4 或 Tesla P100;
  • Kaggle 的持久存储为每个笔记本 20GB;
  • Kaggle 有一个每周 GPU 运行时间上限,它根据总使用量而变化,每周大约 40 小时。

启动 SageMaker Studio Lab 后将获得稍有修改的 JupyterLab 实例,其中安装了一些扩展,例如 Git。

image.png

SageMaker JupyterLab 环境。

在我的测试中,SageMaker Studio Lab 的 JupyterLab 的行为与在自己系统上正常安装 JupyterLab 完全相同。甚至之前对 JupyterLab 做的修改和已安装的 python 包都还在。

例如,我能够从 Jupyterlab Awesome List 中安装 python 语言服务器和 markdown 拼写检查器。但这也带来了一个问题,即亚马逊是否会更新像 PyTorch 这样的预安装包,或者维护更新的环境是否完全依赖于用户。

亚马逊后续可能会销毁我的实例,或者将来会升级底层映像,删除自定义安装的包和扩展。但就目前而言,相比于 Colab 和 Kaggle,Studio Lab 是三者中可定制程度最高的服务。

基准

数据集和模型

我选择了两个小数据集来对  SageMaker 和 Colab 进行基准测试:Imagenette 以及 IMDB。Imagenette  数据集用于计算机视觉,Hugging Face 的 IMDB 用于 NLP。为了减少训练时间,在训练 IMDB 时,我随机抽取了 20%  的测试集。

对于计算机视觉,模型选择 XResNet 和 XSE-ResNet,即 ResNet 的 fast.ai 版本;对于 NLP,我选择 Hugging Face 实现的 RoBERTa。

训练设置

训练 Imagenette 采用 fast.ai ,其在进行数据扩充时,可以对图像进行随机调整 crop 和随机水平翻转。

训练  IMDB 采用 blurr 库,该库将 fast.ai 和 Hugging Face Transformers 集成在一起。除了向  fast.ai 添加 Transformers 训练和推理支持外,blurr 还集成了每 batch token 化和 fast.ai  文本数据加载器,后者根据序列长度对数据集进行随机排序,以最大限度地减少训练时的填充(padding)。

XSE-ResNet50  和 RoBERTa 采用单精度和混合精度训练的方式 。XSE-ResNet50 训练图像大小为 224 像素,混合精度 batch 大小为  64,单精度 batch 大小为为 32。RoBERTa 混合精度 batch 大小为 16,单精度 batch 大小为 8。

为了探索 CPU 使用极限,我还训练了一个 XResNet18 模型,图像大小为 128 像素,batch 大小为 64。

blurr 地址:https://ohmeow.github.io/blurr/

结果

当进行混合精度训练时,SageMaker Studio Lab 的 Tesla T4 优于 Google Colab 的 Tesla P100,但在训练全单精度模型时表现稍差。

XSE-ResNet50

在相似的设置下,Colab  Pro High RAM 和 SageMaker 比较,XSE-ResNet50 在 SageMaker 上的总体训练速度提高了  17.4%。仅查看训练循环(training loop)时,SageMaker 比 Colab Pro 快 19.6%。SageMaker  在所有操作中都更快,但有一个明显的例外:在向后传递中,SageMaker 比 Colab Pro 慢 10.4%。

当以单精度训练 XSE-ResNet50 时,结果相反,SageMaker 的执行速度比 Colab Pro High RAM 慢 95.9%, 训练循环比 Colab Pro 慢 93.8%。

image.png

RoBERTa

混合精度训练  RoBERTa, SageMaker 进一步领先 Colab Pro,执行速度提高了 29.1%。SageMaker 在训练循环期间比  Colab Pro 快 32.1%,并且在所有操作中 SageMaker 都更快,除了在计算损失时,SageMaker 比 Colab Pro 慢  66.7%。

在单精度下,SageMaker  训练的结果再次翻转,总体上 SageMaker 比 Colab Pro 慢 72.2%。训练循环比 Colab Pro 慢  67.9%。当以单精度训练 XSE-ResNet50 时,由于向后传递和优化器步骤,SageMaker 比 Colab Pro 慢了  83.0%,而 SageMaker 执行所有其他操作的速度快了 27.7%。

奇怪的是,Colab Pro High RAM 实例的训练速度比普通 Colab Pro 实例慢,尽管前者有更多的 CPU 核和 CPU RAM 以及相同的 GPU。然而,它们之间的差异并不大。

image.png

XResNet18

对于  XResNet18 基准测试,了解绘制动作测量内容很关键。XResNet18 基准测试是从数据加载器绘制 batch 之前到开始 batch  操作之间的时间。数据加载器的 prefetch_factor 设置为默认值 2,这意味着研究者尝试在训练循环调用它们之前提前加载两个  batch。其中包括前向和后向传递、损失和优化器 step 和零梯度操作。

绘制动作越低,实例 CPU 就越能满足需求。

这里的结果符合预期,更多的 CPU 核意味着更少的绘制时间,并且在相同的核数下,较新的 CPU 的性能优于较旧的 CPU。

image.png

Colab Tesla K80

由于免费 Colab 实例的 Tesla K80 的 RAM 比其他 GPU 少四分之一,因此我将混合精度 batch 大小也减少了四分之一。此外,我没有运行任何单精度测试。

我运行了两个 epoch 的 Imagenette 基准测试,并将 IMDB 数据集从 20% 的样本减少到 10% 的样本,并将训练长度减少到一个 epoch。

Colab  K80 在半数 Imagenette epoch 上进行训练花费的时间大约是 Colab Pro 实例的两倍。与 Colab P100  相比,在 Colab K80 上进行等效的 IMDB 训练时间要长 3 倍。如果可能的话,应避免使用 K80  对除小型模型以外的任何其他模型进行训练。

image.png


总的来说,我认为 SageMaker Studio Lab 是免费计算资源领域一个强有力的竞争对手。特别是对于一直在 K80 上使用免费 Colab 和训练模型的用户来说,SageMaker Studio Lab 将给你全面的升级体验。

SageMaker Studio Lab 可以作为机器学习工作流程的有用补充和 Kaggle 或 Colab Pro 的增强版。混合精度的训练速度比 Kaggle 或 Colab Pro 快了 17.4% 到 32.1%,这意味着迭代时的等待时间更少。

此外,更快的训练速度和持久存储让 SageMaker Studio Lab 对于深度学习初学者也非常友好,因为这意味着环境只需要设置一次,让学生能够专注于学习而不是持续的包管理。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1月前
在Colab上测试Mamba
我们在前面的文章介绍了研究人员推出了一种挑战Transformer的新架构Mamba
142 2
|
1月前
|
机器学习/深度学习 开发者 异构计算
机器学习入门-Colab环境
Google Colab(Colaboratory)是一个免费的云端环境,旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势,使得编写、执行和共享代码变得更加简单和高效。Colab在云端提供了预配置的环境,可以直接开始编写代码,并且提供了免费的GPU和TPU资源,这对于训练深度学习模型等计算密集型任务非常有帮助,可以加速模型训练过程。
143 0
|
机器学习/深度学习 并行计算 PyTorch
利用谷歌colab跑github代码AttnGAN详细步骤 深度学习实验(colab+pytorch+jupyter+github+AttnGAN)
Google Colab,全名Colaboratory,是由谷歌提供的免费的云平台,可以使用pytorch、keras、tensorflow等框架进行深度学习。其GPU为Tesla T4 GPU,有很强的算力,对于刚入门机器学习或深度学习的用户,这个平台是不二之选。
利用谷歌colab跑github代码AttnGAN详细步骤 深度学习实验(colab+pytorch+jupyter+github+AttnGAN)
|
机器学习/深度学习 存储 人工智能
Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
1260 0
|
1月前
|
自然语言处理 前端开发 Swift
社区供稿 | 中文llama3模型哪家强?llama3汉化版微调模型大比拼
随着llama3的发布,业界越来越多的针对其中文能力的微调版本也不断涌现出来,我们在ModelScope魔搭社区上,搜集到几款比较受欢迎的llama3中文版本模型,来从多个维度评测一下,其对齐后的中文能力到底如何? 微调后是否产生了灾难性遗忘问题。
|
1月前
|
编解码 人工智能
OpenAI官方: Sora不止是模型,更是世界模拟器!
OpenAI官方: Sora不止是模型,更是世界模拟器!
27 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
LLM的测试工具:LaVague平替成国内大模型
LaVague是一款使用LLM将自然语言转换为Selenium代码以实现自动化测试的工具。由于huggingface的某些模型需付费且访问不便,本文介绍了如何使用智谱的免费大模型作为替代。智谱提供免费的embedding模型和大量令牌。
158 1
|
机器学习/深度学习 存储 前端开发
Gradio机器学习模型快速部署工具【应用分享】翻译3
Gradio机器学习模型快速部署工具【应用分享】翻译3
551 0
|
机器学习/深度学习 Web App开发 缓存
Gradio机器学习模型快速部署工具【应用分享】翻译4
Gradio机器学习模型快速部署工具【应用分享】翻译4
816 0
|
存储 机器学习/深度学习 人工智能
新入坑的SageMaker Studio Lab和Colab、Kaggle相比,性能如何?
新入坑的SageMaker Studio Lab和Colab、Kaggle相比,性能如何?
174 0