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

序列到序列算法

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

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

训练

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

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 的实例。seq2seq 算法支持 P2、P3、G4dn 和 G5 GPU 实例系列。

序列到序列示例笔记本

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