1.1.3.5. Node-AI Berryの環境を構築する¶
本項では「Node-AI Berry」を使用した、予測自動化を行う環境の構築手順について記載します。
以下、Node-AI Berryをデプロイするサーバーインスタンスのことを「Berryサーバー」と呼びます。
なお、本項中の設定値の「< >」の表記については、利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。
前提条件を確認する¶
あらかじめ、これまでの「1.1.3.1. Wasabiオブジェクトストレージを設定する」、「1.1.3.2. サーバーインスタンスを構築する」、「1.1.3.3. Flexible InterConnectを設定する」、「1.1.3.4. Node-AIの環境構築・学習モデルを作成・エクスポートする」に記載されているすべての作業が完了していることを確認してください。
注釈
- 本項では、「1.1.3.2. サーバーインスタンスを構築する - ボリュームを作成する」において、ボリュームのイメージを「Ubuntu-20.04.1_64_virtual-server_02」と選択したものとして説明します。
Berryサーバーの環境構築をする¶
Node-AI Berryを利用する際に必要なソフトウェアやDocker imageをインストール・ダウンロードします。
Ubuntuを初期設定する¶
「1.1.3.2. サーバーインスタンスを構築する - インスタンスのコンソール画面の開き方を確認する」を参考に、作成したサーバーのコンソール画面を開きます。
初期のユーザー名・パスワードを求められるのでそれぞれ「ubuntu」と入力します。
パスワード変更を求められるので、任意のパスワードに変更します。
作業用ディレクトリを作成し、そのディレクトリに移動します。下記のコマンドを実行してください。以降、Berryサーバーでの作業は作業ディレクトリ「/home/ubuntu/work」で行うものとします。
$ mkdir /home/ubuntu/work $ cd /home/ubuntu/work
pandasをインストールする¶
aptパッケージを更新します。Berryサーバーにて下記のコマンドを実行してください。
$ sudo apt update
自動化スクリプトの実行に必要な「pandas」をインストールします(本項記載時の「pandas」のバージョンは"0.25.3+dfsg-7"です)。下記のコマンドを実行してください。
$ sudo apt install python3-pandas=0.25.3+dfsg-7
AWS CLIをインストールする¶
AWS CLI ZIPファイルを取得します(本項記載時の「AWS CLI」のバージョンは"1.15.58"です)。Berryサーバーにて下記のコマンドを実行してください。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-1.15.58.zip" -o "awscliv2.zip"
unzipをインストールします(本項記載時の「unzip」のバージョンは"6.0-25ubuntu1.1"です)。下記のコマンドを実行してください。
$ sudo apt install unzip=6.0-25ubuntu1.1
AWS CLI ZIPファイルを展開し、インストールします。下記のコマンドを実行してください。
$ unzip awscliv2.zip $ sudo ./aws/install
Docker imageをダウンロードする¶
下記ページを参考にDocker imageファイル(tar.gzファイル)を受け取り、Wasabiオブジェクトストレージ(以下Wasabi)内の任意のバケットに保存します(本構成ガイドでは「nodeai-bucket」に保存するものとして記載をしています)。
注釈
- 大企業(従業員が251人以上、または、年間収入が1,000万米ドル以上)におけるDocker Desktopの商用利用には、有料サブスクリプション契約が必要です。
AWS CLIのコンフィグ設定をします。Berryサーバーにて下記コマンドを実行するとパラメーターの入力を求められるので、以下の表のとおりに入力します。
$ aws configure
項目 値 備考 AWS Access Key Id <Node-AI Berry用Wasabiユーザーの「アクセスキー」> 「1.1.3.1. Wasabiオブジェクトストレージを設定する - Node-AI Berry用ユーザーを作成する」で生成された「アクセスキー」を入力してください。 AWS Secret Access Key Id <Node-AI Berry用Wasabiユーザーの「秘密鍵」> 「1.1.3.1. Wasabiオブジェクトストレージを設定する - Node-AI Berry用ユーザーを作成する」で生成された「秘密鍵」を入力してください。 Default region name <バケットのリージョン(例:ap-northeast-1)> 「1.1.3.1. Wasabiオブジェクトストレージを設定する - バケットを作成する」で指定したリージョンを入力してください。 Default output format (入力なし) BerryサーバーにDocker imageをダウンロードします。下記のコマンドを実行してください(下記コマンドはWasabiのリージョンが「ap-northeast-1」の場合です)。
$ aws s3 cp s3://nodeai-bucket/berry.tar.gz . --endpoint-url=https://s3.ap-northeast-1-ntt.wasabisys.com --recursive
Dockerを入手する¶
必要なパッケージをインストールします。Berryサーバーにて下記のコマンドを実行してください。
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Docker公式のGPG公開鍵をインストールします。下記のコマンドを実行してください。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
repository(stable)を追加します。下記のコマンドを実行してください。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Dockerをインストールします(本項記載時の「Docker」のバージョンは"23.0.0"です)。下記のコマンドを実行してください。
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Node-AI Berryで推論APIを公開する¶
Docker imageを取り込む¶
Docker imageファイルをloadしてimageを取り込みます。Berryサーバーにて下記のコマンドを実行してください。
$ sudo docker load -i berry.tar.gz
Docker imageがサーバーに格納されていることを確認します。下記のコマンドを実行し、出力結果例のように「REPOSITRY」以降が確認できるような出力がされることを確認してください。
$ sudo docker image list
- 出力結果例
REPOSITRY TAG IMAGE ID CREATED SIZE berry latest 4c787f633d5d 13 days ago 2.11GB
コンテナを起動する¶
コンテナにマウントするディレクトリを作成します。Berryサーバーにて下記のコマンドを実行してください。
$ mkdir $(pwd)/models
Docker imageを起動します。下記のコマンドを実行してください。
$ docker run -p 8001:8001 --mount type=bind,src=$(pwd)/models,dst=/nodeai/models --name berry -d -it berry:latest
推論APIが起動していることを確認します。下記のコマンドを実行し、出力結果「[]」が返ってくることを確認してください。
$ curl -X 'GET' 'http://localhost:8001/api/v2/models' -H 'accept: application/json'
- 出力結果
[]
学習モデルをアップロードする¶
「1.1.3.4. Node-AIの環境構築・学習モデルを作成・エクスポートする - 学習モデルをアップロードする」にてWasabiへアップロードした学習モデル(本項では例として、フォルダー名を「Node-AI-Model」、保存しているバケット名を「nodeai-bucket」としています)をNode-AI Berryへアップロードします。
Wasabiから学習モデルをダウンロードします(下記コマンドはWasabiのリージョンが「ap-northeast-1」の場合です)。下記のコマンドを実行してください。
$ aws cp s3://nodeai-bucket/Node-AI-Model . --endpoint-url=https://s3.ap-northeast-1-ntt.wasabisys.com --recursive
下記のコマンドを実行し、モデルをNode-AI Berryへアップロードします。「出力結果」のようにモデルIDが返ってくることを確認してください。
$ curl -X 'POST' 'http://localhost:8001/api/v2/models' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@TrainModel.zip;type=application/zip'
- 出力結果
{"id":"xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"}