AWS でディープラーニングを使用するための 10 個の Linux コマンド

AWS でディープラーニングを使用するための 10 個の Linux コマンド

[[202723]]

AWS 上で大規模なディープラーニング処理を実行することは、学習と開発を行うための安価で効果的な方法です。わずかな費用で数十 GB のメモリ、数十個の CPU、複数の GPU を使用できる点もお勧めの理由です。

EC2 または Linux コマンドを初めて使用する場合は、クラウドでディープラーニング スクリプトを実行するときにこれらのコマンドが非常に効果的です。

この記事の主な内容は次のとおりです。

  1. ローカルマシンとEC2インスタンス間でデータをコピーする
  2. 毎日、毎週、毎月スクリプトを安全に実行する
  3. プロセス、システム、GPU のパフォーマンスを監視する

注: すべてのコマンドは Linux のような環境 (Linux、OS X、または Cygwin) で実行されます。

0. 環境協定

AWS EC2 が正常に動作していることを前提として、便宜上、環境を次のように設定します。

  1. EC2サーバーのIPアドレスは54.218.86.47です
  2. ユーザー名: ec2-user
  3. SSH キーは ~/.ssh/ にあり、ファイル名は aws-keypair.pem です。
  4. Python スクリプトの操作

ディープラーニングを実行するための GPU ベースの EC2 インスタンスを構築する方法については、以下を参照してください。

https://machinelearningmastery.com/develop-evaluate-large-deep-learning-models-keras-amazon-web-services/

1. サーバーにログインする

操作を行う前に、まず対象サーバーにログインする必要があります。単純に、SSH コマンドを使用します。 aws-keypair.pem などの意味のあるファイル名を使用して、SSH キーを ~/.ssh/ に保存します。次のコマンドを使用して EC2 ホストにログインし、アドレスとユーザー名に注意してください。

  1. ssh -i ~/.ssh/aws-keypair.pem ec2- [email protected]

2. ファイルをサーバーにコピーする

SCP コマンドを使用して、ローカル ファイルをサーバーにコピーします。たとえば、script.py ファイルを EC2 サーバーにコピーするコマンドは次のとおりです。

  1. scp -i ~/.ssh/aws-keypair.pem script.py ec2-ユーザー@54.218.86.47:~/

3. スクリプトをサーバーのバックグラウンドで実行する

サービスのバックグラウンドでスクリプトを実行し、進行中の他のシグナルを無視し、標準入力と出力を無視し、すべての出力とエラー情報をログ ファイルにリダイレクトします。これは、長時間実行する必要があるディープラーニング モデルにとって不可欠です。

  1. > nohup python /home/ec2- user /script.py >/home/ec2- user /script.py.log </dev/ null 2>&1 &

このコマンドでは、script.py と script.py.log は両方とも /home/ec2-user/ ディレクトリにあります。 nohup とリダイレクトの詳細については、他の詳細な説明 (Wikipedia など) を参照してください。

4. サーバーの指定されたGPUでスクリプトを実行する

EC2 がサポートしている場合は、複数のスクリプトを同時に実行することをお勧めします。たとえば、EC2 に 4 つの GPU がある場合、各 GPU で個別にスクリプトを実行できます。サンプル コードは次のとおりです。

  1. CUDA_VISIBLE_DEVICES=0 nohup python /home/ec2- user /script.py >/home/ec2- user /script.py.log </dev/ null 2>&1 &

GPU が 4 つある場合は、CUDA_VISIBLE_DEVICES を 0 から 3 まで指定できます。これは、TF をバックエンドとして Keras で実行できますが、Theano ではテストされていません。

CUDA_VISIBLE_DEVICES の詳細については、https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/ を参照してください。

5. スクリプト出力の監視

出力にプロジェクトのスコアやアルゴリズムの結果が含まれる場合は、スクリプトの出力をリアルタイムで監視するのが合理的です。次に例を示します。

  1. tail -f script.py.log

残念ながら、AWS はしばらく画面に出力がない場合にターミナルを閉じるので、以下を使用する方が適切です。

  1. 「tail script.py.log」を監視する 

