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サーバーを起動する手順です。

  1. 画面上部の検索欄に「vm」と打ち込み、「サービス」 > 「Virtual Machines」をクリックします。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続1
  2. 1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」で作成した仮想マシンのチェックボックスをクリックします。

  3. 「状態」が「停止済み(割り当て解除)」であることを確認します。「状態」が「実行中」となっていた際は、「BerryサーバーにSSH接続する」に進んでください。

  4. 画面上部の「開始」をクリックします。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続2
  5. 画面に「選択した1個の項目に対して 開始コマンドを実行済み」と表示されることを確認します。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続3

BerryサーバーにSSH接続する

BerryサーバーにSSH接続する手順です。

  1. 画面上部の検索欄に「vm」と打ち込み、「サービス」 > 「Virtual Machines」をクリックします。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続1
  2. 1.1.3.2. Microsoft Azureに仮想マシンを構築する - 仮想マシンを作成する」で作成した仮想マシンのチェックボックスをクリックします。

  3. 「パブリック IP アドレス」に記載されているIPアドレスを控えます。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続1
  4. Tera Termを起動します。

  5. 「Tera Term: 新しい接続」タブにて「TCP/IP」を選択して下記のパラメーターを入力し、「OK」をクリックします。

    項目
    ホスト(T) <仮想マシンのパブリックIPアドレス>
    ヒストリ チェック
    TCPポート#(P) 22
    サービス SSH
    仮想マシンにSSH接続する - 仮想マシンへSSH接続4
  6. 「セキュリティ警告」タブが表示された場合は、デフォルトのまま「続行(C)」をクリックします。

    仮想マシンにSSH接続する - 仮想マシンへSSH接続5
  7. 「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)>
    仮想マシンにSSH接続する - 仮想マシンへSSH接続6
  8. Berryサーバーにアクセスできることを確認します。

Berryサーバーの環境構築をする

Node-AI Berryを利用する際に必要なソフトウェアやDocker imageをインストール・ダウンロードする手順です。

CentOSの初期設定をする

  1. BerryサーバーにSSH接続する」を参考に、BerryサーバーにSSH接続します。

  2. 下記のコマンドを実行して作業用ディレクトリを作成し、そのディレクトリに移動します。以降、Berryサーバーでの作業は作業ディレクトリ「/home/berry-user/work」で行うものとします。

    $ mkdir /home/berry-user/work
    $ cd /home/berry-user/work
    

Docker imageをダウンロードする

  1. 下記を参考にDocker imageファイル(tar.gzファイル)を受け取り、作業端末の「C:\」に「berry.tar.gz」として格納します。

  2. Tera Termの上部の「ファイル(F)」 > 「SSH SCP...」をクリックします。

    Docker imageをダウンロードする - imageをダウンロードする1
  3. 「TTSSH: Secure File Copy」タブの上側の入力欄に下記パラメーターを入力し、「Send」をクリックします。

    項目 備考
    From C:\berry.tar.gz  
    To /home/berry-user/work  
    Docker imageをダウンロードする - imageをダウンロードする2

Dockerをインストールする

  1. Berryサーバーにて下記のコマンドを実行し、Docker公式のリポジトリを追加します。

    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  2. 下記のコマンドを実行し、Dockerをインストールします(本項記載時の「Docker」のバージョンは"25.0.4"です)。

    $ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  3. 下記のコマンドを実行し、Dockerを起動します。

    $ sudo systemctl start docker
    
  4. 下記のコマンドを実行し、Dockerの自動起動を有効にします。

    $ sudo systemctl enable docker
    

Node-AI Berryで推論APIを公開する

Node-AI Berryで推論APIを公開する手順です。

Docker imageを取り込む

  1. Berryサーバーにて下記のコマンドを実行し、Docker imageファイルをloadしてDocker imageを取り込みます。

    $ sudo docker load -i berry.tar.gz
    
  2. Docker imageがサーバーに格納されていることを確認します。下記のコマンドを実行し、出力結果例のように「REPOSITRY」以降の行が確認できるような出力がされることを確認してください。

    $ sudo docker image list
    
    • 出力結果例
    REPOSITRY TAG IMAGE ID CREATED SIZE
    berry latest 4c787f633d5d 13 days ago 2.11GB
    

コンテナを起動する

  1. Berryサーバーにて下記のコマンドを実行し、コンテナにマウントするディレクトリを作成します。

    $ mkdir $(pwd)/models
    
  2. 下記のコマンドを実行し、Docker imageを起動します。

    $ docker run -p 8001:8001 --mount type=bind,src=$(pwd)/models,dst=/nodeai/models --name berry -d -it berry:latest
    
  3. 推論APIが起動していることを確認します。下記のコマンドを実行し、出力結果「[]」が返ってくることを確認してください。

    $ curl -X 'GET' 'http://localhost:8001/api/v2/models' -H 'accept: application/json'
    
    • 出力結果
    []
    

学習モデルをアップロードする

1.1.3.4. Node-AIの環境構築・学習モデルの作成・エクスポートをする - 学習モデルをダウンロードする」にて作業端末にダウンロードした学習モデルをNode-AI Berryへアップロードします。

  1. Tera Termの上部の「ファイル(F)」 > 「SSH SCP...」をクリックします。

    学習モデルをアップロードする - 学習モデルをアップロードする1
  2. 「TTSSH: Secure File Copy」タブの上側の入力欄に下記パラメーターを入力し、「Send」をクリックします。

    項目 備考
    From C:\TrainModel.zip  
    To /home/berry-user/work  
    学習モデルをアップロードする - 学習モデルをアップロードする2
  3. 下記のコマンドを実行し、モデルを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"}
    
  4. 推論APIを実行するためのURLは下記です。

    • http://<BerryサーバーのパブリックIPアドレス>/api/v2/predict/<モデルID>

    注釈

    <モデルID>には、{"id":"xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"}の「xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx」の部分を入力してください。