モデルの登録

はじめに


本ドキュメントを通じて、 ABEJA Platform 上で既存のモデルをバージョン管理する方法を紹介します。

モデルの作成


ABEJA Platform では、学習済みモデルとその入出力を行うコードをまとめて “モデル” と呼んでいます。 またモデルではバージョン管理を行うことが出来ます。 ここでは、そのモデルとバージョンの作成を行います。

サンプルモデルの確認

サイドメニューより、 Model を選択し、モデル一覧画面から Create Model を選択します。

まずは今回のチュートリアルで使うソースコードをダウンロードしてください。

解凍したフォルダ内で、次の 2 つのファイルが推論で使用されるファイルです。

ファイル名 内容
predict.py 学習したモデルを使って推論をするための Python プログラム
requirements.txt 上記2つのプログラムで必要となるライブラリを記述したファイル

既存のモデルを ABEJA Platform で使用できるようにするためには、モデルハンドラー関数を定義する必要があります。

モデルのコードの確認


次の WebAPIの作成 では、このサンプルのモデルを WebAPI としてデプロイします。 機械学習モデルを WebAPI として運用する上で、そのモデルが正しい値を返しているかをモニタリングすることが重要となります。 そのため、モデルに入力されたデータとモデルが推論した結果を保存しておく必要があります。

ABEJA Platform にはデータの保存先として DataLakeチャンネル を提供しています。 データレイクにはチャンネルというリソースが存在し、データの入出力にはチャンネルを使用します。

今回のサンプルコードの中では、環境変数としてチャンネルID が与えられている場合、推論の結果を返すと同時に ABEJA Platform の SDK を利用して、推論を行う画像をそのチャンネルに保存するようにしています。 ( ABEJA Platform の SDK は実行される環境に事前にインストールされています。 )

また、コードが実行される環境では以下の環境変数が設定されます。今回のコードではこれらの値をデータレイクにアップロードするファイルのメタデータとして付与するようにしています。

項目
ABEJA_MODEL_ID モデルのID
ABEJA_MODEL_VERSION_ID モデルバージョンのID
ABEJA_SERVICE_ID サービスのID

モデルのコードに前述したような記述をすることで、 WebAPI を運用しつつ、モデルを切り替えていく中で、 入力された画像が、いつ、どのバージョンのモデルにより、どういう推論結果となった のかを記録することが可能になります。

モデルバージョンの作成


入力フォームに以下の値を設定、”Create Model”ボタンをクリックして、登録します。

項目 備考
Name fashion_classification -
Description ※任意の値 例: fashion classification
Model Version 推論モデルのバージョン番号 例: 0.1.0
Deploy after creation チェックボックスを OFF にする -
Model Image abeja-inc/all-cpu:18.10 -
Model Handler predict:handler デフォルトの main:handlerでは無いので注意
Training Artifact 選択不要 -
Source Code ダウンロードした zip ファイルをアップロード

モデル新規追加画面

上記を入力後、 Create Model を選択し、モデルの作成を行います。

Deploy after creatingon の場合、モデル作成後は、作成したモデルのデプロイメントの詳細画面へ遷移します。 デプロイメントとは、作成したモデルを特定のオーガニゼーションで動作させるためのプロジェクトに相当します。 今回はデプロイメントの作成を別で行うため、 off に指定しています。

ここまでで、既存のモデルを ABEJA Platform 上でバージョン管理することができるようになりました。

次のWebAPI の作成では、今回作成したモデルバージョンを WebAPI としてデプロイしていきます。