Sequence to Sequence アルゴリズム - アマゾン SageMaker

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

Sequence to Sequence アルゴリズム

Amazon SageMaker Sequence to Sequence は、入力が一連のトークン (テキスト、オーディオなど) であり、生成される出力が別の一連のトークンである、教師あり学習アルゴリズムです。アプリケーションの例として、機械学習 (1 つの言語で入力した文が別の言語でどうなるかを予測する)、テキスト要約 (入力した長い文字列のより短い文字列での要約を予測する)、音声認識 (トークンの出力文に変換したオーディオクリップ) が含まれます。近年、このドメインの問題はディープニューラルネットワークによってモデル化に成功し、以前の方式を大幅に超えるパフォーマンスを示しています。Amazon SageMaker seq2seq は再帰型ニューラルネットワーク (RNN) モデルと畳み込みニューラルネットワーク (CNN) モデルにアテンションを組み合わせたエンコーダーデコーダーアーキテクチャを使用します。

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

トレーニング

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

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 サンプルノートブックを参照してください。

Sequence to Sequence アルゴリズムの EC2 インスタンスに関する推奨事項

現在、Amazon SageMaker seq2seq は、GPU インスタンスタイプでのみサポートされており、1 つのマシンでのトレーニングのために設定されます。ただし、複数の GPU のサポートも提供しています。

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

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