run-local

説明

本コマンドを実行すると、 --image で指定した環境をローカル上に構築し、ローカルに存在するモデルをその環境上で一度だけ実行します。 --input で指定したファイルの中身をモデルの入力として実行し、その結果を出力します。

run-local コマンドを使用するためには、 docker がインストールされている必要があります。

概要

$ abeja model run-local [--help]
Usage: abeja model run-local [OPTIONS]

  Local run commands

Options:
  -h, --handler TEXT              Model hanlder  [required]
  -i, --image TEXT                Base-image name  [required]
  -d, --device_type [x86_cpu|x86_gpu|jetson_tx2|raspberry3]
                                  Device type
  --input TEXT                    Input data  [required]
  -e, --environment ENVIRONMENTSTRING
                                  Environment variables
  --no-cache, --no_cache          Not use built cache
  -q, --quiet                     Suppress info logs
  --v1                            Specify if you use old custom runtime image
  --help                          Show this message and exit.

オプション

-h, --handler

呼び出す関数のパスを指定します。 --handler main:handler とした場合には、 main.py のファイル内に定義されている handler を呼び出します。 呼び出すファイルが src ディレクトリ直下に置かれている場合は、 src.main:handler になります。

-i, --image

使用するイメージを指定します。 指定可能なイメージについてはこちらを参照して下さい。

-d, --device_type

デバイスタイプを指定します。 [x86_cpu, x86_gpu, jetson_tx2, raspberry3]

--input

入力するファイルを指定します。ここで指定したファイルが、モデルへの入力となります。 入力可能なファイルの拡張子は、 json, jpeg, png, gif です。

-e, --environment

環境変数を指定します。登録された環境変数はコードから参照できるようになります。 例)IMAGE_WIDTH:100

--no-cache, --no_cache

再ビルドを行い、イメージを作り直します。

-q, --quiet

info ログの出力を抑制します。

--v1

18.10 系のカスタムイメージを使用する際にはこのオプションを与える必要があります。

ローカル環境での実行

前提:

  • 以下のような状態になっているものとします。
$ cat main.py
def handler(iter, context):
    for data in iter:
        yield data

$ cat input.json
{
    "val": 12345
}

コマンド:

$ abeja model run-local -h main:handler -i abeja/all-cpu:18.10 --input ./input.json

出力:

[info] preparing image : abeja/all-cpu:18.10
Pulling from abeja/all-cpu:18.10
...
Pull complete
Digest: sha256:1605a09f7669c2a25fc1db321e7ec1304c125b93171ef654653940ef882baebf
Status: Downloaded newer image for abeja/all-cpu:18.10
[info] building image
...
Successfully built 58ba7ff0edf4
[info] setting up local server
[info] waiting server running
[info] sending request to model
[info] finish requesting to model
[{'val': 12345}]