0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Machine Learning モデルを curl でテストする

Last updated at Posted at 2021-01-15

Azure Machine Learning で作成したモデルを Azure Container Instance (ACI) や Azure Kubernetes Service (AKS) に Web サービスとしてデプロイすると、REST API エンドポイントが作成されます。
デプロイされたモデルのテスト方法について、python はじめプログラムを用いたテスト方法に関する記事は多数存在しますが、プログラミングなしにテストする手順が見当たらなかったため、当記事では curl でシンプルにテストする手順について説明します。

前準備

モデルの作成、モデルのデプロイが必要です。以下記事等を参考に実施ください。

モデルのテスト手順

Swagger Spec の取得

Machine Learning モデルがデプロイされると、以下二つのURLが生成されます。Azure Machine Learning Studio の「エンドポイント」のメニューより、対象のURL を確認します。

  1. REST エンドポイント
  2. Swagger URI

image.png

このうち、Swagger URI から REST API のインターフェース仕様が参照可能です。Swagger URI のリンク先にアクセスし、swagger.json (JSON 形式の Swagger Spec) の内容をコピーします。

※ Swagger とは、REST API のドキュメント記載に関するフォーマット仕様と、周辺ツールを指します。
自動的にドキュメント生成までしてくれ、ドキュメントから実際のリクエストが可能です。
仕様の詳細は、こちらより確認ができます。

Swagger UI による API 仕様の確認

swagger.json を読み込むツールは様々ありますが、今回は簡単に Web から直接利用できる オンラインの Swagger UI を使用します。外部に出せない情報を扱う場合は、GitHub リポジトリよりSwagger UI をダウンロードし、個別の環境にインストールすることも出来ます。

Swagger UI にアクセスし、画面左の Swagger Editor の領域に、先ほどコピーした swagger.json の内容をペーストします。
(ペーストする際、「Would you like to convert your JSON into YAML?」というポップアップが表示されますが、変換してもしなくてもどちらでも問題ありません。)
すると、画面右の領域に REST API ドキュメントが生成されます。
image.png

スコアリング用の API を表す「POST /score」をクリックして展開し、その中の「Try it out」をクリックします。
image.png

入力パラメーターのサンプルをベースに、テストしたいデータに置き換えて「Execute」をクリックします。
(パラメーターのフォーマットはモデルによって異なります。以下の例は、DATE を入力するとその日付の需要予測結果を返す時系列モデルの例になりますので、予測したい日付のみを渡しています。)
image.png

POST 先がデフォルトの Swagger UI のホスト名となっているためそのまま実行すると 404 エラーとなりますが、実行した curl の内容が得られますので、その内容をコピーします。
(ブラウザーで Swagger UI から直接 API のテスト実行したい場合は CORS 対応が必要となり手順が複雑になるため、ここではシンプルに curl を使ってテストします。)
image.png

モデルのテスト

コピーした curl コマンド内の POST 先の URL を、冒頭の手順で確認した ML モデルの「REST エンドポイント」に置き換えて実行します。

curl -X POST "http://xxx.xxx.azurecontainer.io/score" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{  \"data\": [    {      \"DATE\": \"2021-01-01 00:00:00,000000\"    }  ]}"

モデルの予測結果が返ります。
(以下の例では、10757.955705800832という予測値が返ってきています)

"{\"forecast\": [10757.955705800832], \"index\": [{\"DATE\": 1609459200000, \"_automl_dummy_grain_col\": \"_automl_dummy_grain_col\"}]}"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?