AWSで機械学習を行うときに、役に立つサービスを紹介します!
なお当記事の読者として、以下の知識がある方を想定しています。
・ EC2、S3及びRDSといったAWSの基本的な機能
・ 機械学習のおおまかな流れについて
・ Jupyter notebookとは?
この記事では、特に使用頻度の多い「SageMaker」「Athena」「Glue」の三つのサービスについて、それぞれの特徴と使用場面をざっくり理解していただけたらと思います!
AWSで機械学習を行うメリット
- ライブラリを標準装備しているため、環境設定を行う必要がない
- 学習に時間がかかる場合でも、インスタンスの性能を引き上げることで高速化が可能
- 既にAWSを使っていて、S3などのストレージに学習データがある場合、処理がスムーズ
- データベースや学習の実装、デプロイまでを一貫してAWS上で行うことができる
ローカルマシンではなく、AWS上で機械学習を行うことで、このようなメリットがあります。
SageMaker
機械学習を行う際、多くの人がJupyter notebookを使うことでしょう。
SageMakerとは、AWSのインスタンス上でJupyter notebookを使用できるサービスです。
SageMakerを使うことで、クラウド上でnotebookでの学習を完結することができます。
SageMaker上でコードを書きながら実行することもできますし、ローカルで作成したnotebook形式のファイルを読み込んで動かすこともできます。
また、組み込みアルゴリズムを利用できたり、作成したアルゴリズムの保存、モデルに関する分析など、機械学習に役立つ様々な機能がついています。
Athena
容量無制限のストレージであるS3は、「ファイルの置き場」としてよく使われます。
機械学習をする際、学習にこのS3内のデータを使いたいという場面があるでしょう。
このような場合に役に立つのがAthenaというサービスです。
Athenaは、S3内のデータをSQLのクエリで操作できるサービスです。
S3内にあるファイルに対し、スキーマを定義すれば、SQL文を実行するだけで必要なデータを取り出すことができます。
「S3のファイル内の膨大な情報から、数種類のデータだけ取ってきて機械学習にかけたい」というときは、Athenaで必要な部分だけ出力したCSVを作ることができます!
Glue
Athenaはとても便利ですが、S3内のファイルがスキーマを定義できないほど散らかっている場合は困ってしまいます。
そういった場合、まず散らかったS3のデータをある程度使いやすい形に加工して別ファイルとしてS3に保存し、その上でAthenaを使用したいですよね。ここで活躍するサービスがGlueです。
Glueは、RDSやS3といったストレージ内のデータを加工したり変換するためのサービスです。
S3内のデータを加工してS3に再び保存する場合にも使えますし、RDS内のデータをS3に変換するといったデータ変換にも使うことができます。
「機械学習を行うために、ファイルの形をまとめて整えてあげたい」という際はGlueを使ってみてください!
まとめ
- 「SageMaker」はクラウド上でJupyter notebookが使え、さらにAWSオリジナルの機械学習に役立つ便利機能もついてくるサービス
- 「Athena」はS3のファイル内のデータをSQLクエリで操作できるサービス
- 「Glue」はRDSやS3内のデータを機械学習に使いやすい形に加工するのに役立つサービス