MATLABでクラウドAWSを使ってディープラーニング学習をする方法
「MATLABでAWSの高性能パソコンを使ってクラウド上でディープラーニング学習をする 方法ってどうやるのか?」
クラウドを使う方法は、色々な知識を総合的に知っていないと なかなかたどり着けないですよね。
私自身も会社でAWSを使ってディープラーニング学習をさせる必要が出てきて、 けっこう時間を費やして調べました。
ここでは、 「AWSを使ったディープラーニング学習の方法の概要とその流れ」 を説明していきたいと思います。
具体的な手順については、 MathWorks公式サイトに動画で掲載されていますので、 そちらを参考にしてもらうのがいいかと思います。
ディープラーニング:AWSとNGCで使うMATLAB ディープラーニングコンテナ
目次
何を準備すればいい?
AWSでディープラーニング学習を行うには、 以下の3つのものが必要になります。
- MATLAB・Deep LearinigToolbox・Parallel Computing Toolboxライセンス
- アマゾンウェブサービスのアカウント
- NVIDIA GPU クラウドのアカウント
まずはこれがなきゃ始まらないですよね、MATLABのライセンスは必須です。
オプションソフトも「Deep Learning Toolbox」 「Parallel Computing Toolbox」が必須になります。 Parallel Computing Toolboxは、 GPUを使って並列処理で学習するために使用します。
それと、もうひとつ必要なのは「MATLABの保守に入っていること」です。 あとで説明しますが、オンライン経由でMATLABを起動させるために 保守に入っていないといけないのですね。
続いて、AWS(アマゾンウェブサービス)のアカウントが必要です。
AWSのサービスを使うのでそもそもアカウントがないといけません。 AWSのサービスは、「Amazon EC2」を使用します。
Amazon EC2を簡単にいうと、 「WEB経由で高性能パソコンにアクセスできるサービス」です。
Amazon EC2のP3という商品を使うことで 最先端のGPUが搭載されたパソコンにアクセスできるようになるわけです。
そして、最後に必要なのはNVIDIA GPU クラウドのアカウントです。
NVIDIA GPUクラウド(NGC)とは、 簡単にいうと「NVIDIAを使ったディープラーニングのためのツール」です。
NGCには「NGCカタログ」という商品群がありまして、 その中のひとつに「MATLABのためのツール」があるのです。
NGCカタログから、MATLABのためのツールをダウンロードして インストールすることでGPUを使ったディープラーニング学習が 簡単に行えるという優れモノなのです。
このNGCのサービスを使うためにアカウントも必要なのです。
NVIDIA NGC: Catalog・NVIDIA公式サイト
主にこの3つが、まず初めに準備しないといけないものになります。
ディープラーニング学習までの流れは?
ディープラーニング学習までの流れを 簡単にいうとこんな手順になります。
- AWS EC2でクラウド上の高性能パソコンを使えるように設定する
- NGCからMATLABのツールをダウンロードしてAWSにインストールする
- ブラウザ経由でAWS上のパソコンにログインしてMATLABを実行する
図で表すとこんな感じでしょうか。
AWS EC2でクラウド上の高性能パソコンを使えるように設定する
AWSにログインして、高性能パソコンを使えるように設定していきます。 クラウド上で使えるようにするための設定を「インスタンス化」といいますが、 まずはインスタンス化をしていきます。
ちなみにGPUの性能によって使用料金が変わってきますので注意が必要です。
この後、インスタンス化した高性能パソコンに リモート接続するための設定を行います。
MathWorks公式サイトの動画では、 PuTTYというツールを使ってAWSに接続しています。 PuTTYは 「クラウド上のパソコンに安全にリモート接続するためのツール」 だと思ってください。
オープンソースのソフトなので、 誰でも無償でダウンロードできます。
NGCからMATLABのツールをダウンロードしてAWSにインストールする
AWSの設定が終わったら、次にNGCから「MATLABのためのツール」をダウンロードします。 NGCでMATLABと検索すると出てきます。
NVIDIA NGC: Catalog・NVIDIA公式サイト
AWSにインストールしてディープラーニングの学習をするための 環境づくりをしていきます。
MathWorks公式サイトの動画では、 「docker」とか「pull」とかいう言葉が出てきますが、 それが何なのかを知らなくても手順さえ守れば進めますので わからない場合は気にせず進んでください。
ちなみに私も知りませんでした。 ここでは「docker=MATLABのためのツール」で「pull=インストール」と 思っていただければOKかと思います。
ブラウザ経由でAWS上のパソコンにログインしてMATLABを実行する
最後にAWSでインスタンス化した高性能パソコンに ブラウザでリモート接続します。
ブラウザではAWS上の高性能パソコンの画面が見れるようになりますので、 そこでMATLABを起ち上げてディープラーニング学習を実行していきます。
ここで注意したいのは、 「MATLABの保守」が有効でないとリモート接続できないことがあるみたいです。 正直私は保守に入った状態で試したのでわかりませんが、 MathWorks公式サイトにはMATLABの保守は必須と書いてありました。 下のリンクの「Requirements」に書いてあります。
MATLAB Deep Learning Container on NVIDIA GPU Cloud for Amazon Web Services・MathWorks公式サイト
今の状態は、MATLABは高性能GPUが搭載されている AWSのパソコン上で動いています。
ですので、ディープラーニング学習を実行すると GPUが使われてプログラムを実行できるというわけですね。
というのが、一連の流れになります。
価格はどれくらいかかるの?
まず、MATLABのライセンス料がかかります。 MATLABとDeep LearinigToolbox、Parallel Computing Toolboxのライセンス料です。
ライセンス形態によって価格は異なります。 MathWork公式サイトからオンラインで購入する価格が見れますので、 そこから確認してみてください。
私は企業向けの年間ライセンスを使っているので、 1年間で「24万円弱」かかりました。保守も含まれます。 ちなみに大学などのアカデミックだと年間で7万円弱くらいで使えます。
そして「アマゾンウェブサービス(AWS)の使用料」もかかります。
パソコンのスペックによって料金がわかりますが、 ディープラーニング学習に使う場合はGPUメモリが最も重要です。
GPUメモリ16GBで1時間あたり3.06ドル(アメリカドル)です。
1日8時間で、20日間使った場合は「489.6ドル」ですね、
ちなみに1年間の年間契約で割引もされるようです。 3年間契約でさらに割引されるのもありました。
AWS EC2 P3の価格については下のリンクから見れます。 ページ下の方の「Amazon EC2 P3 インスタンスの製品詳細」に価格が載っています。
ちなみに私の会社では、 パソコンを資産として持ちたくないということで、 AWSで経費として使うことが検討されたのです。
まとめ
はい、ちょっと長くなりましたがまとめです。
MATLABでクラウドを使ったディープラーニング学習をするには アマゾンウェブサービス(AWS)アカウントと MATLAB・Deep LearinigToolbox・Parallel Computing Toolboxライセンスと、 NVIDIA GPU クラウドのアカウントが必要。
ディープラーニング学習までの流れは 「AWS EC2設定」→「NGCからMATLAB向けツールをインストール」→ 「リモート接続でAWS上のMATLABを実行」という流れ。
費用は「MATLAB・Deep LearinigToolbox・Parallel Computing Toolboxライセンス料」と 「AWSの時間単位の課金料金」がかかる。
という感じです。
最後に・・・
MATLABパソコンを探しているという向けに おすすめのMATLABパソコンも紹介しています。
よければそちらものぞいてみてください。