run-local

説明

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

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

概要

$ abeja model run-local --handler <value>     \
                        --image <value>       \
                        --input <value>       \
                        --environment <value> \
                        --no_cache            \
                        --quiet               \
                        --v1
[--help]

オプション

--handler

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

--image

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

--input

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

--environment

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

--no_cache

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

--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}]