- リリース ノート
- 概要
- セットアップと構成
- データ ストレージ
AI Computer Vision ガイド
独自の Computer Vision サーバーを、Docker を使用して Microsoft Windows または Ubuntu にデプロイする、または Podman を使用して Red Hat Enterprise Linux にデプロイして Computer Vision アクティビティで使用する場合は、以下の手順を実行します。
Microsoft Windows
WSL をインストールする
まず、WSL をマシンにインストールする必要があります。
WSL をインストールするには、次のコマンドを実行します。{distribution} は、使用する Linux ディストリビューションです。
wsl --install -d {distribution}
wsl --install -d {distribution}
このインストール プロセスで推奨されるオペレーティング システムは Ubuntu です。
Nvidia ドライバーのインストール
Computer Vision サーバーを Windows マシンで実行するには、Nvidia Windows 11 ディスプレイ ドライバーを Nvidia の公式 Web サイトからダウンロードして、対応する GeForce または Nvidia RTX/Quadro カードを搭載したシステムにインストールする必要があります。
どの種類の Linux ディスプレイ ドライバーが WSL にインストールされていても、エラーが発生する可能性があります。
Podman および Nvidia Container Toolkit をインストールする
次のスクリプトを実行して、Podman と Nvidia Container Toolkit の両方をインストールできます。
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_all.sh
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_all.sh
サーバーを実行する
Computer Vision サーバーを実行するには、WSL Linux ターミナルで次のコマンドを実行する必要があります。
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
サーバーをネットワーク上で利用可能にする
サーバーがローカル ネットワーク上に表示されるようにするには、Windows 上でファイアウォール ルールを作成し、Computer Vision サーバーを利用可能なポートに受信規則を設定する必要があります。既定のポートは 8501 です。
WSL 内で実行される Linux インスタンスには専用の仮想ネットワーク インターフェイス コントローラーがあるため、ホスト IP へのトラフィックは、Linux インスタンスの IP に直接リダイレクトされません。以下のコマンドを使用してホスト IP のトラフィックを Linux インスタンスに転送すると、この問題を回避できます。
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
WSL の IP は以下のコマンドで確認できます。
wsl -d {distribution} hostname -I
wsl -d {distribution} hostname -I
この問題は、Windows で Docker Desktop を使用している場合には発生しません。
サーバーを自動的に開始する
Linux に直接インストールされた Docker Engine を使用する場合、マシンの起動時に自動的にサーバーを起動するには、Windows でスケジュールされたタスクを作成する必要があります。このタスクはシステムの起動時に実行され、以下の PowerShell スクリプトが実行されます。{distribution} は、インストールされている Linux ディストリビューションです。
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
インストールの制約
このインストール プロセスでは、入れ子になった仮想化をサポートするマシンが必要です。現在、ほとんどのクラウド仮想マシンは、GPU マシンの入れ子になった仮想化をサポートしていません。結論として、このインストール プロセスは、GPU を備えた物理 Windows サーバーをお持ちのお客様に最適です。
Linux RHEL / Ubuntu
このページに掲載されているすべてのコマンドは、GPU マシンの端末で実行する必要があります。
Computer Vision サーバー イメージのエクスポートをダウンロードする
営業担当から提供されたリンクを、現在のターミナル セッションで保存します。
export CV_URL="LINK_FROM_SALES_REP"
export CV_URL="LINK_FROM_SALES_REP"
エクスポートをダウンロードします。
wget "$CV_URL" -O controls_detection.tar
wget "$CV_URL" -O controls_detection.tar
イメージを Podman に読み込む
次のコマンドを実行します。
podman load -i controls_detection.tar
podman load -i controls_detection.tar
サーバーの起動
次のコマンドを実行します。
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/ \--security-opt=label=disable --device=nvidia.com/gpu=all controls_detection eula=accept
Computer Vision モデルをアップグレードする
モデルのアップグレードは、新しいバージョンのモデルのインストールに相当します。モデルをアップグレードすると、モデル自体とそのバイナリが変更され、必然的にサーバーの動作が停止するためです。
まったく同じサーバー マシンでアップグレードを実行する場合、ダウンタイムの発生が予想されます。これを回避するには、別のサーバー マシンに新しいバージョンをインストールし、インストールが完了したら、トラフィックを切り替えます。
標準的なアップグレードは次のようになります。
- ダウンタイムを準備して発表します (該当する場合)。
- 古いモデルの代わりに新しいモデルをインストールします。
- サーバーを実行します。
環境でマルチノードのロード バランサー セットアップを使用している場合は、各ノードを一度に 1 つずつ再インストールすることで、ダウンタイムを完全に回避できます。