問題タブ [distributed-training]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 特定のジョブを一覧表示するための「ps」の速度に影響を与える可能性のあるものは何ですか?
ps aux
特定のジョブをリストアップするのに時間がかかる場合があることがわかりました。最初に他のいくつかのジョブを一覧表示し、次に数分間スタックしてから、そのジョブと残りのジョブを一覧表示します。
その特定の仕事は、分散トレーニング システムの計算負荷の高いワーカーです。このワーカーが停止していることは、他のワーカーからも観察されます。失速の理由はまだわかりませんが、それps aux
も関係しているのではないかと思います。
ps aux
特定の仕事をリストする速度に何が影響するか知っている人はいますか?
tensorflow - Distributed model training without worker servers
I'm interested in distributing the training of my DNN model. However, I'm interested in having the communication occur via AWS S3 instead of over the local network. Why? I have a great batch/async compute cluster setup based on Hashicorp Nomad. I'd love it if I could distribute the model training by simply creating new batch jobs (e.g. a job for each subsample/mini batch) and add that to the Nomad job queue and allow the cluster to auto-scale to take on the work and send it back to main parameter server. So I guess I'm trying to avoid needing to know all of the machines upfront, their network identity etc. More of a serverless approach.
I'm already using the batch compute jobs to do necessary preprocessing and some limited feature extraction, but can distributed training be framed as jobs in a job queue with a fluctuating number of workers?
Is this even a thing? Or is it a bad idea because of the overhead of exchanging data via something like S3? I'm currently focused on TensorFlow, but we're early enough in the project switching frameworks isn't off the table.
spacy - 複数の GPU (1 つだけでなく) での spaCy NER モデルのトレーニング
次のコードを使用して NER モデルをトレーニングしています。
コードの開始:
コードの終わり。
問題:
問題は、各反復に約 30 分かかることです。非常に長いテキストと 6 つのラベルを含む 8000 のトレーニング レコードがあります。
したがって、より多くの GPU コアを使用して削減したいと考えていましたが、使用されているコアは 1 つだけのようです。上記のコードで print(util.gpu) を実行すると、最初のコアだけがゼロ以外の値を返します。
質問 1: トレーニング プロセスを高速化するために、より多くの GPU コアを使用する方法はありますか? リードをいただければ幸いです。
さらに調査した結果、spacy-ray は並列トレーニングを可能にすることを目的としているようです。しかし、私が見つけたのは「python -m spacy ray train config.cfg --n-workers 2.
質問 2: Ray は GPU を使用した並列処理を有効にしますか? それは CPU コアのみですか?
質問 3: 「python -m spacy ray train config.cfg --n-workers 2」を使用するのではなく、nlp.update を使用して Python コードに Ray を統合するにはどうすればよいですか。?
ありがとうございました!
環境:
上記のコードはすべて、ml.p3.2xlarge EC2 インスタンスを使用する AWS Sagemaker 上の 1 つの conda_python3 ノートブックにあります。
使用したPython バージョン: 3
spaCy 使用したバージョン: 3.0.6
deep-learning - DDP トレーニング済みモデルで nnU-Net 推論を実行するにはどうすればよいですか?
nnU-Net - ディープ ラーニング セグメンテーション メソッド ( https://github.com/MIC-DKFZ/nnUNet ) - を取得して、トレーニング データセットを使用してモデルのトレーニングを完了した後に推論を実行しようとしてnnUNetTrainerV2_DDP
います。
nnUNet_change_trainer_class
モデルが保存されているフォルダーで実行したところ、フォルダー内でcheckpoint.model
およびmodal_best
pkl ファイルが更新されていることがわかりますが、テスト セットで予測を開始した後、次のエラーが発生します。
AssertionError: model output folder not found. Expected: E:\Pieterjan\nnUNet_project\nnUNet_trained_models\nnUNet\3d_fullres\Task101_Lung\nnUNetTrainerV2__nnUNetPlansv2.1
nnUNetTrainerV2__nnUNetPlansv2.1
1 つの GPU のみでトレーニングされたモデルを使用する場合、推論を開始するときに使用されるデフォルトのようですが、2 つの GPU を使用しました (したがって_DDP trainer
、nnU-Net によって提供される を使用しました)。また、単純にフォルダーの名前を変更しようとしましたが、問題は解決しません。
nnUNetTrainerV2_DDP__nnUNetPlansv2.1
テスト データセットでの推論に使用する nnU-Net をセットアップするにはどうすればよいですか?
事前に乾杯!