MacBookのグラフィックカードがAIモデルを実行できないのはもったいない:このディープラーニングツールはすべてのブランドのGPUをサポートしています

MacBookのグラフィックカードがAIモデルを実行できないのはもったいない:このディープラーニングツールはすべてのブランドのGPUをサポートしています

PlaidML と呼ばれるこのツールを使用すると、NVIDIA、AMD、または Intel のグラフィック カードに関係なく、ディープラーニングのトレーニングを簡単に実行できます。

[[315945]]

周知のとおり、ディープラーニングは2010年代のNVIDIAのGPUコンピューティング能力の向上により急速に発展しました。しかし、現在市場には多くのブランドのグラフィックカードがあり、それらも優れたパフォーマンスを備えています。後者はAIモデルのコンピューティング能力の基礎となることができるでしょうか?

[[315946]]

答えが「はい」であれば、私たちのラップトップ、特に多額のお金をかけて購入した MacBook Pro を使ってディープラーニング モデルを実行できます。

MacBookProはテクノロジー界隈で広く普及しており、品質も良いのですが、ディープラーニングには使えないのが残念です。 MacBookを購入する際、一部の人はディスクリートグラフィックカードに多額のお金をかけますが、ディープラーニングに関しては、お金が無駄になることに気づきます。なぜなら、長い間、ほとんどの機械学習モデルは、汎用GPUライブラリCUDAを通じてのみNVIDIAのGPUを使用できたからです。

しかし、本当に選択の余地はないのでしょうか? Medium のブロガーは、そうではないと述べています。 PlaidML と呼ばれるディープラーニング フレームワークがこのジレンマを解決できます。

並列コンピューティングに GPU を使用する理由は何ですか?

たとえば、家を建てる場合、一人でやる場合は 400 時間かかりますが、建築業者を雇えば、おそらくその時間を半分に短縮できます。雇う労働者の数が増えるほど、家は早く建ちます。これはアムダールの法則が明らかにしたものです。これは、並列コンピューティング後にプロセッサの効率を向上させる能力を表す、コンピュータ サイエンスにおける経験則です。

[[315948]]

では、なぜ GPU を使用するのでしょうか? GPU はもともとディープラーニング用に設計されたものではありませんが、並列コンピューティングの性質はグラフィックス処理に似ているようです。単一の GPU コアはパフォーマンスが劣りますが、高度な並列構造と多数のコアを備えているため、大規模なデータ ブロックのアルゴリズムを処理する場合、CPU よりも効率的です。グラフィックス処理とディープラーニングの本質的な類似性により、GPU はディープラーニングと並列コンピューティングの第一の選択肢となっています。

CUDA以外に選択肢はないのでしょうか?

しかし、GPU の並列機能を利用する場合、NVIDIA の CUDA は避けて通れません。この汎用並列コンピューティング ライブラリは、ディープラーニングには不可欠です。現在、高性能クラウド コンピューティングや DL サーバーが NVIDIA GPU を使用する主な理由は CUDA です。

ラップトップの並列機能を最大限に活用したいが、N カードを購入する余裕がない場合は、この記事で紹介した PlaidML が非常に適しています。

プロジェクトアドレス: https://github.com/plaidml/plaidml

PlaidML は、2017 年に Vertex.AI によってオープンソース化されたディープラーニング ツールキットです。 2018年にIntelはVertex.AIを買収した。 PlaidML 0.3.3 がリリースされた後、開発者は Keras を使用して、AMD および Intel GPU 上で並列ディープラーニング タスクを完了できるようになりました。先月、Vertex.AI は PlaidML のバージョン 0.7.0 をリリースしました。

PlaidML は、ラップトップ、組み込みデバイス、その他のデバイスでディープラーニングを可能にするポータブル テンソル コンパイラです。重要なのは、CUDA ではなく、オープン スタンダードの OpenCL に依存していることです。

OpenCL 汎用並列コンピューティング オープン スタンダードは、N カード専用に設計されていないため、AMD、Intel、NVIDIA のいずれであっても、ラップトップ GPU をサポートできます。

[[315949]]

多くの読者は、OpenCL エコシステムは CUDA ほど成熟しておらず、開発がそれほど安定して速くないのではないかと考えているかもしれません。ただし、複雑な基礎メカニズムは PlaidML に任せることができ、私たちはそれを使用するだけで済みます。

