Amazon SageMaker の概要

機械学習環境の特徴

この章では Amazon SageMaker による機械学習環境のセットアップについて説明します。機械学習の開発は、ソフトウェア開発と同様に、開発環境を用いることで効率を上げることができ、様々なライブラリ・フレームワークを活用することで、実装工数を削減することができます。開発環境の例としては、Jupyter Notebook とよばれるコードを逐次的に開発・実行できる環境があり、Amazon SageMaker などの機械学習環境に採用されています。機械学習のライブラリとしては、長い歴史をもつ scikit-learn や、深層学習フレームワークの TensorFlow などがあります。

framework

しかし、一般的なソフトウェア開発と機械学習の開発を比較したとき、機械学習の開発には以下のような特徴があります。

  • 採用する機械学習の技術によって必要な計算リソースが大きく変わる。機械学習は CPU でも実行可能だが、深層学習を使う場合、GPU を利用しないと時間がかかりすぎる。
  • 急速に発展する機械学習の技術に合わせてライブラリの更新頻度が高く、バージョン管理などの負担が大きくなる傾向がある。

負荷にあわせて適切な機械学習環境を用意すること、開発チーム内で同じ環境を整備すること、最新版に合わせて環境を更新すること、などは大変な作業です。そこでこのハンズオンでは、機械学習の環境を簡単にセットアップできる Amazon SageMaker を利用します。次の節では、Amazon SageMaker について説明します。


Amazon SageMaker とは

機械学習の開発を開始してから本番環境で利用するまでには、コーディング、学習用のデータの加工、学習に必要な計算の実行、学習結果の本番環境へのデプロイなど、多数のタスクに取り組む必要があります。機械学習のワークフローに興味がある方は、こちらのblog を見てみてください。

これらのタスクは機械学習では避けることができない、よく発生しうるタスクであり、効率化の余地があります。Amazon SageMaker は Amazon での経験にもとづいて、これらのタスクを効率よく処理する機能を多数提供しています。 詳細を知りたい方は、Amazon SageMaker の紹介ページや BlackBelt の資料 [Basic] [Advanced] を参照してください。 今回は、機械学習のコーディング、実行、評価のみを行いますので、Jupyter Notebook をベースにしたノートブックインスタンスの機能を利用します。


Amazon SageMaker ノートブックインスタンス について

ノートブックインスタンスは Jupyter Notebook や Jupyter Lab を簡単にセットアップして、わずか数分で機械学習のコーディング、実行、評価ができる環境を構築します。以下はノートブックインスタンスを起動した後、Jupyter Lab にアクセスして、コーディングを始める様子を示しています。コードを書いている部分に機械学習のコードを作成して実行していきます。