30分で独自のディープラーニングサーバーを作成する

30分で独自のディープラーニングサーバーを作成する

新しいプロジェクトを始めるたびに、私はディープラーニング マシンを何度も何度も作成していることに気づきます。

[[338887]]

まず Anaconda をインストールし、Pytorch と Tensorflow が互いに干渉しないように、それぞれに異なる環境を作成します。そして、途中で必ず失敗してしまい、最初からやり直さなければならなくなります。これは何度も起こることがよくあります。

これは時間の大きな無駄であるだけでなく、イライラさせられます。 Stack Overflow のすべてのスレッドを見ると、いったい何が間違っていたのかと疑問に思うことがよくあります。

では、これをより効率的に行う方法はあるのでしょうか?

このブログでは、より重要なことに集中できるように、最小限の労力で EC2 上にディープラーニング サーバーをセットアップしてみたいと思います。

このブログは、明確に 2 つの部分から構成されています。

  • ディープラーニングライブラリがプリインストールされた Amazon EC2 マシンをセットアップします。
  • TMUX と SSH トンネリングを使用して Jupyter ノートブックをセットアップします。

心配しないでください。思ったほど難しくはありません。手順に従って「次へ」をクリックしてください。

Amazon EC2 マシンのセットアップ

AWS アカウントをお持ちで、AWS コンソールにアクセスできることを前提としています。そうでない場合は、Amazon AWS アカウントにサインアップする必要があります。

  • AWS コンソール: https://aws.amazon.com/console/
  • まず、EC2 ダッシュボードにアクセスするには、[サービス] タブに移動する必要があります。

EC2 ダッシュボードでは、インスタンスの作成から始めることができます。

Amazon は、ディープラーニング ソフトウェアがプリインストールされたコミュニティ AMI (Amazon マシンイメージ) を提供しています。これらの AMI にアクセスするには、コミュニティ AMI を調べて、検索タブで「Ubuntu Deep Learning」を検索する必要があります。他の Linux フレーバーを選択することもできますが、私のディープラーニングのニーズには Ubuntu が最も役立つことがわかりました。現在のセットアップでは、Deep Learning AMI(Ubuntu 18.04)バージョン27.0を使用します。

AMI を選択したら、インスタンス タイプを選択できます。ここで、システムに必要な CPU、メモリ、GPU の数を指定できます。 Amazon では、お客様の個々のニーズに応じて選択できるオプションを多数提供しています。 「フィルター条件」フィルターを使用して GPU インスタンスをフィルターできます。 このチュートリアルでは、2,496 個の並列処理コアと 12 GiB の GPU メモリを備えた NVIDIA K80 GPU を提供する p2.xlarge インスタンスを使用しました。さまざまなインスタンス タイプについて詳しくは、以下のリンクにあるドキュメントを参照して価格を確認してください。 ドキュメントを見る: https://aws.amazon.com/ec2/instance-types/ 価格: https://aws.amazon.com/emr/pricing/

手順 4 でマシンに接続されているストレージを変更できます。事前にストレージを追加しなくても、後から追加できるので問題ありません。ほとんどのディープラーニングのニーズには十分なストレージ容量が必要なため、ストレージ容量を 90 GB から 500 GB に変更しました。

これで完了です。インスタンス設定の最終確認画面に到達したら、インスタンスを起動できます。 「起動」をクリックすると、この画面が表示されます。 「キーペア名」に任意のキー名を入力し、「キーペアのダウンロード」をクリックするだけです。指定した名前でキーがコンピューターにダウンロードされます。私の場合は「aws_key.pem」として保存されました。完了したら、「インスタンスの起動」をクリックしてインスタンスを起動できます。

このキー ペアはインスタンスにログインするときに必要になるため、安全に保管してください。

次のページで「インスタンスの表示」をクリックすると、インスタンスを表示できます。インスタンスは次のようになります。

インスタンスに接続するには、ローカル コンピューターでターミナル ウィンドウを開き、キー ペア ファイルを保存したフォルダーを参照して、いくつかの権限を変更します。

  1. chmod 400 aws_key.pem

これが完了すると、SSH 経由でインスタンスに接続できるようになります。 SSH コマンドの形式は次のとおりです。

  1. ssh -i "aws_key.pem" ubuntu@<yourPublicDNS(IPv4)>

