機械学習

AWSを使うべき?機械学習でAWSを使うメリットとそのほかの方法

機械学習をしていてマシンパワーが欲しいと思うことはよくあると思います。そんな時、必ず候補に挙がるのがAWS。

AWSって従量課金だから料金が心配

日本語に訳しているからなんかわかりにくい

と思っている方も多いのではないでしょうか。今回は機械学習でAWSを使用するメリット、デメリットなどを見ていきたいと思います。

AWSとは

AWS(Amazon Web Service)とは、アマゾンが提供するクラウドサービス群です。非常に多くのサービスが展開されており、いろいろなことができます。こちらのページにサービスの内容が一覧になって表示されています。

今回は自分のPCで機械学習をしている方が、PCの能力不足を感じた時にAWSを使用することを想定して説明していきたいと思います。

また、サービス向上のために頻繁にアップデートしてくれることもあり、画面や構成が今回の説明と変わっていることもありますので、その際は最新のものに読み替えてください。

AWSにおける機械学習向けサービス

冒頭でAWS(Amazon Web Service)にはサービスの種類がたくさんあることを紹介しました。たくさんあるため、おそらく一度も使わないであろうサービスも数多く存在していますが、冒頭で紹介した「機械学習でPCの能力不足を感じた時にAWSを使用することを想定」した場合に使用すると思われるサービスを中心に説明していきます。

S3

データストレージサービスです。公式のYoutube解説はこちら

機械学習のサービスではありませんが、学習用のデータが大きくなってきた場合、学習データをS3サーバーに入れてS3サーバーから学習を行う際などに使用します。簡単な機械学習をしてみる程度の際には必要ありません。

このS3サーバーですが、機械学習用途に限定したものではなく様々な用途に使用でき、料金も使い方によっては安く利用できるので通常のストレージサービスとしても優秀です。料金についてはあとでまとめて説明します。

SageMaker Studio

機械学習の統合開発環境です。機械学習で使用する際はまずこちらを検討することになると思います。公式の解説はこちら

起動画面はこちらになります。見た感じはJupyterLabに近く、感覚的に操作可能です。左側のファイル管理画面にデータをドラッグアンドドロップで入れることも可能なため、S3を使用するほどではない解析の場合はここにデータを入れて使用します。

AWSを使用するメリットの一つに、目的に合わせてインスタンスタイプを選択することができる点があります。CPU数とメモリサイズを選択できるため、学習内容に応じて必要なリソースを簡単に確保することが可能です。

このインスタンスにより使用料金が異なるため、目的に応じてちょうどよいインスタンスを選択することで必要最低限の金額で、使用したいリソースを使用することができます。オンプレでサーバーを準備するとこうはいきません。

なお、SageMakerを閉じる際には、必ず図の「ShutDown」をクリックして閉じるようにしましょう。計算をさせたままPCをシャットダウンすることができるように、ブラウザを閉じただけではカーネルはシャットダウンされません。シャットダウンされないとそのまま使用料金がかかってしまうため、使用が終了して閉じたい場合は必ずカーネルのシャットダウンをしてから閉じるようにします

料金や仕様は?

リージョンについて

料金について確認する前に「リージョン」について確認しておかなくてはなりません。リージョンというとブルーレイなどで聞いたことがあるかもしれませんが、「地域」のことです。

AWSは実行するリージョンを選択することが可能です。リージョンで指定した地域にあるサーバーを使用することになります。特定リージョンでしか実行できないサービスや、距離があるとアップロードに時間がかかるなどの違いがあります。

リージョンごとにサービス料金が異なるので個人使用であったり、テスト使用の場合は料金の安い「バージニア北部」や「オレゴン」が好まれます。とくに好みがなければ一番近い東京リージョンを使うのが無難です。

料金について

先ほども説明しましたが、料金はリージョンによって異なります。また、サービスや途中で出てきたインスタンスによっても異なります

使用する前にAWSの料金見積もりのページで確認してから使用するのがよいと思います。

実際に使用した料金については日ごとに、項目ごとに表示されるため、インスタンスを落とし忘れていないかなどはここを確認すればわかります。

料金概算ですが、2023年10月現在ml.c5.largeインスタンスのオハイオリージョンで、おおよそ「0.102US$/時間」となっています。

料金に関してはあくまでも参考なので、公式サイトで正しい数値を調べてください。

これを安いとみるか、高いとみるかは使用環境にもよると思うので、ご自身の使用環境に合わせて検討いただければと思います。日に何時間も解析を回さない場合はオンプレで同じ環境をそろえると非常に高額になりますし、必要な時に必要な分だけというのも選択肢としてよいのではないでしょうか。

結論、AWSがいいの?

結論から言うと、「どのように使うか」によります。選択するとよいパターンと、そのほかの案を考えてみます。

AWS

どのような使い方をするにしてもおすすめです。

メリット

使用した分しか支払う必要がない

使用状態に合わせて料金が発生するので、使用した分しか支払う必要がない点がメリットです。毎日使用するわけではない方や解析内容が場合によって変わり、計算資源が欲しい時と必要ない時で差がある方などは特におすすめです。

また、AWSの認定試験や企業によってはAWSが使用できると転職などに有利になる場合があるのでそのようなメリットもあります。

デメリット

実際に作業してみないと分からない部分が多い

デメリットというほどではありませんが、やはり触ってみないとわからない点があると思います。その点、AWSには登録後に無料枠があるので、登録して無料枠で使用してみることを大いにお勧めします。

Google Colab

無料で始めることができるので、とりあえず使ってみるという点ではおすすめです。

メリット

無料で利用可能・Googleアカウントの連携が簡単

メリットはなにより無料で始められ、そのまま無料で使い続けることができる点です。またGoogleのサービスなので、すでに持っているアカウントで簡単に始められ、GoogleDriveなどとも簡単に連携できるので始めやすいと思います。

また、無料であることからColab上で動かしてみる記事がweb上に多くあり、わからない点を自力で解決できる方には非常に良いサービスとなっています。

デメリット

無料版のCPU/GPU/TPUの優先度が低い

こちらもデメリットというほどではないのですが、無料版ではCPU/GPU/TPUの優先度が低かったりGoogleDriveの容量が足りなくなるなどして、どこかで有料版を検討することもあるかと思います。そうしたときに使用量に山、谷がある場合は別の方法を検討する可能性が出てくるかもしれません。

そのほかクラウドサービス

クラウドサービスはAWSやGoogleColabだけではなく、例えば日本の会社が運営しているGPUSOROBANなど、低価格で優良なサービスもいくつかあります。特にGPUSOROBANはコストメリットが大きいうえ、AWSで心配になるインスタンスの切り忘れなども発生しにくくおすすめです。

まとめ

今回はAWSについて確認してきました。機械学習やAIをやっていると、パワーのあるマシンが欲しくなるタイミングは必ずあると思います。その際に今回の記事を参考にしていただき、AWS検討の参考になればと思います。