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

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

Sequence to Sequence アルゴリズム

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

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

トレーニング

SageMaker AI 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 AI seq2seq アルゴリズムは GPU インスタンスタイプでのみサポートし、単一のマシンでのみトレーニングできます。ただし、複数の GPU を備えたインスタンスを使用することができます。seq2seq アルゴリズムは P2、P3、G4dn、G5 GPU インスタンスファミリーをサポートします。

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

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