
初心者向けにAI作りを書いているこのブログも、高度なモデルになってくると環境に無理が出てきました。
本格的なAI作りはパソコンでは無理なのです。
学習済みモデルをダウンロードすればAIの体験はできますが、自分のためのAIを作ろうとすると、データを作り学習を走らせなければなりません。学習は何時間~何日間もかかかります。
そこでGPUというプロセッサを使って学習時間を早めます。しかしこれは数万~20万円ほどするのです。所有するにはちょっともったいないですね。
これを手軽に使えるのがクラウドサーバです。AmazonのAWS、GoogleのGCP、MicrosoftのAzureといったクラウドサービスがあります。中でも一番使われているAWSサーバの使い方を紹介します。
AI開発とクラウドは相性がいい
クラウドサーバはAI開発にとって便利なのです。
- AIモデルに適するOS、ハード性能を選択して仮想サーバを作れる
- AI用イメージを選択して仮想サーバを起動すれば、GPUのドライバがインストールされた状態となり、ドライババージョンに悩む必要がなくなる
- バージョンやドライバが合わないなどサーバ構築に失敗したら、簡単に仮想サーバをつぶしてやり直すことができる
- 構築したサーバを簡単に複製できAI学習を多重実行することができる
- サーバを利用しない時は停止しておけばリソース利用料が発生しない
- 高価なGPUを買わなくてよい
- 学習する時だけGPUを設定し、料金を節約できる
AWS料金
- 登録後、1年間または各リソース利用枠内まで無料
- GPUは別料金。GPU1つにつき1時間 $0.9(100円前後)
10時間かかる学習は1000円程度になります。高価なサーバを購入するよりはクラウドの利便性を考えれば安いです。
ちなみに利用継続しない場合は作ったインスタンスを削除してください。利用期限を過ぎるとディスク利用料金が課金されてしまいます。
利用手順
AWSへの登録
1.AWSのアカウント登録を行います。この手順の通りに実施します。支払いが発生しなくても、登録にはクレジットカードが必要です。
https://aws.amazon.com/jp/register-flow/
登録の中で、プランは「ベーシックプラン(無料)」を選択してください。

2.登録が完了したら、「マネージメントコンソール」へ進んでください。

インスタンス(仮想サーバ)の作成
AWSのサーバ管理サービスはEC2というサービス名が付いています。EC2上で仮想的なサーバを作成できます。クラウドサービスでは仮想サーバのことをインスタンスと呼びます。
3.「サービス」->「EC2」を選択してください。

4.EC2画面で「インスタンスの起動」を実行します。

5.マシンイメージ選択の画面で、「DeepLearning AMI(Ubuntu x.x)」を選択します。バージョンに希望がなければ最新を選んでください。

6.インスタンスタイプの選択画面で、「p2.xlarge」を選択し「確認と作成」を押します。AI学習に最低限必要なメモリ容量とGPU1つが構成されます。

7.「起動」を実行します。

8.キーペアの作成を促されるので作成します。秘密鍵は後でコンソール接続をするために必要です。「新しいキーペアの作成」を選択、「キーペア名」に自由にファイル名を入力し、「キーペアのダウンロード」を実行、pemファイルを保存します。終わったら「インスタンスの作成」を押します

9.次の画面で「インスタンスの表示」を押します。

10.作ったインスタンスが見えます。ステータスが「実行中」になれば作成の完了です。

11.「Name」の箇所をクリックし、インスタンスに名前を付けておきましょう。

インスタンスへのアクセス
12.AWSコンソールの下段で「パブリックIPv4 DNS名」をコピーします。

<Windowsの場合>
インスタンスへログインしたりファイル転送をするため、PCへ「TeraTerm(SSH含む)」をインストールすることをおすすめします。AWSにも機能がありますが、他に設定が必要だったりログが取れないなどの不便さがあります。
TeraTerm(SSH含む)はネット検索すればすぐダウンロードができ、簡単にインストールできます。
13.PCで「TeraTerm」を実行します。

14.TeraTermの「ホスト」に記憶したDNS名をペーストし、「SSH」を選択し「OK」を押します。

15.AWSインスタンスとPCが通信できれば、下の画面が出ます。「ユーザ名」に「ubuntu」と入力、「秘密鍵を使う」を選択し、先ほど保存したpemファイルを選択して「OK」を押します。

16.ログインに成功すればプロンプトが表示されます。これでインスタンスのOS上でコマンドが実行できます。

<Macintoshの場合>
13.Terminalを開き、下記を実行するとログインができます。pemファイルがある場所で行います。
1 2 |
chmod 400 aws_instans01.pem ssh -i "aws_instans01.pem" ubuntu@コピーしたDNS名 |
初回に「Are you sure you want to continue connecting?」と出たら「yes」を入力します。
インスタンスとのファイル授受
<Windowsの場合>
17.TeraTermの「ファイル」->「SSH SCP」を実行します。

18.ファイルをインスタンスに送りたい場合は、上段の「From」にPC上のファイルを指定し、「To:」にインスタンス側のディレクトリ「/home/ubuntu」を指定して、「Send」を実行します。

初回に「Are you sure you want to continue connecting?」と出たら「yes」を入力します。
19.ファイルをインスタンスから受信したい場合は、下段の「From」にインスタンス側のファイル「/home/ubuntu/***」を指定し、「To:」にPC上のフォルダを指定して「Receive」を実行します。

<Macintoshの場合>
17.Terminalを開き、下記を実行するとファイル送受信ができます。pemファイルがある場所で行います。
1 2 |
送信する時= scp -i "aws_instans01.pem" PC上のファイル名 ubuntu@コピーしたDNS名:/home/ubuntu 受信する時= scp -i "aws_instans01.pem" ubuntu@コピーしたDNS名:/home/ubuntu/ファイル PC上のフォルダ |
初回に「Are you sure you want to continue connecting?」と出たら「yes」を入力します。
インスタンスの停止と削除
インスタンスを使わない時は「停止」(=シャットダウン)をしてください。うっかり起動したまま無料枠(750時間)を過ぎると課金が発生してしまいます。
20.左メニューの「インスタンス」を選択し、停止(シャットダウン)したいインスタンスを右クリック->「インスタンスを停止」を実行します。

インスタンスが不要になったら「終了」(=削除)をしてください。1年後はAWS上に残っているだけで課金されてしまいます。
21.左メニューの「インスタンス」を選択し、修了(削除)したいインスタンスを右クリック->「インスタンスを終了」を実行します。

AWSクラウドサーバの作り方、使い方は以上です。
物理サーバで苦労した人には分かるのですが、クラウドサーバはAIモデルやライブラリとGPUドライバの相性で苦労せず感動ものです。学習と環境構築の両面で時間の短縮ができますね。