在数据科学和机器学习领域,云托管的Python笔记本正逐渐成为主流。这些服务允许用户在云端运行Jupyter Notebook,无需在本地安装和配置环境。Google Colab和AWS SageMaker Studio Lab是当前市场上的两大竞争者。本文将从硬件、共享性、环境、用户界面和资源等方面对这两个服务进行比较分析。
云托管笔记本是一种新型的数据科学和机器学习工具。过去,要启动Jupyter Notebook,用户需要在本地计算机上安装Jupyter,并通过运行jupyter notebook
命令在本地浏览器中打开笔记本。然而,本地笔记本存在两个主要问题:不易于共享和缺乏硬件加速支持。为了解决这些问题,用户可以选择在云端启动实例,重新配置Jupyter,并将其暴露给浏览器。但这个过程相当繁琐。
本地笔记本主要面临两个限制。首先,本地笔记本不易于共享。Jupyter Notebook以一个庞大的文件形式保存,难以进行版本控制和提交,因此通过常规代码仓库分享它们相当困难。虽然随着时间的推移,这个问题有所改善,但仍然不尽人意。其次,大多数机器学习应用需要通过GPU进行硬件加速,而本地计算机很可能没有GPU。为了解决这个问题,用户可以启动云实例,在那里重新构建Jupyter,并找到一种方法将其服务暴露给拥有Web浏览器的地方。但这相当麻烦。
为了解决本地笔记本的问题,Google Cloud推出了Colab,这是一个在他们的云实例上运行的笔记本,用户可以在这里选择CPU和GPU运行时。不久之后,Paperspace推出了竞争对手Gradient Notebooks(不在本文讨论范围内)。最近,AWS也推出了他们的竞争对手Studio Lab。未来的发展将是一场竞赛,看看哪个服务将引领这个领域。目前,以下是比较。
当使用托管笔记本时,最关心的第一件事就是免费获得的硬件。如果正在训练机器学习算法,实验和发展将受到使用的硬件的限制。在Studio Lab的免费层,将获得一个Tesla T4。在Google Colab的免费层,将获得一个Tesla P100或Tesla K80。可以看到这些GPU的购买价格,就可以得出结论。Studio Labs上的免费硬件明显更有价值。
云托管笔记本相较于本地笔记本的一个主要改进是,可以轻松地与他人分享代码。Google Colab在共享性方面表现出色。要分享一个笔记本,可以使用与Google Drive相同的共享和认证方式。在Colab中分享代码和执行结果非常轻松。而在Studio Lab中分享代码,需要将代码提交到仓库,并在打开笔记本时克隆它。
当启动云笔记本时,底层服务器会附带许多软件安装,如果启动了一个全新的实例,需要从头开始配置这些软件。Google Colab和Studio Lab都预装了NVIDIA驱动程序和相关库。这为节省了很多时间,而且这不是可能想要自定义的事情。Google Colab还预装了许多额外的机器学习库到Python库中,如pytorch和tensorflow。需要自己在Studio Lab中安装这些。Studio Lab的一个巨大优势是它保存了项目的机器映像,并为启动它,因此有一个稳定的安装基础。
虽然在IDE中编程时,用户界面最初影响较小,但随着时间的推移,开始学习IDE的细微差别和全部功能。Google Colab和Studio Lab都有Jupyter Notebook用户界面。根据经验,Studio Lab更加流畅和响应迅速。Google Colab在与UI元素交互和启动底层实例时可能会感到有些延迟。