はじめに
KAMONOHASHIってなに?
KAMONOHASHIはDeep Learningのモデル開発を効率的に行うためのAI開発プラットフォームです。
学習で使用するデータの管理や、学習の履歴管理(どのデータ使ってどのモデル使ったか、学習結果はどうだったか)、GPUノードの管理等を行えます。
過去にはKAMONOHASHIを活用して弊社のDeep LearningエンジニアがKaggleにチームで挑戦し世界6位を取った実績もあります。
Kaggle世界ランク6位をマークしたNSSOL Deep Learning研究チームの力とは ~AI開発プラットフォーム『KAMONOHASHI』が支えた快挙~
そんなKAMONOHASHI、実はOSSであり、現在どなたでも使用することができるのです。
リポジトリ:https://github.com/KAMONOHASHI/kamonohashi
本記事の内容
本記事ではKAMONOHASHIをAzureを使用して構築する方法を記載します。
オンプレミス前提のインストーラのため、Azure上で構築するには少々追加の設定が必要です。
手順概要
- KAMONOHASHI構築に使用する管理系サーバ(VM)を作成する
- 準備したサーバにKAMONOHASHIをインストールする
- 設定を修正する
KAMONOHASHI構築に使用する管理系サーバの準備
Azure portal上でVM作成
Azure portalで管理マシン用のVM3台とNVIDIA GPUを搭載したVMを1台以上用意します。
すべてのマシンに共通のアカウントでsshログインできるようにしてください。
以下では参考例として、サーバ名とリソースサイズを記載します。
サーバ名 | リソースサイズ | |
---|---|---|
Kubernetes master | test-k8sserver01 | Standard_F2s_v2 |
KAMONOHASHI | test-kqiserver01 | Standard_F4s_v2 |
Storage | test-storageserver01 | Standard_F2s_v2 |
GPU | test-gpuserver01 | Standard_NC6 |
詳細なリソース要件はインストールガイドの最小リソース要件を参照してください。
すべてのVMで共通の設定
- OSはUbuntu Server 16.04LTS
- すべてのマシンに共通のアカウントでsshログインできるようにする
- sudoできるようにする
KAMONOHASHI VMの準備
ネットワーク設定>受信セキュリティ規則の追加から、80番ポートへの通信を許可します
Storage VMの準備
ネットワーク設定>受信セキュリティ規則の追加から、9000番ポートへの通信を許可します
GPUサーバの準備
- GPUサーバにGPUドライバをインストール
- ドライバをNVIDIAドライバダウンロードサイトからダウンロードします。
- GPUサーバにsshし、ダウンロードしたドライバのrunファイルを起動します。
- GPUサーバを再起動します
以下はGPUサーバにsshしドライバのrunファイルを起動するサンプルコードです。
ssh ユーザ名@(gpu VMのip)
sudo su -
apt update
apt install -y gcc make
wget http://jp.download.nvidia.com/tesla/418.67/NVIDIA-Linux-x86_64-418.67.run
chmod +x NVIDIA-Linux-x86_64-418.67.run
./NVIDIA-Linux-x86_64-418.67.run -s
コマンドを打ち、GPUドライバがインストールできたことを確認します。
nvidia-smi
KAMONOHASHIインストール
- Kubernetes master用に用意したマシンにログインし、rootになります。
ssh user@(Kubernetes masterマシンのip)
sudo su -
- デプロイコマンドを実行
webサイトのインストールガイドにあるコマンドを実行します。
バージョンは2019/12/5現在の最新バージョンであるv1.1.4を指定しています。
KQI_VERSION=1.1.4
wget -O /tmp/deploy-tools-$KQI_VERSION.tar.gz https://github.com/KAMONOHASHI/kamonohashi/releases/download/$KQI_VERSION/deploy-tools-$KQI_VERSION.tar.gz
mkdir -p /var/lib/kamonohashi/deploy-tools/$KQI_VERSION/
cd /var/lib/kamonohashi/deploy-tools/$KQI_VERSION/
tar --strip=1 -xf /tmp/deploy-tools-$KQI_VERSION.tar.gz
./deploy-basic-cluster.sh deploy
- 用意したマシンの設定情報を対話形式で入力
対話形式で設定を聞かれるので、準備したサーバのマシン名を入力します。
sshユーザ名には構築の準備で使用したユーザ名を入力します。
パスワードを使用している場合はパスワードを入力します。
プロキシ設定は使用しない場合、Nを入力します。
KAMONOHASHIのadminパスワードは8文字以上のパスワードを入力します。
設定を入力すると、自動でKubernetesとKAMONOHASHIのインストールが始まります。
- 20分ほど待つ
構築には約20分かかります。
設定修正
KAMONOHASHIのコンテナの停止
以下のコマンドを実行してKAMONOHASHIのコンテナを停止します。
/var/lib/kamonohashi/deploy-tools/1.1.4/kamonohashi/deploy-kqi.sh clean
KAMONOHASHI構築設定編集
以下のコマンドを実行してKAMONOHASHIの設定を編集します。
vi /var/lib/kamonohashi/deploy-tools/1.1.4/kamonohashi/conf/settings.yml
リバースプロキシ設定の下のexternalIPsをPIPに変更します。
KAMONOHASHIのコンテナの起動
以下のコマンドを実行してKAMONOHASHIのコンテナを起動します。
/var/lib/kamonohashi/deploy-tools/1.1.4/kamonohashi/deploy-kqi.sh deploy
構築完了確認
http://test-kqiserver01.eastus.cloudapp.azure.com
(上記setting.ymlのVirtuaHostsに書いた外部host名)にアクセスします。
ユーザ名admin、パスワードは構築時に設定したKAMONOHASHI用のパスワードを入力します。
おわりに
これでKAMONOHASHIの構築は完了です。
チュートリアルを参考に、実際にAI開発の履歴管理、GPUノードの管理など様々な機能を体感していただけると嬉しいです。
よりカスタマイズした要件でKAMONOHASHIを使用したい場合
導入の有償サポートを行っています。カスタマイズした環境への導入などのご要望や質問がある場合、
下記までお問い合わせください。
Mail:kamonohashi-support@jp.nssol.nipponsteel.com
Twitter:@Kamonohashi_kqi
不具合や機能要望がある場合
修正・改善要望はGitHubのIssueにて受け付けています。