Sequence-to-Sequence アルゴリズム - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Sequence-to-Sequence アルゴリズム

Amazon SageMaker Sequence to Sequence は、教師あり学習アルゴリズムで、入力はトークンのシーケンス (テキスト、オーディオなど) で、生成された出力はトークンの別のシーケンスです。アプリケーションの例としては、機械翻訳 (ある言語から文を入力し、その文が別の言語で何になるかを予測する)、テキストの要約 (長い単語の文字列を入力し、要約である短い単語の文字列を予測する)、 speech-to-text (オーディオクリップがトークンの出力文に変換される) などがあります。近年、このドメインの問題はディープニューラルネットワークによってモデル化に成功し、以前の方式を大幅に超えるパフォーマンスを示しています。Amazon SageMaker seq2seq は、エンコーダーとデコーダーのアーキテクチャとして注意しながら、反復ニューラルネットワーク (RNNs) と畳み込みニューラルネットワーク (CNN) モデルを使用します。

アルゴリズムの入力/出力インターフェイス Sequence-to-Sequence

トレーニング

SageMaker seq2seq はRecordIO形式のデータを期待します。ただし、通常の場合と同様に、トークンは浮動小数点ではなく整数であることが想定されます。

seq2seq サンプルノートブックに、トークン化されたテキストファイルからのデータを protobuf 形式に変換するスクリプトが含まれています。一般的には、データを 32 ビットの整数テンソルにパッキングし、メトリクスの計算や推論に必要な語彙ファイルを生成します。

前処理の完了後、アルゴリズムをトレーニングのために呼び出すことができます。アルゴリズムは以下の 3 つのチャネルを想定します。

  • train: トレーニングデータ (事前処理スクリプトによって生成される train.rec ファイルなど) が含まれている必要があります。

  • validation: 検証データ (事前処理スクリプトによって生成される val.rec ファイルなど) が含まれている必要があります。

  • vocab: 2 つの語彙ファイル (vocab.src.jsonvocab.trg.json) が含まれている必要があります

アルゴリズムによってこれらの 3 つのチャネルでデータが見つからなかった場合、トレーニングの結果はエラーになります。

推論

ホストされるエンドポイントの場合、推論は 2 つのデータ形式をサポートします。スペース区切りのテキストトークンを使用して推論を実行するには、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 である必要があります。この形式では、後続のプロトコルバッファーへのエンコードのために、ソースシーケンスを整数のリストに変換する必要があります。この形式は、一括での推論に推奨されます。

バッチ変換の場合、推論は JSON Lines 形式をサポートします。バッチ変換は、入力を JSON Lines 形式で想定し、出力を JSON Lines 形式で返します。コンテンツタイプと受け取りタイプは両方とも 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"}

推論のために入力と出力を特定の形式にシリアル化および逆シリアル化する方法の詳細については、Sequence-to-Sequence サンプルノートブックを参照してください。

EC2 アルゴリズムの Sequence-to-Sequenceインスタンスレコメンデーション

Amazon SageMaker seq2seq アルゴリズムはGPUインスタンスタイプでのみ をサポートし、1 つのマシンでのみトレーニングできます。ただし、複数の でインスタンスを使用できますGPUs。seq2seq アルゴリズムはP2, P3, G4dnGPUインスタンスファミリーをサポートします。 G5

Sequence-to-Sequence サンプルノートブック

Sequence SageMaker to Sequence アルゴリズムを使用して英語とドイツ語の翻訳モデルをトレーニングする方法を示すサンプルノートブックについては、「Machine Translation English-German Example Using SageMaker Seq2Seq」を参照してください。で例を実行するために使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法については SageMaker、「」を参照してくださいAmazon SageMaker Notebook インスタンス。ノートブックインスタンスを作成して開いたら、SageMakerサンプルタブを選択してすべての SageMaker サンプルのリストを表示します。NTM アルゴリズムを使用したトピックモデリングのサンプルノートブックは、Amazon アルゴリズムの概要セクションにあります。ノートブックを開くには、その [Use (使用)] タブをクリックして [Create copy (コピーを作成)] を選択します。