1

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

目前我看到了三种可能性:

  • 贤者制造者
    • Jupyter 笔记本很棒
    • 快速简单
    • 节省大量管理时间,您可以非常轻松地将模型投入生产
    • 花费更多
    • 没有版本控制
  • 云9
  • EC2(-AMI)

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

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

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

4

2 回答 2

2

我想首先指出的一件事是 SageMaker notebook 并不是您可以与 SageMaker 的其他组件(例如培训和托管)进行交互的唯一 IDE 环境。事实上,只要您安装了 AWS 开发工具包或 SageMaker Python 开发工具包,您就可以通过 Cloud9 或安装在 EC2 甚至笔记本电脑上的任何 IDE 对 SageMaker 训练/托管进行 API 调用。

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

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

于 2018-10-22T18:16:05.460 回答
2

我正在寻找一个简单的工作环境,在那里我可以快速准确地测试我的模型。这不仅仅是我一个人的工作,这是一个团队的努力。

由于您作为一个团队工作,我建议您将 sagemaker 与自定义 docker 映像一起使用。这样你就可以完全自由地使用你的算法。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 Notebooks 通常不是为协作编程而设计的。我认为他们想用 jupyter lab 改变这一点,但这仍在开发中,sagemaker 目前只使用笔记本。

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

  • Cloud 9 我从来没有使用过这个服务,但乍一看它似乎很好开发,但问题仍然存在,如果你想在 gpu 机器上执行此操作。因为您使用 ec2 作为实例,所以您具有相同的优势/劣势。

于 2018-09-14T13:56:57.933 回答