5分で強力で使いやすいディープラーニング環境を構築

5分で強力で使いやすいディープラーニング環境を構築

ディープラーニング プロジェクトに適した環境を構築するのは簡単な作業ではありません。処理すべきことはたくさんあります。ライブラリは特定のバージョンと一致する必要があり、環境全体を他のマシンに複製でき、すべてがマシン内のすべてのドライバーと通信できる必要があります。つまり、NVIDIA GPU 用の特定のドライバーをインストールする必要があり、CUDA ライブラリはドライバーおよび使用するフレームワークと互換性がある必要があります。

[[385488]]

コンテナはソフトウェア開発の世界に革命をもたらしましたが、今ではデータ サイエンティストがより堅牢な環境を構築するのにも役立ちます。

一つ確かなことは、データ サイエンスはソフトウェア開発の世界から学ぶべきことがあるということです。

NVIDIA NGC は、AI を本番環境でトレーニングおよび展開するための GPU に最適化されたフレームワーク、事前トレーニング済みモデル、ツールキットを提供するソフトウェア ハブです。これは、モデルのトレーニングに必要なすべてのツールを備えたコンテナ レジストリです。caffee2、Pytorch、Tensorflow、Keras、Julia など、どのツールを使用するかは関係ありません。

NGC カタログには、生産に使用できるコンテナが多数用意されています。使用するコンテナを選択するだけです。

Nvidia NGC はコンテナ レジストリであるだけでなく、組織がモデルを本番環境に導入するのに役立つ多くの組み込み機能を備えています。

ゼロから始める

まず、GPU を搭載した Linux マシンから始めましょう (GPU は必須ではありませんが、モデルをトレーニングする場合は強くお勧めします)。この機能を Ubuntu 20.04 LTS と 18.04 LTS でテストしましたが、他の Linux ディストリビューションにも簡単に適応できます。

私たちは何をする必要がありますか?

手順は簡単で、NVIDIA ドライバーと Docker をインストールするだけです。次に、必要な Docker イメージをダウンロードして作業を開始します。

ステップ1: Ubuntu 20.04にNVIDIAドライバーをインストールする

注意: 別の Ubuntu バージョンを使用している場合は、それに応じてスクリプトを変更してください。また、セキュア ブートが有効になっている場合、この方法は機能しません。

  1. sudo apt install linux-headers-$(uname -r)
  2. curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
  3. sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
  4. sudo apt- key adv- fetch -keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub を実行します。
  5. sudo add -apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"  
  6. sudo aptアップデート 
  7. sudo apt -y cudaをインストールします

nvidia-smi コマンドを使用してインストールを確認します。次のような画面が表示されます。

ステップ2: Ubuntu 20.04にDockerをインストールする

  1. #!/bin/sh
  2. #リポジトリを設定する
  3. sudo apt-getアップデート 
  4. sudo apt-get install -y \
  5. apt-transport-https \
  6. ca証明書\
  7. カール\
  8. gnupgエージェント\
  9. ソフトウェアプロパティ共通
  10. # Dockerの公式GPGキーを追加します:
  11. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-キー 追加-
  12. #安定リポジトリをセットアップする
  13. sudo -apt-リポジトリを追加します\
  14. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  15. $(lsb_release -cs) \
  16. 安定した"
  17. sudo apt-getアップデート 
  18. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  19. # ubuntuをユーザー名置き換えてください
  20. sudo usermod -aG docker ubuntu

注意: sudo 権限なしで docker コマンドを使用するには、ログアウトして再度ログインする必要があります。

ステップ3: DockerがNVIDIAドライバーと通信できるようにする

  1. curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  2. sudo apt-キー 追加-
  3. curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
  4. sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  5. sudo aptアップデート 
  6. sudo apt-get install -y docker nvidia-container-toolkit

ここで、Docker が NVIDIA ドライバーと通信できるかどうかをテストします。これを行うには、次のコマンドを実行するだけで、手順 1 と同様の結果が表示されます。

  1. sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi  

