Web API の作成

はじめに

本ドキュメントを通じて、 ABEJA Platform の GUI を利用して Platform 上に登録済みのモデルを Web API としてデプロイする方法を紹介します。

データの保存先となるチャンネルの作成

モデルの登録 では入力画像に対してただ推論結果を返すのではなく、推論結果とともに入力画像を保存するモデルを登録しました。

そのため、このモデルを WebAPI としてデプロイする前に、画像の保存先となる データレイクのチャンネル を作成します。

データレイクのチャンネルを作成する

左部メニューの “Datalake > Channel” をクリックします。 画面右上に表示される “Create Channel” ボタンをクリックします。

チャンネル一覧画面

入力フォームに次の値を設定し、”Create Channel” をクリックし、チャンネルを作成します。

項目
Identifier ※任意の値
Description ※任意の値

チャンネル作成画面

推論を行う WebAPI を作成する

次に ABEJA Platform に登録したモデルを WebAPI としてデプロイしていきます。 ABEJA Platform では、 WebAPI を HTTP サービス と呼びます。 モデルのバージョン、インスタンスタイプ、インスタンス数を指定するだけで、機械学習モデルを WebAPI としてデプロイすることが出来ます。

デプロイメントを作成する

左部メニューの “Model > Deployment” をクリックします。 画面右上に表示される “Create Deployment” ボタンをクリックします。

入力フォームに次の値を設定し、”Create Deployment” をクリックし、デプロイメントを作成します。

項目 備考
Display Name ※任意の値 -
Model fashion_classification ※「モデルの登録」で作成したモデル名を選択
Environments ※入力不要 -

デプロイメント作成画面

HTTP サービスを作成する

先ほど作成したデプロイメントが表示されるのでクリックします。

HTTP Service 作成画面

“HTTP Services” タブの、”Create HTTP Service” ボタンをクリックします。

HTTP Service の作成

“Cloud” タブを選択し、入力フォームに次の値を設定し、”Create HTTP Service” をクリックし、HTTP サービスを作成します。 今回は モデルの登録 で説明した通り、推論した結果と入力画像をデータレイクに保存するため、環境変数の入力も必要となります。

項目 備考
Model Version 先ほど作成したバージョン -
Instance Type cpu-1 -
Instance Numbers 1 -
Environments keyCHANNEL_IDvalue先ほど作成したチャンネルID -

HTTP Service 作成の入力項目

作成後、次の画面が表示されます。”Status” の項目は作成直後は “In Progress” となっています。 “Status” は自動で更新されますが、更新されない場合には画面上部の “Refresh” をクリックして下さい。 数秒から数分後、作成した HTTP Service が “Ready” になることを確認してください。

HTTP Service ステータス確認

エイリアスの作成

WebAPI のエンドポイントには、任意のエイリアスを作成することが可能です。 エイリアスを使用することで、リクエストを流す先となる WebAPI の切り替えを簡単かつ安全に行うことが出来ます。

まず、 Add Endpoint を選択し、エイリアス名を設定します。

Add Endpointを選択

入力フォームに次の値を設定し、”Add Endpoint” をクリックし、エイリアスを作成します。

項目
Primary endpoint? チェックボックスを ON にする
Alias name 入力不要。上記のチェックボックスを ON にすると無効になります
Model version (Cloud service only) 作成したモデルバージョン

primary endopoint とした場合、デプロイメント内の一意のエンドポイントとして、以下の形式で呼び出すことが可能です。 https://{ORGANIZATION_NAME}.api.abeja.io/deployments/{DEPLOYMENT_ID}

作成した WebAPI の動作を確認する

次にデプロイした WebAPI の動作確認を行います。

モデルに対してデータを入力し、出力結果を確認する

作成された HTTP サービスの、”Check” ボタンをクリックします。

HTTP Service の動作確認

“Upload File” のタブを選択すると、PC にある画像を HTTP サービスにアップロードして動作確認をすることが出来ます。

画像のアップロード

モデルの登録でダウンロードした zip ファイル に含まれる任意の画像をドラッグ・アンド・ドロップし、 “Send” ボタンをクリックして、推論結果を確認します。

画像のアップロード結果

データレイクのチャンネルのデータの確認

先ほど、作成したデータレイクのチャンネルを確認すると HTTP サービスにリクエストとして投げた画像が保存されているのが確認できます。

推論 API で処理した画像一覧

このようにチャンネルに 保存されたそれぞれの画像に、いつ、どのバージョンのモデルが、どういう結果を返したか が記録されています。
こういったデータを保存することにより、以下が可能になります。

  • 正しく推論出来なかった画像を学習データとして利用
  • モデルが正しく推論出来ているかの確認