AWSの機械学習サービスAmazon Machine LearningをRedshiftと使ってみた

AWSの機械学習サービスAmazon Machine Learning

AWSは米国時間4/9に、AWS初の機械学習サービスである「Amazon Machine Learning」を発表しました。現時点では US-EAST(N.Virginia)リージョンでの利用が可能となっております。Redshiftと併用する場合は、RedshiftのデータをUS-EASTに転送することで利用可能となります。 このAmazon Machine Learning は実際にAWSのデータサイエンティストが使っている機械学習モデルを土台にしており、分析やモデル構築の性能の方も信頼できるものとなっているようです。 このサービスにより、データ専門家でない人たちも気軽に機械学習を利用することができるようになります。そしてなにより、アプリケーションからAPIを用いて、この機械学習機能を呼び出し、直接プロダクションに利用することができるので、今後はこの機械学習機能を利用した様々なアプリケーションが増えてくることでしょう。 このように、多数の可能性を秘めているAmazon Machine Learningを、今回はAmazon Redshiftにあるデータを用いて、少しだけ検証をしてみることにしました。

Amazon Machine Learningを使ってみる

AWSの発表によるとAmazon Machine LearningのData sourceには「Amazon S3」「Amazon Redshift」「RDS MySQL」が利用可能となっています。(現時点では、RDS MySQLの利用はまだのようです。) 今回の検証には、FlyDataのサービスから用いた一部のサンプルデータを使いました。 では、さっそく検証を始めてみましょう。

セットアップウィザードの立ち上げ

AWSのコンソール画面にアクセスし、Amazon Machine Learningを選択します。(Fig.1). “Get started”をクリックすると、二つのセットアップオプションが表示されます。今回のテストでは “Standard setup” を選びました。“Launch”ボタンを押して、セットアップウィザードを開始します。

Fig. 1

IAMロールの作成

まず一に、Amazon Machine LearningがデータソースであるAmazon Redshiftにアクセスできるように、 IAMロールを作成する必要があります。こちらの設定は簡単なのでAmazon Machine LearningのIAMロールの作成の手順に従って作ります。 まず、はじめにAmazon IAMの画面にアクセスし、メニューの左端にある”Role”を選び、 “Create New Role”をクリックします。新しいロールを作成し、新しく追加したロール名を選び”Select”をクリックすると次の設定に進みます。

Fig. 2

Datasourceの設定

IAMロールの作成完了後、データソースの作成に入ります。DatasourceのページでRedshiftを選択すると、クラスタ名、データベース名、クレデンシャル、そして、必要なデータを呼び出すためのSQLクエリなどの入力を求められます。

Fig. 3
必要な情報を入力すると、Amazon Machine Learningは自動でRedshiftのデータをS3にコピーし、そのデータファイルを操作し、それぞれのスキーマにあったデータの型の提案をしてくれます。もし、この型推測が正しくない場合は”Change Type”で直すことができます。  次は”Target”の設定です。

Fig. 4
この”Target”のページで利用するデータの訓練変数”Target Value” (またはY値) を決められます。訓練変数の設定を完了し、クリックを押し進めていくとデータソース作成準備が終わりデータソースオブジェクトの作成が始まります。 こちらはデータソースオブジェクトの作成後にみれる可視化されたデータ分布の例です。

Fig. 5

機械学習モデルの構築

次は、機械学習モデルの構築です。Data sourceの詳細にある“Create (train) ML model”のボタンを押して次の画面に進みます。

Fig. 6
“Create ML Model”のページを開くと、モデル構築の際に使うデータ量の比率を決めることができます。デフォルト設定のままの場合、元データの70%が訓練用、残りの30%をモデルの評価用として利用されます。 モデル構築を完了すると、作成したモデルの評価の結果(スコア)が確認ができます。

機械学習モデルの実行

