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 -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 を備えたインスタンスを使用することができます。seq2seq アルゴリズムは P2、P3、G4dn、G5 GPU インスタンスファミリーをサポートします。

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

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