Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将在SageMaker上培训过的ML模型部署到本地机器上以运行predict?_Amazon Web Services_Amazon S3_Amazon Sagemaker - Fatal编程技术网

Amazon web services 如何将在SageMaker上培训过的ML模型部署到本地机器上以运行predict?

Amazon web services 如何将在SageMaker上培训过的ML模型部署到本地机器上以运行predict?,amazon-web-services,amazon-s3,amazon-sagemaker,Amazon Web Services,Amazon S3,Amazon Sagemaker,我一直在看关于在本地部署SageMaker模型的各种帖子,但它们必须绑定到AWS笔记本实例才能在本地运行predict/serve(AWS SageMaker Python SDK)。这违背了Sagemaker培训模型完全离线运行的实际意图。还有一些人尝试在S3上取消粘贴tar.gz文件,然后包装要在本地部署的内容。然而,这个过程似乎非常局限于某些类型的模型,如XGBoost和MXnet。因此,有没有办法离线部署SageMaker培训的模型而不依赖于SageMaker笔记本实例?任何形式的建议都

我一直在看关于在本地部署SageMaker模型的各种帖子,但它们必须绑定到AWS笔记本实例才能在本地运行predict/serve(AWS SageMaker Python SDK)。这违背了Sagemaker培训模型完全离线运行的实际意图。还有一些人尝试在S3上取消粘贴tar.gz文件,然后包装要在本地部署的内容。然而,这个过程似乎非常局限于某些类型的模型,如XGBoost和MXnet。因此,有没有办法离线部署SageMaker培训的模型而不依赖于SageMaker笔记本实例?任何形式的建议都将不胜感激。谢谢。

一旦您使用Amazon SageMaker培训了一个模型,您将有一个模型条目。模型将指向S3中的模型工件。此tag.gz文件具有模型权重。文件的格式取决于用于训练模型的框架(tensorflow/pytorch/mxnet/…)。如果您使用过SageMaker内置算法,则大多数算法都是通过MXNet或XGBoost实现的,因此您可以使用相关的模型服务软件来运行模型。

如果需要服务软件,可以在本地推理服务器上以推理模式运行SageMaker deeplearning容器。或者使用开源服务软件,如TFServing,或者将模型加载到内存中。

我已经通过在本地部署了PyTorch模型。我相信同样的过程也适用于其他拥有官方SageMaker容器的ML框架。您可以在本地运行SageMaker在AWS基础设施上部署模型时使用的相同Docker容器

用于在本地部署Sagemaker端点进行推断的文档有点分散。摘要:

  • 使用API客户端的本地版本:通常,您使用
    botocore.client.SageMaker
    botocore.client.SageMakerRuntime
    类来使用Python中的SageMaker。要在本地使用SageMaker,请改用
    SageMaker.local.LocalSagemakerClient()
    SageMaker.local.LocalSagemakerRuntimeClient()
  • 如果愿意,可以使用本地
    tar.gz
    模型文件
  • 部署模型时,将
    instance\u type
    设置为
    local

  • 我写了一篇文章,详细介绍了这是如何工作的

    你是在问关于SaegMaker内置算法的问题吗?或者在SageMaker?Hi Gili Nachum中使用您自己的框架(TF、Pytorch等)。我指的是SageMaker内置算法和SageMaker自己的框架。我们能否在培训后完全离线部署/提供在Sagemaker上培训的模型,而不依赖AWS?如果没有,限制是什么?@Zach你找到了相关的解决方案/博客了吗?@Srini不是atm,还在寻找答案Hi Gili Nachum。是的,我知道模型权重在S3分支中存储为tar.gz文件。然而,我的问题是,您如何在自己的服务器上离线提供或运行经过培训的SageMaker模型,而不使用任何SageMaker进行部署。为了运行深度学习模型,您需要模型工件(权重)和映像,以便在本地复制和部署模型,对吗?那么,有没有一种方法可以在不依赖AWS的情况下离线部署模型呢。举个例子也很好。谢谢。你们的pytorch模特们接受过SageMaker的培训吗?我指的是完全离线部署SageMaker培训模型,而不调用SageMaker平台/与SageMaker实例建立任何连接。原因是托管实例需要花费金钱,而且是一种不必要的依赖,可以在培训后消除。