如何使用AWS sage maker实现单docker图像和多模型工件的自动缩放



我正在探索AWS sage maker,以部署具有单个容器/docker映像的机器学习模型,并希望实现可扩展性。

关于您的信息,我们编写了培训预测代码,因此,相同的代码将用于不同的客户。只有ENV变量VERSION_NUMBER根据客户的不同而不同。

VERSION_NUMBER:指S3文件夹名称作为包含最新模型工件的当前时间戳。

例如

Customer name : XYZ
docker image(training and prediction) : **intent-mapping:latest**
s3 model atrifact path : s3_bucket/XYZ/VERSION_NUMBER/XYZ.tar.gz
ENV variable : CUSTOMER_SUFFIX,IS_INCREMENTAL
Customer name : PQR
docker image(training and prediction) : **intent-mapping:latest**
s3 model atrifact path : s3_bucket/PQR/VERSION_NUMBER/PQR.tar.gz
ENV variable : CUSTOMER_SUFFIX,IS_INCREMENTAL

若你们仔细阅读,你们会看到相同的docker图像被引用到的任何地方

因此,我的疑虑如下。

  1. 在这样的场景中,我应该采用哪种方法来部署模型
  2. 比方说,如果我们使用sage maker的多型号/多容器选项,那么如何为每个客户独立管理自动缩放

请让我知道您对相同内容的输入。

有两种方法可以解决这个问题-

  1. MME(多模型端点(
  2. MCE(多容器端点(

有关优势和用例的更多信息,请点击此处。

在我看来,对于您的用例,由于框架和容器保持不变(事实上模型也是如此(,MME是合适的。

就资源共享而言-多模型端点允许跨模型进行内存资源的时间共享。当模型的大小和调用延迟非常相似时,这种方法效果最好。在这种情况下,多模型端点可以有效地使用所有模型中的实例。如果您的模型具有明显更高的每秒事务数(TPS(或延迟要求,我们建议将它们托管在专用端点上。多模型端点也非常适合于可以容忍调用不常用模型时偶尔发生的冷启动相关延迟惩罚的场景。

最新更新