私の場合のコマンドは次の通りです:

  1. ssh -i "aws_key.pem" [email protected]

また、インスタンスをシャットダウンするとパブリック DNS が変更される可能性があることに注意してください。

マシンの準備が完了し、準備完了です。このユニットには、必要となる可能性のあるさまざまなライブラリを備えたさまざまな環境が含まれています。このマシンには、MXNet、Tensorflow、Pytorch と、さまざまなバージョンの Python が搭載されています。最も優れている点は、これらすべての機能がプリインストールされているため、箱から出してすぐに使用できることです。

Jupyter Notebookの設定

ただし、コンピューターを完全に使用するために、使用する必要があるものがいくつかあります。その1つがJupyter Notebookです。コンピューターに Jupyter Notebook をセットアップするには、TMUX とトンネリングを使用することをお勧めします。 Jupyter Notebook をセットアップする手順を見ていきましょう。

TMUX で Jupyter Notebook を実行する まず、TMUX を使用してインスタンス上で Jupyter Notebook を実行します。これを主に使用するのは、端末接続が失われた場合でもラップトップが機能し続けるようにするためです。

これを行うには、次のコマンドを使用して新しい TMUX セッションを作成する必要があります。

  1. tmux 新規 -s ストリームセッション

完了すると、下部に緑色の枠線が付いた新しい画面が表示されます。 jupyter notebook コマンドを使用して、このコンピューターで Jupyter Notebook を起動できます。次のような画面が表示されます。

ログイン URL をコピーしておくと、後で Jupyter Notebook にログインするときにトークンを取得できるようになります。私の場合は次のとおりでした:

  1. http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

次のステップは、ssh シェルを終了してもバックグラウンドで実行を継続できるように、TMUX セッションをデタッチすることです。これを行うには、Ctrl + B を押してから D を押します (D を押すときに Ctrl キーを押したままにしないでください)。すると、tmux セッションから切断されたことを示すメッセージが表示された初期画面に戻ります。

必要に応じて、次の方法でセッションに再接続できます。

  1. tmux アタッチ -t ストリームセッション

ローカルブラウザでノートブックにアクセスするためのSSHトンネル

2 番目のステップは、Amazon インスタンスに SSH 接続して、ローカル ブラウザーで Jupyter ノートブックを取得することです。ご覧のとおり、Jupyter ノートブックは実際にはクラウド インスタンスのローカル ホスト上で実行されています。どうやってアクセスするのでしょうか? SSH トンネリングを使用します。心配しないでください、簡単です。ローカルマシンのターミナルウィンドウで次のコマンドを使用します。

  1. ssh -i "aws_key.pem" -L <ローカルマシンのポート>:localhost:8888 ubuntu@<パブリックDNS (IPv4)>

この場合、私は以下を使用しました:

  1. ssh -i "aws_key.pem" -L 8001:localhost:8888 [email protected]

つまり、ローカルマシンのブラウザで localhost:8001 を開くと、Jupyter Notebook を使用できるということです。もちろんできますよ。これで、前の手順のいずれかで保存したトークンを入力するだけで、ノートブックにアクセスできるようになります。私の場合、トークンは5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872です

  • トークン: http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872&token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

トークンを使用してログインするだけです。

これで、必要なさまざまな環境を選択して、新しいプロジェクトを選択できるようになりました。 Tensorflow または PyTorch、あるいはその両方から始めることができます。このノートブックはあなたを失望させません。

トラブルシューティング

コンピュータを再起動した後、NVIDIA グラフィック カードに問題が発生する場合があります。具体的には、私の場合、nvidia-smi コマンドが機能しなくなりました。この問題が発生した場合の解決策は、NVIDIA Web サイトからグラフィック ドライバーをダウンロードすることです。

  • NVIDIA ウェブサイト: https://www.nvidia.in/Download/index.aspx?lang=en-in

上記は私が選択した特定の AMI の設定です。 「検索」をクリックすると、次のページが表示されます。

