1.1.3.5. Node-AI Berryの環境を構築する¶
本項ではNode-AIで作成した学習モデルを「Node-AI Berry」へアップロードし、推論APIとして利用する手順を記載します。
以下、Node-AI BerryをデプロイするMicrosoft Azure上の仮想マシンのことを「Berryサーバー」と呼びます。
なお、本項中の設定値の「< >」の表記については、利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。
前提条件を確認する¶
- あらかじめ、これまでの項に記載されているすべての作業が完了していることを確認してください。 
- 契約したサブスクリプションに対する「所有者」「共同作成者」権限を持つユーザーで、「Azure Portal」へログイン済みであること
- 本項の手順は「Tera Termとの接続手順」を除くすべての作業を「Azure Portal」上で行います。 
 
 
注釈
- 本構成ガイドでは、便宜上Azureロール「共同作成者」を割り当てたユーザーでログインしていることを前提条件としています。実際にお客様の環境で構築される際は、要件に応じて適切な設計をし、必要最低限のAzureロールを付与したユーザーを作成することを推奨します。 
- 本項では、「1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」において、イメージを「CentOS-based 7.9 - x64 Gen2」と選択したものとして説明します。 
Berryサーバーを起動する¶
Berryサーバーを起動する手順です。
- 画面上部の検索欄に「vm」と打ち込み、[サービス] > [Virtual Machines]をクリックします。 
- 「1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」で作成した仮想マシンのチェックボックスをクリックします。 
- 「状態」が「停止済み(割り当て解除)」であることを確認します。「状態」が「実行中」となっていた際は、「BerryサーバーにSSH接続する」に進んでください。 
- 画面上部の[開始]をクリックします。 
- 画面に「選択した1個の項目に対して 開始コマンドを実行済み」と表示されることを確認します。 
BerryサーバーにSSH接続する¶
BerryサーバーにSSH接続する手順です。
- 画面上部の検索欄に「vm」と打ち込み、[サービス] > [Virtual Machines]をクリックします。 
- 「1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」で作成した仮想マシンのチェックボックスをクリックします。 
- 「パブリック IP アドレス」に記載されているIPアドレスを控えます。 
- Tera Termを起動します。 
- 「Tera Term: 新しい接続」タブにて[TCP/IP]を選択して下記のパラメーターを入力し、[OK]をクリックします。 
- 「セキュリティ警告」タブが表示された場合は、デフォルトのまま[続行(C)]をクリックします。 
- 「SSH認証」タブにて下記のパラメーターを入力・選択し、[OK]をクリックします。 - 項目 - 値 - ユーザー名(N) - berry-user - パスフレーズ(P) - 未入力 - パスワードをメモリ上に記録する(M) - 未チェック - エージェントを転送する(O) - 未チェック - 認証方式 - RSA/DSA/ECDSA/ED25519鍵を使う - 秘密鍵(K): - <「1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」で保存した秘密キーのファイルパス(例:C:\Node-AI-Berry-vm_key.pem)> 
- Berryサーバーにアクセスできることを確認します。 
Berryサーバーの環境構築をする¶
Node-AI Berryを利用する際に必要なソフトウェアやDocker imageをインストール・ダウンロードする手順です。
CentOSの初期設定をする¶
- 「BerryサーバーにSSH接続する」を参考に、BerryサーバーにSSH接続します。 
- 下記のコマンドを実行して作業用ディレクトリを作成し、そのディレクトリに移動します。以降、Berryサーバーでの作業は作業ディレクトリ「/home/berry-user/work」で行うものとします。 - $ mkdir /home/berry-user/work $ cd /home/berry-user/work 
Docker imageをダウンロードする¶
- 下記を参考にDocker imageファイル(tar.gzファイル)を受け取り、作業端末の「C:\」に「berry.tar.gz」として格納します。 
- Tera Termの上部の[ファイル(F)] > [SSH SCP...]をクリックします。 
- 「TTSSH: Secure File Copy」タブの上側の入力欄に下記パラメーターを入力し、[Send]をクリックします。 
Dockerをインストールする¶
- Berryサーバーにて下記のコマンドを実行し、Docker公式のリポジトリを追加します。 - $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
- 下記のコマンドを実行し、Dockerをインストールします(本項記載時の「Docker」のバージョンは"25.0.4"です)。 - $ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin 
- 下記のコマンドを実行し、Dockerを起動します。 - $ sudo systemctl start docker 
- 下記のコマンドを実行し、Dockerの自動起動を有効にします。 - $ sudo systemctl enable docker 
Node-AI Berryで推論APIを公開する¶
Node-AI Berryで推論APIを公開する手順です。
Docker imageを取り込む¶
- Berryサーバーにて下記のコマンドを実行し、Docker imageファイルをloadしてDocker imageを取り込みます。 - $ 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の環境構築・学習モデルの作成・エクスポートをする - 学習モデルをダウンロードする」にて作業端末にダウンロードした学習モデルをNode-AI Berryへアップロードします。
- Tera Termの上部の[ファイル(F)] > [SSH SCP...]をクリックします。 
- 「TTSSH: Secure File Copy」タブの上側の入力欄に下記パラメーターを入力し、[Send]をクリックします。 
- 下記のコマンドを実行し、モデルを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=@/home/berry-user/work/TrainModel.zip;type=application/zip' - 出力結果 
 - {"id":"xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"} 
- 推論APIを実行するためのURLは下記です。 - http://<BerryサーバーのパブリックIPアドレス>/api/v2/predict/<モデルID> 
 - 注釈 - <モデルID>には、{"id":"xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"}の「xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx」の部分を入力してください。 










