【2021】機械学習でのGPUの使い方は?活用方法と必要な環境

  • このエントリーをはてなブックマークに追加

機械学習は人工知能(AI)の運用に不可欠な取り組みであるとして、今や多くの研究機関や企業で運用が進められています。近年のハードウェアの進化に伴い、近未来のハイテクと思われていたAI活用や機械学習は、自宅でも実施できるようになってきました。

今回は、そんな機械学習をGPUで実施するための使い方について紹介します。

機械学習にGPUを活用するメリット

機械学習にGPUを活用するメリット

GPUの活用は、最先端のAI開発においても盛んに行われています。その理由としては、以下の2つが挙げられます。

並列処理が得意なGPUのリソースを有効活用できる

一つ目の理由は、GPUの並列処理能力にあります。これまで、コンピューターの計算処理の大半を担ってきたのはCPUと呼ばれる部分で、これは従来だとAIにも必須のプロセッサユニットでした。

一方のGPUはグラフィック処理に特化したプロセッサで、同パターンの計算処理を一度にまとめて実行できる並列処理が可能です。これはグラフィックの描写において、並列的な処理が大量に発生するからですが、実は機械学習においても同様のプロセスが発生しています。

そのため、GPUの高い並列処理能力は、効率的な機械学習においても応用可能なことが証明されています。

ディープラーニングにも対応している

GPUの高い処理能力は、ディープラーニングにおいても通用します。

ディープラーニングは深層学習とも呼ばれ、機械学習をより複雑な形で実行するものです。そのため、ディープラーニングの実施にはこれまで以上に大きなリソースを必要としますが、GPUであればこの負担を軽減しながら実行可能です。

GPUを採用した機械学習環境に馴染んでおけば、ディープラーニング運用でも効果を発揮します。

機械学習をGPUで行う際に必要なもの

機械学習をGPUで行う際に必要なもの

機械学習をGPUで実施するためには、どのような環境を整える必要があるのでしょうか。ここでは、Qiitaに投稿されている環境を例に確認していきましょう。

Windows

まずOSですが、今回はWindowsを利用しています。Mac OSでももちろん機械学習は実施可能ですが、アプリやフレームワークの互換性については環境ごとに制約があるため、ここではWindows対応の実装環境を紹介します。

Python

Pythonは現在最もポピュラーなプログラミング言語の一つで、AI研究の最先端でも採用されています。運用難易度も高くなく、初心者にも扱いやすい言語です。

Anaconda

AnacondaはPythonユーザーに向けて配布されているディストリビューションで、データサイエンスの実践や、機械学習を実行するために活用されています。

実装に必要なライブラリを一つずつインストールするのは手間ですが、Anacondaのインストールで丸ごと対処できます。

GPU(NVIDIA)

GPUにもいくつかの種類がありますが、今回はNVIDIA製のものを採用しています。NVIDIA製GPUはAI開発に特化したパフォーマンスを発揮するものがあるだけでなく、NVIDIA製でなければ互換性のないサービスなどもあるためです。

Tensorflow

TensorflowはGoogleが提供している無料の機械学習向けソフトウェアライブラリです。誰でも自由に利用できることから、個人での機械学習においても多用されるなど、登場機会の多いサービスといえます。

Visual Studio Code(VS Code)

Visual Studio Codeは、あらゆる言語に対応しているポピュラーなコードエディターです。機械学習に限らず幅広いプロジェクトで運用されているため、汎用性の高さが魅力です。

ChainerRL

ChainerRLは、深層強化学習、つまりディープラーニングに活躍するライブラリです。深層強化学習の実装にはアルゴリズムの構築が必要ですが、こちらのライブラリをインストールすることで、簡単にディープラーニングを実行できるようになります。

CUDA

CUDAは半導体メーカーのNVIDIAが自社GPU向けに開発しているソフトウェアの実行環境です。GPUを使った並列計算を実行するために必要な環境で、機械学習においても効果を発揮します。

cuDNN

cuDNNはNVIDIAが提供している、ディープラーニングを実行するためのライブラリです。cuDNNの利用によって、ディープラーニングソフトの性能向上が期待できるため、導入して損はありません。

参照元:Qiita(@pocokhc)「機械学習用の環境を0から構築した

機械学習におけるGPUの使い方

機械学習におけるGPUの使い方

ここからは、機械学習をGPUで実施するための使い方について詳しく解説します。

実行環境を作成する

まずは、実行環境の作成です。Anaconda Navigater を起動し、左のメニューから Environments を選択します。

そして、Createを選び、設定値のPackage は python 3.7を選択します。

Createをクリックすると環境ができあがるので、Open Terminalを選べばTerminalが起動します。

TensorFlowを確認する

GPU運用向けのTensorFlowのインストールには、以下のコマンドを入力します。

pip install tensorflow-gpu

起動したTerminalで以下を入力すると、適切に動作しているか確認できます。

> python -c "import tensorflow as tf; print(tf.__version__)"

GPUデバイスを確認する

GPUデバイスの確認には、以下のコマンドを入力します。

> python
>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()

実行の結果に、以下が表示されていれば成功です。

 name: "/device:GPU:0"
device_type: "GPU" 

Anaconda と VSCode を連携する

続いては、AnacondaとVSCodeの連携です。まず作業用のフォルダを作成し、VSCodeから作業用フォルダを指定します。

作業用フォルダの中にpythonファイルを作成した後は、VSCodeで展開します。「メニュー」から「デバッグ」を選び、「構成の追加」から「Python file」を選びます。launch.jsonが展開されるので、こちらをエディットしていきます。

pythonのパス確認のため、Anacondaを開いて、以下のコマンドを実行します。

conda info -e

実行したのち、launch.json"pythonPath"を以下のように加えます。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "pythonPath": "C:\\Users\\poco\\Anaconda3\\envs\\new-file\\python.exe"
        }
    ]
}

ChainerRLを活用する

ChainerRLを活用するためには、Anaconda の Terminal からインストールを実行します。以下のコマンドを入力します。

> pip install chainerrl
> pip install cupy-cuda100 //運用しているCUDAのバージョンに合わせて数字は変更する

これで運用環境は整備完了です。

機械学習でGPUを使う上での注意点

機械学習でGPUを使う上での注意点

実際に機械学習でGPUの運用を進めていく上では、以下の2点に注意しておく必要があるでしょう。

NVIDIA製GPUを選ぶ

上記でも触れましたが、今回紹介している方法の場合、NVIDIA製のGPUが必要になります。CUDAやcuDNNの利用はNVIDIA製のGPUを意図したものなので、それ以外の製品では動作しない可能性があるためです。

既存のPCにNVIDIA製のGPUが導入されていない場合は、新たにGPUを実装しなければなりません。

必要スペックは目的によって異なる

2つ目のポイントが、スペックの問題です。機械学習は家庭用のパソコンで気軽に行えますが、あくまでも個人研究や趣味のレベルにとどまるので、本格的な研究やAI開発には向いていません。

ビジネスでも通用するAIを開発する場合、まずは膨大なGPUリソースを確保しなければなりません。クラウドGPUを実装するなど、処理能力の確保に努めましょう。

まとめ

今回は、実際に機械学習をGPUで行うためには、どのような手順と準備が必要なのかについて紹介しました。

すでに無料で利用できるオープンソースのサービスやライブラリは豊富に登場しているため、運用環境次第で自由に機械学習を実現可能です。趣味程度のAIであれば、自宅のPCでも十分に開発できるため、一度実装を進めてみても良いかもしれません。

  • このエントリーをはてなブックマークに追加