一周前,Amazon推出了SageMakerStudioLab,这是一个免费的简化版SageMakerStudio,提供一个时限为12小时的CPU实例和一个时限为4小时的GPU实例。SageMakerStudioLab成为继GoogleColab、Kaggle和Paperspace之后又一个免费的深度学习计算空间。StudioLab为用户提供了开始使用AI所需的所有基本功能,包括JupyterLabIDE、CPU和GPU模型训练计算能力以及15GB的永久存储空间。那么,SageMakerStudioLab如何与竞争对手竞争?值得使用吗?现在有个叫BenjaminWarner的博主申请了SageMakerStudioLab,写了一篇博客“开箱测评”给大家。以下为博客原文。在本文中,我使用图像和NLP分类任务比较了SageMakerStudioLab与Colab、ColabPro和Kaggle上的训练神经网络。与Colab和Kaggle的比较与Colab和Kaggle一样,StudioLab同时提供CPU和GPU实例:运行时间为12小时的T3.xlargeCPU实例和运行时间为4小时的G4dn.xlargeGPU实例。对比结果如下表所示:在测试对比中,我发现:SageMaker只有持久化存储,但不像GoogleDrive,速度足够训练;Colab暂存盘因实例而异;Colab的持久存储由GoogleDrive自由分配ColabPro可以分配一个TeslaT4或TeslaK80;Colab免费版还可以配一个TeslaT4或者TeslaP100;Kaggle的持久存储是每个笔记本20GB;Kaggle有一个每周GPU运行时间上限,它根据总使用量而变化,大约每周40小时。启动SageMakerStudioLab将导致安装了一些扩展的JupyterLab实例稍作修改,例如Git。SageMakerJupyterLab环境在我的测试中,SageMakerStudioLab的JupyterLab的行为与在您自己的系统上正常安装JupyterLab完全一样。甚至之前对JupyterLab的修改和安装的python包仍然存在。例如,我能够从JupyterlabAwesomeList安装python语言服务器和markdown拼写检查器。但这也带来了亚马逊是否会像PyTorch一样更新预装包,或者是否完全由用户维护更新环境的问题。亚马逊随后可能会销毁我的实例,或在未来升级底层映像,删除自定义安装的包和扩展。但就目前而言,与Colab和Kaggle相比,StudioLab是三者中最可定制的服务。基准数据集和模型我选择了两个小型数据集来对SageMaker和Colab进行基准测试:Imagenette和IMDB。Imagenette数据集用于计算机视觉,而HuggingFace的IMDB用于NLP。为了减少训练时间,我在训练IMDB时随机抽取了20%的测试集。对于计算机视觉,模型选择了XResNet和XSE-ResNet,ResNet的fast.ai版本;对于NLP,我选择由HuggingFace实现的RoBERTa。Imagenette地址:https://github.com/fastai/imagenette#imagenetteIMDB地址:https://huggingface.co/datasets/imdbfast.ai地址:https://docs.fast.ai/TrainingSettingsTrainingImagenette使用fast.ai,在进行数据增强时,可以随机调整crop,随机水平翻转图像。训练IMDB使用blur库,它集成了fast.ai和HuggingFaceTransformers。除了向fast.ai添加Transformers训练和推理支持外,blurr还集成了每批标记化和fast.ai文本数据加载器,它根据序列长度对数据集进行混洗,以最大限度地减少训练时间开销。填充。XSE-ResNet50和RoBERTa使用单精度和混合精度训练。XSE-ResNet50训练图像大小为224像素,混合精度batchsize为64,单精度batchsize为32。RoBERTa混合精度batchsize为16,单精度batchsize为8。探索极限CPU使用率,我还训练了一个XResNet18模型,图像大小为128像素,批量大小为64。Blurr地址:https://ohmeow.github.io/blurr/结果SageMakerStudioLab的TeslaT4优于GoogleColab的TeslaP100在执行混合精度训练时,但在训练完整的单精度模型时表现稍差。XSE-ResNet50在类似设置、ColabProHighRAM和SageMaker对比下,XSE-ResNet50在SageMaker上的整体训练速度提升了17.4%。仅查看训练循环时,SageMaker比ColabPro快19.6%。SageMaker在所有操作中都更快,但有一个明显的例外:在向后传递中,SageMaker比ColabPro慢10.4%。当以单精度训练XSE-ResNet50时,结果相反,SageMaker的性能比ColabProHighRAM慢95.9%,训练循环比ColabPro慢93.8%。XSE-ResNet50ImagenetteSimpleAnalyzer结果RoBERTa混合精度训练RoBERTa,SageMaker以29.1%的执行速度进一步领先于ColabPro。在训练循环期间,SageMaker比ColabPro快32.1%,并且SageMaker在所有操作中都更快,除了计算损失时,SageMaker比ColabPro慢66.7%。在单精度上,SageMaker训练的结果再次翻转,SageMaker整体比ColabPro慢了72.2%。训练循环比ColabPro慢67.9%。在以单精度训练XSE-ResNet50时,由于反向传递和优化器步骤,SageMaker比ColabPro慢83.0%,而SageMaker执行所有其他操作的速度快27.7%。奇怪的是,尽管具有更多CPU内核和CPURAM以及相同的GPU,ColabProHighRAM实例的训练速度仍比普通ColabPro实例慢。但是,它们之间的差异并不大。表3:RoBERTa基准测试结果XResNet18对于XResNet18基准测试,了解绘图动作测量的内容至关重要。XResNet18benchmark是数据加载器绘制batch之前到batch操作开始的时间。数据加载器的prefetch_factor设置为默认值2,这意味着我们尝试在训练循环调用它们之前预取两个批次。这些包括向前和向后传递、损失和优化器步骤,以及零梯度操作。绘制活动越低,实例CPU处理需求的能力就越好。这里的结果符合预期,更多的CPU内核意味着更少的绘制时间,并且较新的CPU优于具有相同内核数的旧CPU。表4:ColabTeslaK80上的XResNet18基准测试结果由于免费Colab实例的TeslaK80的RAM比其他GPU少四分之一,我还将混合精度批处理大小减少了四分之一。此外,我没有运行任何单精度测试。我运行了两个epoch的Imagenette基准测试,并将IMDB数据集的样本从20%减少到10%,并将训练长度减少到一个epoch。ColabK80在一半的Imagenetteepoch上进行训练所需的时间大约是ColabPro实例的两倍。与ColabP100相比,ColabK80上等效的IMDB训练时间要长3倍。如果可能,请避免使用K80训练小型模型以外的任何东西。XResNet和RoBERTaColabK80基准测试结果总的来说,我认为SageMakerStudioLab在免费计算资源领域是一个强大的竞争对手。特别是对于一直在K80上使用免费Colab和训练模型的用户,SageMakerStudioLab将给您全面的升级体验。SageMakerStudioLab可以成为机器学习工作流程的有用补充,以及对Kaggle或ColabPro的增强。混合精度训练比Kaggle或ColabPro快17.4%到32.1%,这意味着迭代时的等待时间更少。此外,更快的训练速度和持久化存储让SageMakerStudioLab对深度学习初学者非常友好,因为这意味着环境只需要搭建一次,让学生专注于学习而不是持续的包管理。原文链接:https://benjaminwarner.dev/2021/12/08/testing-amazon-sagemaker-studio-lab:almosthuman2014)》]点此阅读本作者更多好文