PlaidML に触れる必要すらありません。PlaidML は一般的なディープラーニング フレームワークに統合されており、ユーザーはどのハードウェアでも呼び出すことができます。現在、PlaidML は Keras、ONNX、nGraph などのツールをすでにサポートしています。Keras を直接使用してモデルを構築し、MacBook の GPU を簡単に使用できます。

さて、本題に入りましょう。ラップトップの GPU を使用してシンプルな CNN を実行する方法です。

ラップトップのGPUでニューラルネットワークを実行する

PlaidMLと関連コンポーネントをインストールして設定する

まず、ラップトップに Python 3 がインストールされていることを確認する必要があります。著者は、次のコードを仮想環境で実行することを推奨しています。

  1. #まだインストールしていない場合はpython3 virtualenv をインストールします
  2. pip3 仮想環境をインストールする
  3.   
  4. # ケース仮想環境を作成してアクティブ化します  
  5. python3 -m venv プレイドml-venv
  6. ソース plaidml-venv/bin/activate
  7.   
  8. # KerasでPlaidMLをインストールする
  9. pip インストール -U plaidml-keras

標準の TensorFlow フレームワークの Keras では PlaidML を使用できないため、PlaidML でカスタマイズされた Keras をインストールする必要があることに注意してください。

  1. # 適切なデバイスを使用するためにPlaidMLを設定します
  2. plaidml セットアップ

PlaidML の設定手順 2。

これで、選択したデバイスのリストが表示されます。著者のコンピューター Macbook Pro 15'2018 を例にとると、デバイス リストは次のようになります。

  • CPU
  • インテルUHDグラフィックス630
  • AMD Radeon Pro 560x グラフィック カード

最後に、「y」または「nothing」と入力して戻り、設定を保存します。これですべてがインストールされ、GPU を使用してディープラーニング プロジェクトを実行できるようになりました。

ファッション mnist で CNN 分類器を作成する

まず、Jupyter Notebook を起動します。

  1. ジュピターノートブック

次に、Keras バックエンドとして PlaidML を使用するために次のコードを実行します。それ以外の場合は、デフォルトで TensorFlow が使用されます。

  1. # PlaidMLをインポートしています。必ずこの順序に従ってください
  2. plaidml.kerasをインポートする
  3. plaidml.keras.install_backend()
  4. インポートOS
  5. os.environ[ "KERAS_BACKEND" ] = "plaidml.keras.backend"  

これで、パッケージをインポートしてファッション データセットをダウンロードできます。

  1. kerasをインポートする
  2. keras.modelsからSequentialをインポートする
  3. keras.layers からDense、Dropout、Flatten をインポートします
  4. keras.layers からConv2D、MaxPooling2Dをインポートします
  5. kerasからバックエンドをKとしてインポートします
  6.  
  7. # Kerasからファッションデータセットをダウンロードする
  8. ファッション_mnist = keras.datasets.fashion_mnist
  9. (x_train, y_train)、(x_test, y_test) = keras.datasets.fashion_mnist.load_data()
  10.  
  11. # データを再形成して正規化する
  12. x_train = x_train.astype( 'float32' ).reshape( 60000 , 28 , 28 , 1 ) / 255  
  13. x_test = x_test.astype( 'float32' ).reshape( 10000 , 28 , 28 , 1 ) / 255  

次に、Keras のシーケンシャル モジュールを使用して、単純な CNN を作成し、コンパイルします。

  1. # CNN モデルを構築します。このチャンクを実行すると、 「INFO:plaidml:Opening device xxx」と表示されます。
  2. モデル = keras.Sequential()
  3. model.add ( keras.layers.Conv2D (フィルター= 64 、カーネルサイズ= 2 、パディング= 'same' 、アクティベーション= ' relu' 、入力シェイプ=( 28、28、1 ) ))
  4. モデルを追加します(keras.layers.MaxPooling2D(pool_size= 2 ))
  5. モデルを追加します(keras.layers.Dropout( 0.3 ))
  6. model.add(keras.layers.Conv2D(フィルター= 32 、カーネルサイズ= 2 、パディング= 'same' 、アクティベーション= 'relu' ))
  7. モデルを追加します(keras.layers.MaxPooling2D(pool_size= 2 ))
  8. モデルを追加します(keras.layers.Dropout( 0.3 ))
  9. モデルを追加します(keras.layers.Flatten())
  10. モデルを追加します(keras.layers.Dense( 256 , activation= 'relu' ))
  11. モデルを追加します(keras.layers.Dropout( 0.5 ))
  12. モデルを追加します(keras.layers.Dense( 10 , activation= 'softmax' ))
  13.  
  14. # モデルをコンパイルする
  15. model.compile(optimizer= 'adam' ,
  16. 損失=keras.losses.sparse_categorical_crossentropy、
  17. メトリック=[ '精度' ])

