Data Formats for Object2Vec Inference - Amazon SageMaker AI

Data Formats for Object2Vec Inference

The following page describes the input request and output response formats for getting scoring inference from the Amazon SageMaker AI Object2Vec model.

GPU optimization: Classification or Regression

Due to GPU memory scarcity, the INFERENCE_PREFERRED_MODE environment variable can be specified to optimize on whether the classification/regression or the Output: Encoder Embeddings inference network is loaded into GPU. If the majority of your inference is for classification or regression, specify INFERENCE_PREFERRED_MODE=classification. The following is a Batch Transform example of using 4 instances of p3.2xlarge that optimizes for classification/regression inference:

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': 'classification'}, # only useful with GPU output_path=output_s3_path)

Input: Classification or Regression Request Format

Content-type: application/json

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

Content-type: application/jsonlines

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

For classification problems, the length of the scores vector corresponds to num_classes. For regression problems, the length is 1.

Output: Classification or Regression Response Format

Accept: application/json

{ "predictions": [ { "scores": [ 0.6533935070037842, 0.07582679390907288, 0.2707797586917877 ] }, { "scores": [ 0.026291321963071823, 0.6577019095420837, 0.31600672006607056 ] } ] }

Accept: application/jsonlines

{"scores":[0.195667684078216,0.395351558923721,0.408980727195739]} {"scores":[0.251988261938095,0.258233487606048,0.489778339862823]} {"scores":[0.280087798833847,0.368331134319305,0.351581096649169]}

In both the classification and regression formats, the scores apply to individual labels.