注: さまざまなクラウド ホスティング プロバイダーを試しましたが、OS、VM タイプ、GPU によっては、この時点で再起動が必要になる場合があります。したがって、エラーが発生した場合は、sudo reboot を試して、上記のコマンドを再度実行してください。すべてが正常であれば、nvidia-smi の結果が表示されます。

ステップ 4: イメージを取得して実行してみましょう。

  1. #NGC Tensorflow 2 イメージをダウンロード
  2. docker pull nvcr.io/nvidia/tensorflow:20.12-tf2-py3
  3. #コンテナ内の/container_dirマウントされる local_dir フォルダを作成します
  4. mkdir /home/ubuntu/local_dir
  5. docker run --gpus all --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -it --rm -v /home/ubuntu/local_dir:/container_dir nvcr.io/nvidia/tensorflow:20.10-tf2-py3  

注: オペレーティング システムが Docker コンテナーに割り当てられたリソースを制限するのを回避するには、フラグ - shm-size=1g - ulimit memlock=-1 - ulimit stack=67108864 が必要です。

コンテナ内に入りましたので、すべてが動作しているかどうか確認してみましょう。

画像からわかるように、GPU は利用可能であり、TensorFlow はそれを使用できます。

最後に: docker環境にアクセスする

マシンから切断すると、コンテナ内にいないことに気付くでしょう。

再度接続するには、docker ps を使用して実行中のコンテナの container_ id を見つけて、次の操作を行う必要があります。

  1. docker exec -it <コンテナID> /bin/bash

最終まとめ

このチュートリアルでは、NVIDIA NGC のイメージを使用して、すべてのライブラリとツールを備えた本番環境対応環境を簡単に作成できることを学びました。

NVIDIA ドライバーおよび必要なフレームワークと通信するように Docker を構成するのがいかに簡単かを確認しました。

これをすべて 5 分で完了しました。

<<:  手紙を開かずに読むことはできますか? MITのX線技術がネイチャー誌に掲載される

>>:  女性が30時間以上浴室に閉じ込められた。この危機的状況でAIは彼女を危険から救うことができるのか?

ブログ    
ブログ    

推薦する

大規模ウェブサイトのアルゴリズムとアーキテクチャについての簡単な説明(パート 2)

順序前回の記事「大規模 Web サイトのアルゴリズムとアーキテクチャに関する簡単な説明 (パート 1...

...

ハイエナが次世代トランスフォーマーになる? StripedHyena-7B オープンソース: 最大 128k の入力、トレーニング速度が 50% 向上

近年発表されたAIモデル、例えば言語、視覚、音声、生物学など各分野の大規模モデルは、Transfor...

BI ツールはデータ駆動型の文化を創造するのに十分でしょうか?

[[330768]] 【51CTO.com クイック翻訳】世界中でデータの爆発的な増加がしばらく続...

...

音楽駆動型デジタルヒューマン技術の詳細な説明

1. ミュージックXRメーカーMusic XR Makerは、テンセントミュージック初のオーディオお...

...

...

ガートナー:バブルにもかかわらず、中国企業は依然としてビッグモデルと生成AIに最も関心を持っている

データ分析と人工知能は現在、世界のどの地域でも最も話題になっている技術です。特に昨年のジェネレーティ...

AI エージェントに協力と競争を教えましょう。最初の大規模マルチエージェントフレームワークであるCAMELは3.6kのスターを獲得しました

「どんな魔法が私たちを賢くするのでしょうか?魔法は魔法がないことです。知性の力は、単一の完璧な原理か...

Microsoft が大規模コード モデル WaveCoder をリリースしました。 4つのコードタスクと20,000のインスタンスデータセットにより、LLMの一般化能力が大幅に向上しました。

高品質のデータ セットを使用して命令のチューニングを実行すると、大規模なモデルのパフォーマンスを迅速...

AIシステムのセキュリティテストのための自動化ツール

高度なサイバー攻撃が増加していることから、サイバーセキュリティは今日マイクロソフトにとって最優先事項...

資本の饗宴は続く:2021年上半期の生体認証分野における資金調達のレビュー

近年、5Gが話題になっていますが、AIはまだ時代遅れになっていません。特に、インターネットが普及し、...

...