最後のステップは、先ほどデータから構築したモデルを使った予測の実行になります。Data sourceの詳細画面へ行き、“Use the data source to”というボタンをクリックし、ドロップダウンで表示される項目の“Generate batch prediction”を選んで下さい。 次の画面で、どの機械学習モデルを利用するか、どのデータをモデルに適用するか、そしてどのS3バケットに予測結果を保存するのかを選びます。Step 4にある“Finish” ボタンを押すと、予測を実行し、選んだS3バケットに結果が保存されます。

Fig 7.
結果はS3に保存されますが、こちらの画面でもダウンロード可能です。

Fig. 8

Machine Learningの課金の仕方

では、AWSにあるMachine Learningの料金形態と、実際に今回かかったコストを見比べてみましょう。

課金体系

AWSのページによると、Amazon Machine Learningのコストは、

  • データ分析とモデル構築
  • 予測の実行

という2つの構造に分かれており、それぞれの利用料の合計が最終的に課金される金額となるようです。

Data Analysis and Model Building Fees

データ分析とモデル構築の際にかかる利用料は計算処理にかかる時間をベースに課金され、下記の要素によって左右されます。

  • データ量
  • 元データの属性値の数
  • データに適用した変換の数と種類

この計算処理時間を用いて、$0.42/時間のレートで課金されます。

Prediction Fees

    予測の実行には、バッチ予測とリアルタイム予測の二つの方法があり、それぞれ課金方式が少し異なっています。
  • バッチ予測
    • $0.10/1,000件 1,000件毎の課金
  • リアルタイム予測
    • $0.0001/1件 更に、モデル利用の際に発生するメモリの容量(10MBの利用で$0.001/時間)の合計

これとは別にAmazon Redshift, S3, RDS MySQLの利用料が発生します。

実際にかかったコスト

今回のテストでは、Data sourceのデータ量は300MBほどで、「データ分析とモデル構築」のステップに10分から15分ほどかかりました。こちらの方のコストは$2.25、また求めたモデルを使ったバッチ予測1000件分に$0.10かかり、合計$2.35を請求されました。実際の料金の詳細を確認し気づいた点は、データ分析とモデル構築にかかる時間が「インスタンスの利用時間」だという点です。10分から15分の待ち時間が5時間相当のインスタンス利用時間となっていました。今回の検証ではデータ量も少なかったため料金的にも少ないのですが、念のため料金形態として留意しておいた方が良さそうです。

実際の料金詳細

Fig. 9

    • 参考; AWSにあるAmazon Machine Learningの

料金形態

まとめ

今回のAmazon Machine Learningの検証は簡単なデータを使ったものでしたが、最初のDatasource設定の部分でだいぶつまづいてしましました。設定の仕方の簡略化やRedshiftのデータをS3バケットに移し変えずにそのまま使えるようにしたり、入力データを直接Machine Learning内で扱えるようにするなど、まだまだ改良の余地がありそうでした。しかし、データの処理能力は規模を抜いて早いので、データ量が多くても、迅速にデータ解析や分析モデルの取得ができることが期待できそうです。このAmazon Machine Learningにより、もっと多くの人がデータ分析に興味を持つようになるでしょう。データ分析から得た知見をいかしてプロダクトの強化改善するという仕組みの構築にも一役買っていくでしょう。 今回は紹介を兼ねた簡単なテストとなりましたが、今後はより実践的なAmazon Machine Learningの使い方を検証していきたいと思います。

References

    • Amazon Machine Learning:

http://aws.amazon.com/machine-learning/

    • Amazon Machine Learning Pricing:

http://aws.amazon.com/machine-learning/pricing/

    • Basic intro on ML:

http://docs.aws.amazon.com/machine-learning/latest/mlconcepts/

    • Docs on Amazon Machine Learning:

http://docs.aws.amazon.com/machine-learning/latest/dg/

関連記事

  1. AWSで今すぐできるビッグデータ活用 〜FlyData x cloud…

  2. FlyDataのデータのセキュリティに関する取り組みについて

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。