UI を使用した機械学習のための分散有向非巡回グラフ フレームワーク
MLComp の目標は、複雑なパイプライン (特にコンピューター ビジョン用) のトレーニング、推論、作成を迅速かつ適切に管理できる方法で行うためのツールを提供することです。
MLComp は、Python 3.6 以降、Unix オペレーティング システムと互換性があります。
触媒エコシステムの一部。プロジェクトマニフェスト。
特徴
素晴らしいUI
触媒サポート
分散型トレーニング
計算リソースを制御するスーパーバイザ
コードとデータの両方の同期
リソース監視
UI での一時停止と続行の全機能
要件の自動制御
コードのダンプ (UI 上の構文ハイライト付き)
Kaggle の統合
階層ロギング
グリッド検索
実験比較
レイアウトシステムのカスタマイズ
コンテンツ
スクリーンショット
インストール
UI
使用法
ドキュメントと例
環境変数
ダグス
コンピュータ
レポート
コード
グラフ
その他のスクリーンショット
MLComp パッケージをインストールする
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev pip インストール mlcomp mlcomp の初期化 mlcomp の移行
環境をセットアップします。 「環境変数」セクションを考慮してください。
db、redis、mlcomp-server、mlcomp-workers を実行します。
バリエーション 1: 最小限 (コンピューターが 1 台の場合)
必要なもの (mlcomp-server、mlcomp-workers、redis-server) をすべて実行します。SQLITE を使用します。
mlcomp-server start --daemon=True
バリエーション 2: フル
a. PostgreSql を使用するように環境変数を変更します。
b.各職場コンピュータに rsync をインストールする
sudo apt-get インストール rsync
環境変数ファイルで指定した IP/ポートを使用して、すべてのコンピュータが SSH プロトコルで使用できることを確認します。
rsync は次のコマンドを実行します。
アップロードする
rsync -vhru -e "ssh -p {target.port} -o StrictHostKeyChecking=no" {folder}/ {target.user}@{target.ip}:{folder}/ --perms --chmod=777
ダウンロードする
rsync -vhru -e "ssh -p {source.port} -o StrictHostKeyChecking=no" {source.user}@{source.ip}:{folder}/ {folder}/ --perms --chmod=777
c.分散学習のために apex をインストールする
d. postgresql、redis-server、mlcomp-server を実行するには、サーバー コンピューター上で次のコマンドを実行します。
cd ~/mlcomp/configs/ docker-compose -f server-compose.yml up -d
e.各ワーカー コンピューターで実行します。
mlcomp-worker の開始
Web サイトは http://{WEB_HOST}:{WEB_PORT} で利用できます。
デフォルトでは、http://localhost:4201 です。
フロントはAngularJSで構築されています。
変更したい場合は、フロントの Readme ページを参照してください。
走る
mlcomp dag PATH_TO_CONFIG.yml
このコマンドは、ディレクトリのファイルをデータベースにコピーします。
次に、サーバーは空きリソースを考慮して DAG をスケジュールします。
詳細については、ドキュメントを参照してください。
API ドキュメントとライブラリの概要については、こちらをご覧ください。
高度なチュートリアルと MLComp のベスト プラクティスは、リポジトリのサンプル フォルダーにあります。
FileSync チュートリアルではデータ同期メカニズムについて説明します
コンピューター環境をセットアップする単一のファイルは ~/mlcomp/configs/.env にあります。
ROOT_FOLDER - MLComp ファイルを保存するフォルダー: configs、db、task など。
TOKEN - サイトセキュリティトークン。任意の文字列に変更してください
DB_TYPE。 SQLITE または POSTGRESQL のいずれか
POSTGRES_DB。 PostgreSql データベース名
POSTGRES_USER。 PostgreSql ユーザー
POSTGRES_PASSWORD。 PostgreSQLのパスワード
POSTGRES_HOST。 PostgreSql ホスト
PGデータ。 PostgreSql データベース ファイルの場所
REDIS_ホスト。 Redisホスト
REDIS_ポート。 Redisポート
REDIS_パスワード。 Redis パスワード
WEB_ホスト。 MLComp サイトのホスト。 0.0.0.0 はどこからでも利用できることを意味します
WEB_PORT。 MLComp サイトポート
CONSOLE_LOG_LEVEL。コンソールへの出力のログレベル
DB_LOG_LEVEL。データベースへの出力のログ レベル
IP。職場のコンピューターの IP。職場のコンピュータは、これらの IP/ポートによって他の職場のコンピュータからアクセスできる必要があります。
ポート。職場のコンピューターのポート。職場のコンピュータは、これらの IP/ポート (SSH プロトコル) によって他の職場のコンピュータからアクセスできる必要があります。
MASTER_PORT_RANGE。職場のコンピューターの分散ポート範囲。 29500 ~ 29510 は、この作業用コンピューターが分散学習のマスターである場合、この範囲の最初の空きポートを使用することを意味します。異なる職場コンピュータの範囲が重複してはなりません。
NCCL_SOCKET_IFNAME。 NCCLネットワークインターフェース。
ファイル_同期_間隔。ファイル同期間隔 (秒単位)。 0 はファイル同期がオフであることを意味します
WORKER_USAGE_INTERVAL。ワーカーの使用状況を DB に書き込む間隔 (秒)
INSTALL_DEPENDENCIES。真/偽。依存ライブラリをインストールするかどうか
SYNC_WITH_THIS_COMPUTER。真/偽。 False の場合、それを除くすべてのコンピュータはそのコンピュータと同期しません。
CAN_PROCESS_TASKS。真/偽。 false の場合、このコンピュータはタスクを処理しません
ifconfig
コマンドを使用すると、ネットワーク インターフェイスを確認できます。 nvidia ドキュメントを検討してください