次に、モデルを適合させてその精度をテストします。

  1. # トレーニングセットにモデルを適合させる
  2. モデル.fit(x_train, y_train,
  3. バッチサイズ = 64
  4. エポック = 10 )
  5.  
  6. # テストセットでモデルを評価する
  7. スコア = model.evaluate(x_test, y_test, 詳細 = 0 )
  8. # 印刷テストの精度
  9. print( '\n' , 'テスト精度:' , score[ 1 ])

その他の結果。

私たちがトレーニングした畳み込みニューラル ネットワーク モデルは、ファッション分類タスクで 91% の精度を達成し、トレーニングにはわずか 2 分しかかかりませんでした。この数字はそれほど印象的ではないかもしれませんが、CPU のトレーニングにかかる​​時間を考慮してください。

CPUを使用して同じタスクを完了するには2219秒(約37分)かかり、この間Macのファンは狂ったように出力します。

上記の結論から、Macbook Pro の GPU を使用したディープラーニング計算は、単純に CPU を使用する場合よりも 15 倍高速であることがわかります。 PlaidML を使用すると、自分のラップトップを使用してディープラーニング モデルをトレーニングすることがさらに簡単になります。

現在(2020 年 2 月)の時点で、PlaidML はさまざまなブランドの GPU と互換性があり、CUDA/cuDNN なしで NVIDIA グラフィック カードを使用した場合でも同様のパフォーマンスを実現できます。

PlaidML の GitHub ページで、さらに多くのデモや関連プロジェクトを見ることができます。このツールが開発され続けるにつれて、より多くのアルゴリズムがサポートされるようになると思います。ラップトップで小さなモデルを素早くテストすることもできます。

<<:  過剰に防御的?モスクワのバス運転手は中国人乗客の身元を手動で確認し、顔認識システムの使用も許可されている。

>>:  機械学習に必要なエンジニアリングの量は将来大幅に削減されるだろう

ブログ    
ブログ    
ブログ    

推薦する

人工知能の力:デジタル創造性から金融技術まで、知能は新たな機会をもたらす

人工知能、モノのインターネット、産業インターネットなどがもたらすインテリジェント化の波は、技術発展の...

...

将来的には配送車両の80%が自動運転技術を使用する

[[251814]]フォード、トヨタ、グーグル、アップルなどの大企業が自動運転車に投資していることは...

シアトル港が機械学習を活用して航空貨物業務を効率化する方法

シアトル港は100年以上の歴史がありますが、非常に新しい技術を導入しています。シアトル港とシアトル・...

AIが労働力に与える影響について考えられる3つのシナリオ

「生成AIは、農業革命と産業革命以来、労働力に最も大きな変化をもたらす可能性があります。」まあ、あま...

AIが医療業界に参入すると、人間は看護師の仕事を失うのでしょうか?

AIに取って代わられにくい、人間の「鉄の飯碗」を探し続けていきましょう。医療業界では、AI と自動...

小型モデルの意見も参考になります! GPT-4+AutoGPTオンライン意思決定:物を買うときにもう心配はいりません

この論文では、現実世界の意思決定タスクにおける Auto-GPT エージェントの包括的なベンチマーク...

予測によると、人工知能市場は急速に成長し続けるだろう

スペイン紙エル・ムンドのウェブサイトが2月20日に報じたところによると、ソフトウェア、ハードウェア、...

...

4Kウィンドウの長さで長いテキストを読むことができ、陳丹奇の弟子がMetaと提携して、大規模なモデルでメモリを強化する新しい方法を立ち上げました

ウィンドウの長さが 4k でも、大きなモデルで大きなテキストを読み取ることができます。プリンストン大...

拡散+超解像モデルの強力な組み合わせ、Googleの画像ジェネレーターImagenの背後にある技術

近年、マルチモーダル学習は、特にテキストと画像の合成や画像とテキストの対照学習の分野で大きな注目を集...

...

...

生成 AI は通信業界を救うことができるか?

MWC 2024カンファレンスで、Nvidiaは、ARM、ServiceNow、SoftBankと...