【发布时间】:2021-09-15 03:45:45
【问题描述】:
我正在部署一个使用 BERT 制作的无服务器 NLP 应用。我目前正在使用无服务器框架和 AWS ECR 来克服 250 MB 的 AWS Lambda 部署包限制(PyTorch 已经占用了超过该空间)。
我对这个解决方案非常满意,因为它让我可以简单地将我的应用程序化、上传到 ECR,而无需担心其他任何事情。
我的一个疑问是我应该将模型存储在哪里。我的应用程序使用 3 个不同的保存模型,每个模型的大小为 422 MB。我有两个选择:
-
在 docker 镜像中复制我的模型。
- 优点:如果我重新训练我的模型,它将在我重新部署应用程序时自动更新,并且我不必使用 AWS SDK 从 S3 加载对象
- 缺点:Docker 镜像非常大
-
将我的模型存储在 S3 中:
- 优点:图像大小比其他解决方案小(1+ GB vs 3+ GB)
- 缺点:如果我重新训练我的模型,我需要在 S3 上手动更新它们,因为它们与应用程序部署管道分离。我还需要使用 AWS SDK 从 S3 加载它们(可能会增加一些开销?)。
所以我的问题最终是:在这两种解决方案中,哪一种是最佳做法?为什么,为什么不呢?是否有最佳实践,还是基于偏好/需要?
【问题讨论】:
标签: machine-learning aws-lambda serverless amazon-ecr mlops