Trainsによる実験管理 ~サーバー立ち上げ編~
こんにちは
みなさんは機械学習/Deep Learningにおいてどのように実験管理をしていますでしょうか?
- ハイパーパラメーター
- テスト結果
- 学習済みモデル
- ソースコードのバージョン
- etc.
挙げ始めるときりがないですが、様々な項目を管理する必要があると思います。
一番シンプルな方法はエクセルで管理するという方法もあるかと思いますが、今回はもう少しスマートに管理する方法について記事にしてみました!
Trains
今日紹介するのは、Allegro AI社が提供しているTrainsです。
Trainsの特徴を挙げると
- 強力な自動ロギング機能
- 2行追加するだけでハイパラ、メトリクス、学習済みモデル、コミットIDなどを自動でログ
- Single Page Application で快適なUX
- 使用感については公式デモサイトで確認(https://demoapp.trains.allegro.ai/)
- ローカルサーバーにホスティング可能
- 社内で安心して運用可能
まだまだありますが、非常に使い勝手がよく便利なツールになってます。
以下ではローカルサーバーにホスティングする方法についてまとめていきます。
実行環境
- OS: Ubuntu 18.04 LTS
- Docker: 19.03
- docker-compose: 1.24.1
- Trains: 0.16.0
Trains ServerのInstall
Trains ServerのInstallはビルド済みのdockerイメージが配布されているため簡単にデプロイできます。
最終的な構成は以下のような感じです。
導入手順に関しては公式の通りにやっていきましょう。
Linux and macOS - Allegro Trains Documentation
1. Increase vm.max_map_count for Elasticsearch in Docker.
echo "vm.max_map_count=262144" > /tmp/99-trains.conf sudo mv /tmp/99-trains.conf /etc/sysctl.d/99-trains.conf sudo sysctl -w vm.max_map_count=262144 sudo service docker restart
2. Create local directories for the databases and storage.
sudo mkdir -p /opt/trains/data/elastic_7 sudo mkdir -p /opt/trains/data/mongo/db sudo mkdir -p /opt/trains/data/mongo/configdb sudo mkdir -p /opt/trains/data/redis sudo mkdir -p /opt/trains/logs sudo mkdir -p /opt/trains/config sudo mkdir -p /opt/trains/data/fileserver
3. Grant access to the Dockers, depending upon your operating system.
sudo chown -R 1000:1000 /opt/trains
4. Download the Trains Server docker-compose YAML file.
sudo curl https://raw.githubusercontent.com/allegroai/trains-server/master/docker-compose.yml -o /opt/trains/docker-compose.yml
5. Run docker-compose with the downloaded configuration file.
docker-compose -f /opt/trains/docker-compose.yml up -d
デプロイが完了すると、
- web server: 8080
- API server: 8008
- file server: 8001
それぞれ上記のポートで立ち上がります。
localhost:8080 にアクセスし、ダッシュボードが表示されればOKです。
まとめ
非常に便利な実験管理ツールであるTrainsのデプロイ方法についてまとめました。
次回はTrains Serverのための初期設定と簡単な使い方についてまとめようと思います。