ml

SageMakerのエンドポイントをjson形式で叩く

aws

SageMakerのエンドポイントを簡単に機械学習の推論結果を返すAPIを作成することができます。

調べて出てくるもののほとんどが、csvで形式での連携だったので、json形式のやり方をご紹介します。

SageMakerのエンドポイントをjsonで叩く

ソースコードをはこのようになります。

import json
import boto3
client = boto3.client('sagemaker-runtime')

def predict():
    response = client.invoke_endpoint(
        EndpointName='sagemakerのエンドポイント名',
        Body=json.dumps({
            "instances": "値"
        }),
        ContentType='application/json'
    )

    body = response['Body']
    print(json.load(body))

 

SageMaker runtimeのソースコードを解説

boto3(sagemaker-runtime)を使う

import boto3

client = boto3.client('sagemaker-runtime')

AWSのサービスをPythonで使う場合、boto3というSDKを利用します。

boto3の中にSageMakerのエンドポイントを実行する「sagemaker-runtime」を使います。

 

invoke_endpointを使う

sagemaker-runtimeには、いくつかメソッドが用意されています。

エンドポイントを実行するメソッドは、invoke_endpointです。

invoke_endpointを実行すると、SageMaker上で動いている推論用コンテナのinvoketionが実行されます。

response = client.invoke_endpoint(
        EndpointName='sagemakerのエンドポイント名',
        Body=json.dumps({
            "instances": "値"
        }),
        ContentType='application/json'
    )

まとめ

処理はかなりシンプルです。

SageMakerはエンドポイントを作成してしまえば、あとは簡単です。

SageMakerの学習や推論部分を知りたい方はこちらの記事をどうぞ!

 

 

 

ABOUT ME
アバター
ロッピー
コンサルタントから2018年にエンジニアに転向。年収400万円のサラリーマンエンジニアから、半年で月収100万円を稼ぐエンジニアになった。 Python、Golangなど単価の高い言語を得意とする。