AWS 上的机器学习 (NLP)。云9?贤者? EC2-AMI?

Machine Learning (NLP) on AWS. Cloud9? SageMaker? EC2-AMI?

我终于到达云端,将我的 NLP 工作提升到一个新的水平,但我对我拥有的所有可能性感到有点不知所措。所以我来找你咨询。

目前我看到三种可能:

嗯,这就是我现在的位置。我真的很喜欢 SageMaker,虽然我不喜欢缺少版本控制(至少我现在还没有找到任何东西)。

Cloud9 似乎只是 EC2 实例的 IDE。我还没有找到 Cloud9 与 SageMaker 在机器学习方面的任何比较。可能是因为 Cloud9 没有被宣传为 ML 解决方案。但这似乎是一个选择。

您对这个问题有何看法?我错过了什么?你会建议我去做什么?你的工作流程是什么,为什么?

I am looking for an easy work environment where I can quickly test my models, exactly. And it won't be only me working on it, it's a team effort.

由于你们是团队合作,我建议使用带有自定义 docker 图像的 sagemaker。这样你就可以完全自由地控制你的算法。 docker 图像存储在 ecr 中。在这里您可以上传同一图像的多个版本并标记它们以保持对不同版本的控制(您从 git 存储库构建)。

Sagemaker 也将执行角色赋予 docker 图像内部。所以您仍然可以完全访问其他 aws 资源(如果执行角色具有正确的权限)

https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/scikit_bring_your_own/scikit_bring_your_own.ipynb 在我看来,这是一个很好的开始示例,因为它展示了 sagemaker 如何与您的图像进行交互。

其他解决方案的一些注意事项:

您发布的所有其他解决方案的问题是您希望在同一台机器上构建和执行。当然你可以这样做,但请记住,gpu 实例很昂贵,因此你可能只有在代码准备好 运行.

时才切换到云。

其他一些注意事项

  • Jupyter Notebook 通常不适合协作编程。我认为他们想用 jupyter lab 改变这一点,但这仍在开发中,sagemaker 目前只使用笔记本。

  • EC2 比 sagemaker 便宜,但你必须做更多的工作。特别是如果你想 运行 你的模型作为 docker 图片。此外,使用 sagemaker,您可以轻松构建用于模型推理的端点,使用 ec2 实现这一点会更加复杂。

  • Cloud 9 我从未使用过这项服务,但乍一看似乎可以在其上开发,但如果您想在 gpu 机器上执行此操作,问题仍然存在。因为您使用 ec2 作为实例,所以您具有相同的 advantage/disadvantage.

我想首先指出的一件事是,SageMaker notebook 并不是唯一的 IDE 环境,您可以在其中与 SageMaker 的其他组件(例如训练和托管)进行交互。事实上,只要您有 AWS SDK 或 SageMaker Python 已安装 SDK。

关于IDE的选择,这完全取决于您的特定需求。 SageMaker notebook 基于 Jupyter(现在还支持 JupyterLab beta)、专注于 ML 且完全托管。机器学习常用的数百个Python包,以及Tensorflow、Keras、MxNet、SageMakerPython SDK等,都为您预装并自动维护。可以想象,它还与 SageMaker 的其他组件更紧密地集成。

Cloud9 也是托管的 IDE,但它是用于通用目的而不是特定于 ML 的。如果你想在 cloud9 上使用 Jupyter,你需要做额外的工作。它不会像 SageMaker notebook 那样预装和维护常见 ML/DL 相关包的版本。