序列到序列算法 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

序列到序列算法

Amazon SageMaker 序列到序列是一种受监管的学习算法,其中的输入是一个标记序列(例如,文本、音频),生成的输出是另一个标记序列。示例应用程序包括:机器翻译 (从一种语言输入一个句子,并预测该句子在另一种语言中将是什么)、文本摘要 (输入较长的单词串并预测较短的摘要单词串)、语音到文本 (在标记中转换为输出语句的音频剪辑)。最近,这个领域中的问题已经通过深度神经网络成功地建模,这些网络显示比以前的方法有了显著的性能提升。Amazon SageMaker seq2seq 将循环神经网络 (RNN) 和卷积神经网络 (CNN) 模型用于编码解码器体系结构。

序列到序列算法的输入/输出接口

训练

SageMaker seq2seq 需要采用记录器格式的数据。但是,通常情况下,需要整数而不是浮点数的标记。

seq2seq 示例笔记本中包括一个将数据从标记化文本文件转换为 protobuf 格式的脚本。通常,它将数据打包成 32 位整数张量,并生成必要的词汇表文件,这些文件是指标计算和推理所需的。

在进行预处理后,可以调用该算法进行训练。该算法需要有三个通道:

  • train:它应包含训练数据 (例如,预处理脚本生成的 train.rec 文件)。

  • validation:它应包含验证数据 (例如,预处理脚本生成的 val.rec 文件)。

  • vocab:它应包含两个词汇表文件(vocab.src.jsonvocab.trg.json

如果算法在这三个通道中都找不到数据,则训练会导致错误。

推理

对于托管终端节点,推理支持两种数据格式。要使用空格分隔的文本标记执行推理,请使用 application/json 格式。否则,使用 recordio-protobuf 格式,以便使用整数编码的数据。这两种模式均支持对输入数据进行批处理。application/json格式还允许您可视化关注矩阵。

  • application/json:需要 JSON 格式的输入,返回 JSON 格式的输出。内容和接受类型都应该是 application/json。每个序列都将是一个带有空格分隔标记的字符串。当批中的源序列数较小时,建议使用此格式。它还支持以下附加配置选项:

    configuration: {attention_matrix: true}:返回特定输入序列的关注矩阵。

  • application/x-recordio-protobuf:需要 recordio-protobuf 格式的输入,返回 recordio-protobuf format 格式的输出。内容和接受类型都应该是 applications/x-recordio-protobuf。对于此格式,源序列必须转换为整数列表以便进行后续的 protobuf 编码。建议使用此格式进行批量推理。

对于批量转换,推理支持 JSON 行格式。批量转换需要 JSON 行格式的输入,返回 JSON 行格式的输出。内容和接受类型都应该是 application/jsonlines。输入的格式如下所示:

content-type: application/jsonlines {"source": "source_sequence_0"} {"source": "source_sequence_1"}

响应的格式如下:

accept: application/jsonlines {"target": "predicted_sequence_0"} {"target": "predicted_sequence_1"}

有关如何将输入和输出序列化和反序列化为特定格式以进行推理的其他详细信息,请参阅序列到序列示例笔记本

序列到序列算法的 EC2 实例建议

目前,Amazon SageMaker seq2seq 仅在 GPU 实例类型上支持,并且仅设置为在单个机器上训练。但它也提供对多个 GPU 的支持。

序列到序列示例笔记本

有关说明如何使用 SageMaker 序列到序列算法来训练英语到德语翻译模型的示例笔记本,请参阅机器翻译英语-德语示例使用 SageMaker Seq2 以后. 有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例. 在您创建笔记本实例并打开之后,请选择SageMaker End的示例选项卡以查看所有 SageMaker 示例的列表。使用 NTM 算法的主题建模示例笔记本位于 Amazon 算法简介部分中。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本)