
機械学習は人工知能(AI)の運用に不可欠な取り組みであるとして、今や多くの研究機関や企業で運用が進められています。近年のハードウェアの進化に伴い、近未来のハイテクと思われていたAI活用や機械学習は、自宅でも実施できるようになってきました。
今回は、そんな機械学習をGPUで実施するための使い方について紹介します。
機械学習にGPUを活用するメリット
GPUの活用は、最先端のAI開発においても盛んに行われています。その理由としては、以下の2つが挙げられます。
並列処理が得意なGPUのリソースを有効活用できる
一つ目の理由は、GPUの並列処理能力にあります。これまで、コンピューターの計算処理の大半を担ってきたのはCPUと呼ばれる部分で、これは従来だとAIにも必須のプロセッサユニットでした。
一方の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で実施するための使い方について詳しく解説します。
実行環境を作成する
まずは、実行環境の作成です。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の運用を進めていく上では、以下の2点に注意しておく必要があるでしょう。
NVIDIA製GPUを選ぶ
上記でも触れましたが、今回紹介している方法の場合、NVIDIA製のGPUが必要になります。CUDAやcuDNNの利用はNVIDIA製のGPUを意図したものなので、それ以外の製品では動作しない可能性があるためです。
既存のPCにNVIDIA製のGPUが導入されていない場合は、新たにGPUを実装しなければなりません。
必要スペックは目的によって異なる
2つ目のポイントが、スペックの問題です。機械学習は家庭用のパソコンで気軽に行えますが、あくまでも個人研究や趣味のレベルにとどまるので、本格的な研究やAI開発には向いていません。
ビジネスでも通用するAIを開発する場合、まずは膨大なGPUリソースを確保しなければなりません。クラウドGPUを実装するなど、処理能力の確保に努めましょう。
まとめ
今回は、実際に機械学習をGPUで行うためには、どのような手順と準備が必要なのかについて紹介しました。
すでに無料で利用できるオープンソースのサービスやライブラリは豊富に登場しているため、運用環境次第で自由に機械学習を実現可能です。趣味程度のAIであれば、自宅のPCでも十分に開発できるため、一度実装を進めてみても良いかもしれません。