
AWS入門 初心者が覚えておくべきAWSの基本
機械学習のモデルを構築する際には、インフラの準備から学習モデルの開発、トレーニング、デプロイなどを行う必要があり、一から対応すると多くのコストがかかります。「Amazon SageMaker」は、そのような対応をAWS上で効率的に実施できるサービスです。既にある仕組みを利用して、素早く機械学習のモデルを構築できます。このコラムでは、フルマネージド型サービスで素早く機械学習環境を構築できる「Amazon SageMaker」について解説していきます。
「Amazon SageMaker」とは、機械学習を実施するうえで必要なモデル開発、学習、推論を実施するAWSのサービスで、機械学習モデルを高速に開発~展開までワンストップで実施するモジュールが用意されています。またAmazon SageMakerはフルマネージド型サービスで、利用者側でサーバー運用管理や障害時の対応をしなくて済むため、人手をかけずに機械学習モデルを構築したい人には最適のサービスです。
Amazon SageMakerを利用することによって、機械学習環境を構築したいと考える利用者は複数のメリットを享受できます。ここでは、そのメリットを順番にみていきましょう。
Amazon SageMakerは、「インスタンス作成」、「モデル構築」、「トレーニング」、「デプロイ」までワンストップで実施できます。一般的に機械学習システムをビジネスとして使用可能にするまでには、学習・推論などに膨大な時間を割かなくてはなりません。しかしAmazon SageMakerを使用すれば、既に存在する機械学習の仕組みを利用していけますので、短時間で機械学習が実施できるのです。
「Jupyter Notebook(ジュピターノートブック)」は、データ分析ができる対話型ブラウザ実行環境です。OSSを開発するためのプロジェクトであるJupyterプロジェクトが開発したOSSWebアプリケーションで、複数の言語にまたがって対話的な処理実行を実現できます。コードを書くと実行結果がコードの下部にすぐ表示されるため、プログラムと関連するメモや出力をまとめて保存でき、またブラウザ上で処理を実行できることにより、関係者間での情報共有が容易になっています。
Apache MXNet、TensorFlowなどの主要な機械学習フレームワークに対応しています。さらにDockerコンテナで実行するように事前に構成されているため、Dockerコンテナが稼働できるエッジデバイスなどでも動作させられます。Dockerコンテナとは、Dockerと呼ばれる仮想化技術を使用した、コンテナ型の仮想化のことです。コンテナ型仮想化は、OSの上にコンテナと呼ばれるアプリケーションを実行できる仮想的な空間を作り、1つのOSの上でコンテナを複数提供できます。
特徴量の抽出に向いたPrincipal Component Analysis (PCA)、異常検知に向いたRandom Cut Forestなど、主な機械学習アルゴリズムについて、事前にインストールや最適化が行われているため、柔軟にアルゴリズムを選択していけます。機械学習の実行はワンクリックで済むため、簡単です。
インフラは必要に応じて自動的に拡張されます。極端な話ですが、ペタバイト規模の学習モデルでも対応できるでしょう。また、大容量で高速なAWS S3をデータレイクとして使うことで、スムーズな機械学習が可能です。データレイクとは、多数のビッグデータを元の構造のままで保持できる中央ストレージのことを指します。
SageMakerは、利用する前に機械学習の仕組みをある程度理解する必要がありますが、理解してしまえば、大規模なものでも、素早く機械学習の環境を準備できる魅力的なサービスです。
Amazon SageMakerは、AWS上の仕組みを利用して効率的に機械学習環境を構築できるため、様々なシーンで利用されています。Amazon SageMakerの導入事例をみていきましょう。
あるゲーム会社は、20億を超えるゲームのダウンロードと4億を超える月間アクティブユーザーを保持しています。同社は、Amazon SageMakerを使用して、ユーザーに表示される広告をリアルタイムに最適化できるようにしました。毎日、3000億人を超えるユーザーによる、1億回以上にも及ぶ広告表示がなされますが、小さなチームでも1週間未満でAI処理モデルを本番稼働でき、現在も問題なく継続してシステムを運用しています。
レシピ共有サービスを提供する会社でも利用されています。この会社では、学習ジョブの繰り返しを最小化し、さらに機械学習モデルのデプロイをAmazon SageMakerで自動化することで、開発プロセスを早めることに成功しています。また、この開発環境での事例を基に、本番環境でもデプロイ自動化を推し進め、実装を目指しています。
あるニュースアプリ企業では、機械学習テクノロジーを駆使して、最も自身への関連性が高く興味があると考えられるニュースをユーザーに届けています。Amazon SageMakerを利用した機械学習アルゴリズムで、数百万件規模の記事、ソーシャルシグナル、人的交流を評価し、取り上げるべきニュースを1100 万人超のマンスリーアクティブユーザーに配信しています。
では、Amazon SageMakerはどのように使うのでしょうか。本コラムではできるだけ簡単にお伝えするために、必要最小限の説明にとどめています。今回は、MNISTと呼ばれる手書き数字のデータを使用して、数字を判定できる機械学習環境を構築する流れをみていきます。
ノートブックインスタンスとは、Jupyter Notebookがインストールされてメモリ上に展開された「実体」のことです。インスタンスを作成することで、プログラムを記述するノートブックを使えるようになります。
MINISTデータはPythonプログラムでダウンロードしてこれます。モデルのトレーニングのためには、まずアルゴリズムの選定が必要ですが、今回は選定のプロセスは省略して「k-means」と呼ばれるアルゴリズムを使用してトレーニングします。
モデルのデプロイは、Pythonライブラリを使用すると簡単に実施できます。モデルのデプロイが完了次第、モデル評価・検証を実施しましょ
なお、AWSのサイトにチュートリアルと流れがありますので、詳細はこちらをご覧ください。
統合開発環境のAmazon SageMaker Studioは無料で使用できます。Amazon SageMakerの料金については、下記の公式ページをご覧ください。
「Amazon SageMaker」を使用すれば、機械学習に必要なモデル開発、学習、推論を実施していく仕組みを素早く準備できます。
もちろん機械学習の基本的な知識は必要になりますが、主要な機械学習フレームワークや機械学習アルゴリズムは実装されているので、扱いやすいサービスといえるでしょう。機械学習も1クリックで実施できます。
Amazon SageMakerで効率的に機械学習環境を構築し、自社のビジネスを加速させていきましょう。
なお、Amazon RekognitionやAmazon Pollyなど、各サービスで学習モデルが提供されていて学習モデル開発が不要なAWSサービスも存在します。こうしたサービスは既に用途がある程度決まっているものが多いので、目的に合ったサービスがあるなら学習モデル開発が不要なサービスを、独自の用途でサービスを開発したいならAmazon SageMakerを選択するとよいでしょう。
NTT東日本のクラウドAI 活用ソリューションを知る!