右クリックしてリンク アドレスをコピーするだけで、ダウンロード リンクをコピーできます。そして、コンピューター上で次のコマンドを実行します。リンクアドレスとファイル名を変更する必要がある場合があります。

  1. # nvidia-smi が動作しない場合:
  2.  
  3. wget https://www.nvidia. in /content/DriverDownload-March2009/confirmation.php?url=/tesla/410.129/NVIDIA-Linux-x86_64-410.129-diagnostic.run&lang= in &type=Tesla
  4.  
  5. sudo sh NVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms --silent --install-libglvnd  
  6.  
  7. modinfo nvidia | ヘッド -7
  8.  
  9. sudo modprobe nvidia

インスタンスを停止する

それでおしまい。ディープラーニングマシンが稼働しており、自由に使用できます。作業を停止するときは必ずインスタンスを停止し、インスタンスで作業していないときに Amazon に料金を支払わないように注意してください。これは、インスタンスを右クリックしてインスタンス ページで実行できます。このマシンに再度ログインする必要がある場合、パブリック DNS (IPv4) アドレスが変更されている可能性があるため、インスタンス ページからパブリック DNS (IPv4) アドレスを再度取得する必要がある場合があります。

結論は

ディープラーニング環境の構築は非常に面倒だといつも思っていました。

このブログでは、Deep Learning Community AMI、TMUX、Jupyter Notebook のトンネリングを使用して、EC2 上に新しいディープラーニング サーバーを最短時間でセットアップしました。サーバーには、作業に必要なすべてのディープラーニング ライブラリがプリインストールされており、すぐに使用できます。

では、何を待っていますか? 独自のサーバーでディープラーニングを使い始めましょう。

<<:  Microsoft Flight SimulatorはAIを使って15億の建物を復元、宮殿がオフィスビルに変わる際にバグが発生

>>:  烏鎮百度脳オープンデーが開催、EasyDL業界インテリジェンスイノベーションコンペティションを開始

推薦する

今後 3 ~ 5 年で、機械学習のどの分野の人材が最も不足するでしょうか?

[[205598]]すでにこの業界にいる私としては、今後数年間で業界にどのような機械学習の才能が必...

...

人工知能が高等教育を支援する:変化と持続

[[434825]]人工知能が教育に浸透する中で、我々は「静をもって動を制御する」という決意を持ち、...

Ruijie NetworksとMidea Smartは戦略的提携を結び、スマート小売端末の商業化と普及に取り組んでいます。

6月30日、瑞傑ネットワークス株式会社(以下、瑞傑ネットワークス)と合肥美的智能科技有限公司(以下...

機械学習、ディープラーニング、強化学習の関係と違いは何ですか?

これには、機械学習のサブフィールドの分類が含まれます。すべての分類において、最初に尋ねるべき質問は、...

都市は AI 導入をどのように進めているのでしょうか?

AIはどのように機能し、スマートシティ開発の次のステップとして、都市や公共スペースにAIを導入でき...

コンピュータビジョンが日常生活をどう改善するか

機械学習の力を活用して日常のさまざまなタスクを処理するテクノロジーである人工知能は、すでに私たちの仕...

マイクロソフトの新特許公開:機械学習で「赤面」するリアルなアバターを作成

11月16日、現地時間の火曜日、米国特許商標庁のウェブサイトでマイクロソフトの新しい特許が公開された...

ソフトウェア開発プロセスの近代化における生成AIの役割

近年、ソフトウェア エンジニアリングでは、自動化の強化と開発プロセスの合理化に向けて大きな変化が見ら...

解読: ボストン ダイナミクスがアルゴリズムを使用してアトラス ロボットの感覚世界を構築する方法

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

AI は従業員トレーニングにどのような革命をもたらすのでしょうか?

[[395608]]スキルギャップを埋めるプレッシャーの下、多くの組織が人工知能テクノロジーを導入...

Java プログラミング スキル - データ構造とアルゴリズム「循環リンク リストとジョセフ問題」

[[386837]]ジョセフ問題1、2、...n と番号が付けられた n 人が輪になって座り、番号...

ビジネスにおける人工知能の主な応用

[[412393]]人工知能を受け入れ、導入する企業が増えており、人工知能の応用が加速する兆しが見え...

AIのヒット曲:主人公はプログラマー、作曲家は気を散らされている

米国の著作権法では「人間」という言葉はほとんど使われておらず、この問題を扱った訴訟は歴史上ほとんど起...

...