9
1

More than 3 years have passed since last update.

Kagglerにも便利!? Deep Learning開発&運用環境「KAMONOHASHI」を Azure上に構築する

Last updated at Posted at 2019-12-05

はじめに

KAMONOHASHIってなに?

logo_003.png

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ログインできるようにしてください。
vm作成.PNG

以下では参考例として、サーバ名とリソースサイズを記載します。

サーバ名 リソースサイズ
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番ポートへの通信を許可します
kyoka.PNG

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文字以上のパスワードを入力します。

KQIインストールstep1.PNG

設定を入力すると、自動でKubernetesとKAMONOHASHIのインストールが始まります。

  • 20分ほど待つ

構築には約20分かかります。

KQIインストールstep2-3.PNG

設定修正

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に変更します。

  • before
    before.PNG

  • after

after.PNG

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ログイン.PNG

おわりに

これでKAMONOHASHIの構築は完了です。
チュートリアルを参考に、実際にAI開発の履歴管理、GPUノードの管理など様々な機能を体感していただけると嬉しいです。

よりカスタマイズした要件でKAMONOHASHIを使用したい場合

導入の有償サポートを行っています。カスタマイズした環境への導入などのご要望や質問がある場合、
下記までお問い合わせください。
Mail:kamonohashi-support@jp.nssol.nipponsteel.com
Twitter:@Kamonohashi_kqi

不具合や機能要望がある場合

修正・改善要望はGitHubのIssueにて受け付けています。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1