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

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

选自benjaminwarner.dev

机器之心编译

编辑:小舟、陈萍

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 实例。比较结果如下表所示:



在测试比较中我发现:

  • 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。

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%。

XSE-ResNet50 Imagenette 简单分析器结果


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。然而,它们之间的差异并不大。

表 3:RoBERTa 基准结果

XResNet18

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

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

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

表 4:XResNet18 基准结果

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 对除小型模型以外的任何其他模型进行训练。

XResNet & RoBERTa Colab K80 基准结果

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

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

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

原文链接:https://benjaminwarner.dev/2021/12/08/testing-amazon-sagemaker-studio-lab


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
6月前
|
机器学习/深度学习 开发者 异构计算
机器学习入门-Colab环境
Google Colab(Colaboratory)是一个免费的云端环境,旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势,使得编写、执行和共享代码变得更加简单和高效。Colab在云端提供了预配置的环境,可以直接开始编写代码,并且提供了免费的GPU和TPU资源,这对于训练深度学习模型等计算密集型任务非常有帮助,可以加速模型训练过程。
251 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)
|
27天前
|
机器学习/深度学习 人工智能 算法
使用 NVIDIA TAO Toolkit 5.0 体验最新的视觉 AI 模型开发工作流程
NVIDIA TAO Toolkit 5.0 提供低代码框架,支持从新手到专家级别的用户快速开发视觉AI模型。新版本引入了开源架构、基于Transformer的预训练模型、AI辅助数据标注等功能,显著提升了模型开发效率和精度。TAO Toolkit 5.0 还支持多平台部署,包括GPU、CPU、MCU等,简化了模型训练和优化流程,适用于广泛的AI应用场景。
49 0
使用 NVIDIA TAO Toolkit 5.0 体验最新的视觉 AI 模型开发工作流程
|
机器学习/深度学习 存储 人工智能
Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
1364 0
|
3月前
|
人工智能 机器人
OpenAI推出了其最强大模型的迷你版本
OpenAI推出了其最强大模型的迷你版本
OpenAI推出了其最强大模型的迷你版本
|
4月前
|
人工智能 自然语言处理 测试技术
Meet Llama3.1,405B赶超最强闭源模型!上魔搭社区一站体验、下载、推理、微调、部署
官方公布的Benchmark显示,Llama3.1 405B已在多项基准测试中超越GPT-4o和Claude 3.5 Sonnet,这是开源大模型首次赶超最强闭源模型!
|
6月前
|
编解码 人工智能
OpenAI官方: Sora不止是模型,更是世界模拟器!
OpenAI官方: Sora不止是模型,更是世界模拟器!
44 0
|
6月前
|
人工智能 自然语言处理 安全
谷歌Gemma 大模型 部署搭建本地
谷歌 Gemma 是一个基于 Python 的图像分析工具,提供快速和准确的物体检测、定位、分类和风格迁移功能。它使用 TensorFlow Lite 模型,使它可以快速运行在移动设备上。
198 0
|
6月前
|
机器学习/深度学习 存储 人工智能
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
235 3
|
11月前
|
机器学习/深度学习 SQL 分布式计算
Azure 机器学习 - Azure机器学习产品和技术介绍全览
Azure 机器学习 - Azure机器学习产品和技术介绍全览
104 0
下一篇
无影云桌面