

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

# Object2Vec のエンコーダー埋め込み
<a name="object2vec-encoder-embeddings"></a>

このページでは、Amazon SageMaker AI Object2Vec モデルからエンコーダー埋め込み推論を取得するための入力リクエストと出力レスポンスの形式を示します。

## GPU 最適化: エンコーダー埋め込み
<a name="object2vec-inference-gpu-optimize-encoder-embeddings"></a>

埋め込みとは、単語などの個別オブジェクトから実数のベクトルへのマッピングです。

GPU メモリ不足のため、`INFERENCE_PREFERRED_MODE` 環境変数を指定して [Object2Vec 推論のデータ形式](object2vec-inference-formats.md) またはエンコーダー埋め込みの推論ネットワークが GPU にロードされるかどうかを最適化するよう指定することができます。推論の大部分がエンコーダー埋め込み用である場合は、`INFERENCE_PREFERRED_MODE=embedding` を指定します。以下は、エンコーダー埋め込み推論を最適化する p3.2xlarge の 4 つのインスタンスを使用したバッチ変換の例です。

```
transformer = o2v.transformer(instance_count=4,
                              instance_type="ml.p2.xlarge",
                              max_concurrent_transforms=2,
                              max_payload=1,  # 1MB
                              strategy='MultiRecord',
                              env={'INFERENCE_PREFERRED_MODE': 'embedding'},  # only useful with GPU
                              output_path=output_s3_path)
```

## 入力: エンコーダー埋め込み
<a name="object2vec-in-encoder-embeddings-data"></a>

コンテンツタイプ: application/json; infer\$1max\$1seqlens=<FWD-LENGTH>,<BCK-LENGTH>

ここで <FWD-LENGTH> と <BCK-LENGTH> は [1,5000] の範囲の整数であり、前方エンコーダおよび後方エンコーダの最大シーケンス長を定義します。

```
{
  "instances" : [
    {"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4]},
    {"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4]},
    {"in0": [774, 14, 21, 206]}
  ]
}
```

コンテンツタイプ: application/jsonlines; infer\$1max\$1seqlens=<FWD-LENGTH>,<BCK-LENGTH>

ここで <FWD-LENGTH> と <BCK-LENGTH> は [1,5000] の範囲の整数であり、前方エンコーダおよび後方エンコーダの最大シーケンス長を定義します。

```
{"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4]}
{"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4]}
{"in0": [774, 14, 21, 206]}
```

どちらの形式でも、`“in0”` と `“in1.”` のいずれか 1 つの入力タイプのみを指定します。その後、推論サービスは対応するエンコーダーを呼び出し、インスタンスごとに埋め込みを出力します。

## 出力: エンコーダー埋め込み
<a name="object2vec-out-encoder-embeddings-data"></a>

Content-type: application/json

```
{
  "predictions": [
    {"embeddings":[0.057368703186511,0.030703511089086,0.099890425801277,0.063688032329082,0.026327300816774,0.003637571120634,0.021305780857801,0.004316598642617,0.0,0.003397724591195,0.0,0.000378780066967,0.0,0.0,0.0,0.007419463712722]},
    {"embeddings":[0.150190666317939,0.05145975202322,0.098204270005226,0.064249359071254,0.056249320507049,0.01513972133398,0.047553978860378,0.0,0.0,0.011533712036907,0.011472506448626,0.010696629062294,0.0,0.0,0.0,0.008508535102009]}
  ]
}
```

Content-type: application/jsonlines

```
{"embeddings":[0.057368703186511,0.030703511089086,0.099890425801277,0.063688032329082,0.026327300816774,0.003637571120634,0.021305780857801,0.004316598642617,0.0,0.003397724591195,0.0,0.000378780066967,0.0,0.0,0.0,0.007419463712722]}
{"embeddings":[0.150190666317939,0.05145975202322,0.098204270005226,0.064249359071254,0.056249320507049,0.01513972133398,0.047553978860378,0.0,0.0,0.011533712036907,0.011472506448626,0.010696629062294,0.0,0.0,0.0,0.008508535102009]}
```

推論サービスによって出力される埋め込みのベクトル長は、トレーニング時に指定するハイパーパラメータ `enc0_token_embedding_dim`、`enc1_token_embedding_dim`、または `enc_dim` の 1 つの値と等しくなります。