Maison DL コンセプトと機能

前回の話をうけて、Maison DLのコンセプトと機能を説明していきます。

1. コンセプト

Maison DLのような管理ツールは業務でも色々作ってきました。こうしたツールの機能は考え出すとキリがなくなるので、まずは自分たちが快適に かつ業務に耐えるものするとし、以下のコンセプトでまとめていきました。

Collaboration and Communication

通常 共有リソースの管理は習熟度の違いを考慮して利用を強く規定し間違えを起こさせないようにします。使い方の周知はしますが、仕組みについてはあまり語りません。しかし、今回のFirst ユーザである私たちは技術者で一定のスキルと節度を期待できます。また、ガチガチに管理されると業務遂行が難しくなる面もあります。そこで私たちは厳密な管理より協調と対話を重んじ、仕組みも明らかにした上で各自の工夫の余地を残すことにしました。 ただ野放図ではいけませんので、データの所有者や誰が何をやったかの情報をシステム的に追随可能なようにしました。

Easy to Use

一定のスキルレベルを想定し柔軟性を重視するとは言え、ツールは使い易くなくてはなりません。ユーザの主目的は業務や研究の遂行であって、環境の確保はその付帯作業とも言えます。技術者が快適となるレベルの使い易さを追求しました。

Security First

ツールのフロントに見える部分は協調と対話、使い易さを重視しますが、これは私たちの事業に使っていくものですからセキュリティへの目配りはとても重要です。普通に社内システムを使う感覚で、自然にセキュリティが確保できているということの実現を目指しました。

2. 全体像

pic1

3. 機能概要

以下機能一覧です。

機能名 概要
予約システム 共有サーバ・GPUを予約します。
ダッシュボード CPU/Memory/HDD/GPU などの利用量グラフを表示します。
IR(Image Recipe) Hub ビルド済みの Docker Image とそのレシピ (Dockerfile) のレポジトリです。社内 Docker Hub みたいなものなので Hubと呼んでいます。
Maison cmd Docker コマンドをラップしたユーティリティコマンドです。docker build/push/run 等に対し必須オプションの補完やロギング等を行います。
コンテナ Docker Container。
ストレージ 画像ファイル・学習結果の重み・開発用ディレクトリなどユーザデータ置き場です。ローカルキャッシュと統合ストレージがあります。後述します。
統合認証 ストレージ上のデータ・Host OS/Container/IR Hub/予約システムなどあらゆる場面で同一のアカウントを用います。

典型的な使い方は以下のようになります。

(1) 予約システムからマシンを予約
(2) 時間になったら =maison run= でコンテナを起動
(3) 統合ストレージから必要なデータをコピー
(4) 学習や開発、大事なデータは統合ストレージに保存して終了

Docker Image のビルドやコンテナの起動終了は Maison cmd で行います。 Maison cmd がコンテナ名にユーザ名を付与するなど、社内規約に従って誰がいつ何をしたかが追跡できるようにしています。ビルドしたイメージや Dockerfile は IR Hub に登録します。これも Maison cmd により行います。

(3), (4)のデータコピーはDLの学習スピードを考慮した結果です。大容量ストレージを用意し SAN や NAS でネットワーク越しにデータ領域を利用できれば良いのですが、論理的には可能でも実際にはI/OボトルネックでDL学習のパフォーマンスが上がりません。そこで作業領域として Host OS のローカル HDD を使い、オリジナルデータをリモートの統合ストレージに保存することとしました。

課題にあげていた「予約管理」・「作業者の追跡性」・「環境間でのデータ共有」はこのような形で実現しています。最後に Docker 使用に対する「自由さと硬さ」ですが、IR Hub で Docker image や Dockerfile を一覧できるので、既存のイメージを流用したり、 Dockerfile を参考にしたりしやすくなりました。 Dockerfile の作り方も継承関係を整理し、  nvidia-CUDA -> 共通環境 -> DL MW -> (必要があれば個別の)開発環境 というようにしています。共通環境で、認証設定や日本語、基本的なコマンドなどをセットアップしています。

現状イメージのビルドは必要に応じてメンバが適宜行っていますが、DL MW の進化は激しいので、将来的には定期的に最新版の DLMW 環境イメージを IR Hub に登録してもいいかなと考えています。

セキュリティついては、既に社内で稼働しているLDAPベースの認証基盤との連携で実現しています。ストレージ上のデータ・Host OS/Container/IR Hub/予約システムなどあらゆる場面で認証基盤上の同一のアカウントを用いて操作をしています。