0.5から始める機械学習

Machine Learning, Deep Learning, Computer Vision に関する備忘録

Trainsによる実験管理 ~サーバー立ち上げ編~

こんにちは

みなさんは機械学習/Deep Learningにおいてどのように実験管理をしていますでしょうか?

  • ハイパーパラメーター
  • テスト結果
  • 学習済みモデル
  • ソースコードのバージョン
  • etc.

挙げ始めるときりがないですが、様々な項目を管理する必要があると思います。

一番シンプルな方法はエクセルで管理するという方法もあるかと思いますが、今回はもう少しスマートに管理する方法について記事にしてみました!

Trains

今日紹介するのは、Allegro AI社が提供しているTrainsです。

allegro.ai

Trainsの特徴を挙げると

  • 強力な自動ロギング機能
    • 2行追加するだけでハイパラ、メトリクス、学習済みモデル、コミットIDなどを自動でログ
  • Single Page Application で快適なUX
  • ローカルサーバーにホスティング可能
    • 社内で安心して運用可能

まだまだありますが、非常に使い勝手がよく便利なツールになってます。

以下ではローカルサーバーにホスティングする方法についてまとめていきます。

実行環境

  • OS: Ubuntu 18.04 LTS
  • Docker: 19.03
  • docker-compose: 1.24.1
  • Trains: 0.16.0

Trains ServerのInstall

Trains ServerのInstallはビルド済みのdockerイメージが配布されているため簡単にデプロイできます。

最終的な構成は以下のような感じです。

https://raw.githubusercontent.com/allegroai/trains/master/docs/system_diagram.png

導入手順に関しては公式の通りにやっていきましょう。

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のための初期設定と簡単な使い方についてまとめようと思います。