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

0

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

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

非常感谢!

profile picture
EXPERTE
gefragt vor 8 Monaten116 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen