MENU

Knowledge Oasisは主にAIとAWSの知識を共有するブログです。その他ITに関する知識やまれに生活に役立つ知識も共有するかもしれません。

KOふみ
名前はKOふみ(こふみ)。独立系SIerで20年のキャリアを持ち、新人研修の講師から請負開発まで幅広く経験。現在はAIを駆使したソリューション開発に従事。資格は応用情報技術者、データベーススペシャリスト、プロジェクトマネージャー、PMP、簿記2級。AWS学習中で、将来はAWSアンバサダーを目指す。

“code”:424,”message”:”Batch inference failed”の対処法

"code":424,"message":"Batch inference failed"の対処法
  • URLをコピーしました!

SageMakerでモデルをデプロイして、エンドポイントをAPIで呼び出したところ、レスポンスに"code":424,"message":"Batch inference failed" が返されました。この事象に対する対応方法を紹介します。

目次

事象

SageMakerでモデルをデプロイして、エンドポイントをAPIで呼び出す以下のコードを実行しました。

import boto3
import json

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

endpoint_name = "my-endpoint-name"
content_type = "text/plain"
accept = "text/plain"
payload = {
              "inputs": "some prompt",
              "parameters": {
                  "max_new_tokens": 20
              }
          }

response = client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType=content_type,
    Accept=accept,
    Body=json.dumps(payload).encode('utf-8')
    )

print(response['Body'].read())

出力された結果は以下の通りです。

{
  "code": 424,
  "message": "Batch inference failed",
  "properties": {},
  "content": {
    "keys": [],
    "values": []
  },
  "cancelled": false
}

正しくエンドポイントを呼び出せているようですが、このメッセージでは原因が全然分かりませんでした。

原因

ContentTypeとAcceptの指定が誤っていました。入力も出力もjsonなので application/json としないといけないところを text/plain としていました。単純なミスですが、エラーメッセージがシンプル過ぎて情報が少なく解決するのに時間がかかってしまいました。

まとめ

“code”:424,”message”:”Batch inference failed”の対処法を紹介しました。単純ミスゆえに解決策を見つけるのが難しいエラーでした。今回私はjsonでしたが、csvでも同様の事が起きるようです。エラーコード424が返ってきたらエンドポイントが求める入力と返す出力の形式が合っているかを確認するようにしましょう。

  • URLをコピーしました!

コメント

コメントする

目次