問題タブ [allennlp]
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.
python - AllenNLP 共参照解決のマルチ GPU トレーニング
私は、 CoNLL-2012 共有タスクのエンド ツー エンドのニューラル相互参照解決の論文で得られた結果を複製 (または近づけ) ようとしています。これに加えていくつかの拡張を行うつもりなので、AllenNLPを使用することにしました。これは、モデルの初期化とトレーニングの方法です。CoreferenceResolver
データを読み取った後、モデルをトレーニングしましたが、GPU メモリが不足しました: RuntimeError: CUDA out of memory. Tried to allocate 4.43 GiB (GPU 0; 11.17 GiB total capacity; 3.96 GiB already allocated; 3.40 GiB free; 3.47 GiB cached)
. そのため、複数の GPU を使用してこのモデルをトレーニングしようとしました。私はTesla K80s(12GiBメモリを搭載)を利用しています。
MultiprocessIterator
as を初期化することで、AllenNLP の を利用しようとしましiterator
たMultiprocessIterator(BasicIterator(batch_size=1), num_workers=torch.cuda.device_count())
。nvidia-smi
ただし、(コマンドを使用してメモリ使用量を監視することにより)使用されている GPU は 1 つだけであり、以下のエラーが発生しました。また、そのパラメーター (増加num_workers
または減少output_queue_size
) と(この PyTorch の問題ulimit
で言及されているように) をいじってみましたが、役に立ちませんでした。
また、 PyTorch の DataParallelを使用して、モデルのcontext_layer
,mention_feedforward
をantecedent_feedforward
カスタムでラップすることにより、これを達成しようとしましたDataParallelWrapper
(AllenNLP が想定するクラス関数との互換性を提供するため)。それでも、使用される GPU は 1 つだけであり、最終的には以前と同様にメモリが不足します。
python - データセットのロード中に「解凍するのに十分な値がありません」- Allennlp _read
Allennlp ライブラリを使用して NER を実行しようとしています。このライブラリは、エンティティとトークンのみを持つ conll2003 やその他のデータベースで完全に機能します (同じために _read 関数を更新する必要がありました)。しかし、独自のデータセットを使用しようとすると、関数は「ValueError: unpack するのに十分な値がありません (予想される 2、取得した 1)」を返します。フォーマット、特殊文字、スペース、さらにはファイル名を比較しましたが、問題は見つかりませんでした。これは、機能したデータセットのサンプルです。
これは、機能していない私のデータセットのサンプルです。
問題を特定できません。助けてください。
アップデート
要求に応じて stderr.log を追加します。
_read および text_to_instance 関数の追加