【问题标题】:How to implement a beam search decoder in an SageMaker hosting endpoint?如何在 SageMaker 托管端点中实施波束搜索解码器?
【发布时间】:2018-07-31 03:05:11
【问题描述】:

我为 Seq2Seq 神经网络创建了一个 SageMaker 模型,然后启动了一个 SageMaker 端点:

create_endpoint_config_response = sage.create_endpoint_config(
    EndpointConfigName = endpoint_config_name,
    ProductionVariants=[{
        'InstanceType':'ml.m4.xlarge', 
        'InitialInstanceCount':1,
        'ModelName':model_name,
        'VariantName':'AllTraffic'}])

create_endpoint_response = sage.create_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=endpoint_config_name)

此标准端点不支持光束搜索。创建支持波束搜索的 SageMaker 端点的最佳方法是什么?

【问题讨论】:

  • 您能解释一下您要如何以及为什么要在端点中使用 Beam Search 吗?我不熟悉这个概念。您还使用预构建算法、传递您自己的估算器还是构建自己的 docker 文件?
  • 我训练的特定模型有多个可能正确的输出序列(将其视为一对多的 seq2seq 问题),标准解码器只会输出单个输入序列的单个预测。在推理时使用 Beam Search 可以输出多个按概率排序的候选输出序列。神经网络使用 Sockeye 而非自定义算法,遵循 Amazon 的教程 here 并在笔记本实例中运行。

标签: amazon-sagemaker beam-search


【解决方案1】:

根据您的评论,我认为唯一的解决方案是创建您自己的 docker 容器进行推理。这样你就可以加载你已经训练好的模型,并随心所欲地使用它。当您想了解如何在 sagemaker 中使用 docker 时,This example 是一个很好的起点。

对于您的用例,最好找到内置 sagemaker 的源代码 seq2seq 模型(内置算法也只是 docker 镜像),根据您的需要对其进行修改,构建修改后的 docker 容器并将其加载到您的 aws ecr,然后您可以使用 sagemaker 加载它。

很遗憾,我不知道 docker 容器的源代码是否公开可用(第一次尝试时没有找到)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多