关于AWS SageMaker Marketplace-自动伸缩、参数、定价和S3。

0

【以下的问题经过翻译处理】 您好, 在AWS Marketplace上销售模型时,我无法在文档中找到以下问题的答案:

  1. 定价:我们是否可以只提供私人报价?(完全禁用按小时和每推理计费)
  2. 自动缩放:是否可以为运行模型的托管端点定义自动缩放策略?
  3. 参数:进行推理调用的接口是什么?我们能否向推理端点传递任何参数?
  4. S3:我们是否可以使用S3加载其他依赖项?

非常感谢!

profile picture
专家
已提问 8 个月前118 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

  1. 一般情况下,AWS Marketplace采用按需付费的定价模式,这意味着客户按每小时或每次推理使用的资源付费。我不知道是否有办法在AWS Marketplace上销售模型包时禁用这种定价模式。然而,值得注意的是,AWS Marketplace还提供了私人列表,允许你直接向特定的客户或客户组销售你的模型包。私有报价对其他客户不可发现,并且不受公开列表的相同定价和计费条款的限制。如果你想为模型包提供不同的定价模式,你可能需要考虑使用私有列表。参考文献:https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-private-offers.html

  2. 是的,你可以为托管的Amazon SageMaker终端节点定义自动扩缩规则,以运行一个模型包。为SageMaker终端节点定义自动缩放策略,可以使用UpdateEndpoint API或SageMaker控制台。在更新端点时,你可以指定期望的实例数和自动缩放策略的最小和最大实例数。SageMaker会根据传入的流量和定义的策略自动扩大或缩小实例的数量。

这里是使用UpdateEndpoint API更新带有自动缩放策略的终端节点的示例:

import boto3

sm = boto3.client('sagemaker')

response = sm.update_endpoint(
    EndpointName='your-endpoint-name',
    DesiredInferenceUnits=1,
    MinInferenceUnits=1,
    MaxInferenceUnits=8
)

更多细节:https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html

  1. 要对托管的Amazon SageMaker端点进行推理调用,您可以使用SageMaker运行时客户端的invoke_endpoint方法。该方法允许您向端点发送HTTP POST请求,并在响应中接收预测结果。

这里有一个示例,展示如何使用invoke_endpoint方法进行推理请求:

import boto3

sm = boto3.client('sagemaker-runtime')

response = sm.invoke_endpoint(
    EndpointName='your-endpoint-name',
    Body=b'your-request-data',
    ContentType='application/json'
)
prediction = response['Body'].read()

您可以在请求体中传递任何模型所期望的参数。请求数据的格式和期望的参数取决于您使用的具体模型。例如,如果您的模型期望一个名为"input"的单一字段的JSON对象,您可以将输入数据作为JSON字符串传递到请求体中。

更多细节: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html

  1. 是的,您可以使用Amazon S3来存储ML模型的其他依赖项,并将它们加载到Amazon SageMaker中。SageMaker允许您通过使用CreateTrainingJob或CreateEndpoint API的CodeRepository参数,指定要包含在您的训练或推理环境中的额外代码和库。CodeRepository参数应设置为包含您想要包括的代码和依赖项的Git存储库的Amazon S3 URI。SageMaker将克隆该存储库并在训练或推理环境中构建代码。

这里有一个示例,展示如何在CreateTrainingJob请求中使用CodeRepository参数来指定基于S3的Git存储库:

import boto3

sm = boto3.client('sagemaker')

response = sm.create_training_job(
    TrainingJobName='your-training-job-name',
    HyperParameters={...},
    InputDataConfig=[{...}],
    OutputDataConfig={...},
    ResourceConfig={...},
    RoleArn='your-role-arn',
    CodeRepository='s3://your-bucket/your-repository.git'
)

更多细节: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则