DeepForge のインストールと起動(Docker を使用)(Ubuntu 上)

DeepForge は,深層学習のモデルとパイプラインをグラフィカルに設計・実行するための開発環境である。WebGME を基盤とし,Web ブラウザから操作する。サーバ,MongoDB,計算リソース,ストレージから構成される。

公式のソースコードリポジトリは https://github.com/deepforge-dev/deepforge である。

かつての公式ドメイン deepforge.org は,現在は DeepForge と無関係な内容になっている。参照先としては GitHub リポジトリ,およびドキュメントサイト https://deepforge.readthedocs.io/ を使用する。

このページでは,Docker イメージ deepforge/kitchen-sink と MongoDB を Docker Compose で起動する手順を説明する。この方法では,Node.js や MongoDB をホスト側に直接インストールする必要はない。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

Docker Engine, Docker Compose のインストール

Docker Engine,Docker Compose のインストールと使用法: 別ページ »で説明

インストール後,端末で,次のコマンドを実行して動作を確認する。バージョン番号が表示されれば使用できる状態である。

docker --version
docker compose version
docker run --rm hello-world

docker コマンドの実行で権限エラーになる場合は,端末で,次のコマンドを実行して自身のユーザを docker グループに追加し,いったんログアウトして再ログインする。

sudo usermod -aG docker $USER

OpenSSL のインストール

DeepForge のサーバは,ユーザ認証用トークンの署名と検証に RSA 鍵ペアを使用する。鍵ペアの生成に OpenSSL を使用する。インストールするには,端末で,次のコマンドを実行する。

sudo apt update
sudo apt -y install openssl

DeepForge の起動

  1. トークン用鍵ペアの生成

    Docker Compose の設定ファイルは,環境変数 TOKEN_KEYS_DIR が指すディレクトリ内の private_keypublic_key をコンテナに渡す。端末で,次のコマンドを実行する。

    mkdir -p $HOME/.deepforge/token_keys
    cd $HOME/.deepforge/token_keys
    openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private_key
    openssl rsa -in private_key -pubout -out public_key
    chmod 600 private_key
    
  2. docker-compose.yml のダウンロード

    公式リポジトリで配布されている設定ファイルを取得する。端末で,次のコマンドを実行する。

    mkdir -p $HOME/deepforge
    cd $HOME/deepforge
    curl -O https://raw.githubusercontent.com/deepforge-dev/deepforge/master/docker/docker-compose.yml
    cat docker-compose.yml
    

    この設定ファイルは,MongoDB のコンテナと DeepForge サーバのコンテナ(イメージ deepforge/kitchen-sink:latest)を定義する。データベースの内容は $HOME/.deepforge/data,アップロードされたデータは $HOME/.deepforge/blob に保存される。サーバはポート 8888(Web インタフェース)と 8889 を使用する。

  3. 環境変数の設定と起動

    端末で,次のコマンドを実行する。

    cd $HOME/deepforge
    export TOKEN_KEYS_DIR=$HOME/.deepforge/token_keys
    docker compose up
    

    初回はイメージのダウンロードが行われるため時間がかかる。docker compose は Docker Compose V2 のコマンドである。旧来の docker-compose コマンドは,現在は Docker には同梱されない。

  4. Web インタフェースへの接続

    Web ブラウザで http://localhost:8888 を開く。DeepForge が対応を明示しているブラウザは Google Chrome である。

  5. 終了

    起動した端末で Ctrl+C を押す。コンテナを削除するには,端末で,次のコマンドを実行する。データは $HOME/.deepforge に残る。

    cd $HOME/deepforge
    docker compose down
    

ユーザ認証の有効化

既定の設定では,ユーザ認証は無効であり,接続した者は誰でも全てのプロジェクトを操作できる。ネットワークに公開して運用する場合は,環境変数 DEEPFORGE_AUTHENTICATIONtrue に設定し,管理者ユーザを作成する。

docker-compose.ymlserverenvironment に次の行を追加する。

      - "DEEPFORGE_AUTHENTICATION=true"

設定を反映して起動した後,管理者ユーザを作成するには,端末で,次のコマンドを実行する。<ユーザ名><メールアドレス><パスワード> は自身のものに置き換える。

cd $HOME/deepforge
docker compose exec server ./bin/deepforge-users useradd -c -s <ユーザ名> <メールアドレス> <パスワード>

関連リンク