Python の標準出力が表示されないことがあります。Python の問題なのか、EC2 の問題なのかはわかりません。

6. システムとプロセスのパフォーマンスを監視する

EC2 システムのパフォーマンス、特にメモリの使用量や残量を監視することは理にかなっています。例えば:

  1. トップ-M

または、プロセス ID PID を指定します。

  1. トップ-p PID -M

7. GPUパフォーマンスを監視する

GPU 上で複数のスクリプトを同時に並行して実行している場合は、各 GPU のパフォーマンスと使用率を確認することをお勧めします。例えば:

  1. 「nvidia-smi」を見る 

8. スクリプトがサーバー上でまだ実行されているかどうかを確認する

通常、ターミナルは常に開いたままにしておきます。

  1. 「ps -ef | grep python」を見る 

9. サーバー上のファイルを編集する

通常、vi に精通していない限り、サーバー上で直接変更することは推奨されません。

  1. vi ~/script.py

vi の使い方についてはここでは説明しません。

10. サーバーからファイルをダウンロードする

ファイルをアップロードするのではなく、png ファイルをダウンロードする例を次に示します。

  1. scp -i ~/.ssh/aws-keypair.pem ec2- user @54.218.86.47:~/*.png 。

注意すべき点

  • 複数のスクリプトを同時に実行したい場合は、複数の GPU を備えた EC2 を使用するのが最適です。
  • スクリプトはローカルで書くのがベスト
  • 実行結果をファイルに出力し、分析のためにローカルにダウンロードします。
  • ターミナルを実行し続けるにはwatchコマンドを使用します
  • リモートコマンドをローカルで実行する

<<:  ディープラーニングのこれらの落とし穴に遭遇したことがありますか?ニューラルネットワークのよくある落とし穴11選とその対処法

>>:  注目を浴びるAIとゲームは、どんな火花を散らすことができるのでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

...

実践的な知識 | 教師なし学習の基礎に関する包括的な理解

1. 教師なし学習教師なし学習の特徴は、モデルが学習するデータにラベルがないことです。そのため、教師...

大規模言語モデルと知識グラフに関する共同研究のレビュー:2つの相補的な技術的利点

大規模言語モデル (LLM) はすでに強力ですが、さらに強力になる可能性があります。 LLM は、ナ...

OpenAIがロボットチームを解散、創設者は「これまでで最高の決断」と語る

OpenAIの共同創設者であるヴォイチェフ・ザレンバ氏はポッドキャストで、OpenAIがロボット工学...

...

...

Truffleを使用してスマートコントラクトをデプロイする方法

[[397532]]この記事はWeChatの公開アカウント「ブロックチェーン研究室」から転載したもの...

Google Project Ellman が Gemini AI モデルのシナリオを公開

Googleチームは、AI技術を使ってユーザーの写真や検索エンジンのクエリ情報を処理し、ユーザーの生...

この記事では、テンセントが独自に開発した汎用大規模言語モデル「Hunyuan Large Model」を紹介します。

2023年9月7日午前、テンセントグローバルデジタルエコシステムカンファレンスで、テンセントグルー...

...

8日間の国慶節と中秋節の休日、ドローンが楽しい時間をお過ごしください

国慶節と中秋節が重なり、長い休暇を利用して旅行する気分が盛り上がっています。関連データによると、今年...

英国で新たな自動運転規制が導入され、ドライバーはもはや「集中」する必要がなくなった

自動運転は近年市場で最も活発なトピックの1つです。資金が継続的に流入し、大手企業が存在感を示そうと競...

インテリジェントオートメーション: コンピュータビジョン、AI、ARが統合されるとき

インテリジェント オートメーションは、業界がまだビジネスに統合していない、かなり新しい概念です。この...

AI 開発の方向性に関する大論争: ハイブリッド AI?強化学習?実践的な知識と常識をAIに統合する?

[[396127]]著者: Ben Dickson はソフトウェア エンジニアであり、テクノロジー...

検査業界は大きな変革期を迎えており、人工知能が次世代の検査をリードしている。

[[283895]]モバイルインターネットの隆盛時代を経て、中国のモバイルアプリケーションエコシス...