はじめに
Amazon SageMaker は、サーバーlessな機械学習(ML)プラットフォームです。本記事では、Amazon SageMakerを利用したMLの実装サンプルを紹介します。
Amazon SageMakerのML開発の流れ
Amazon SageMakerのML開発流れは、次のようになります。
1. 学習用データをAmazon S3に置く
2. Amazon SageMakerのノートブックインスタンスを作成して、学習用データを取り込む
3. モデルを定義して、学習ジョブを実行する
4. テスト用データを使ってモデルを評価する
5. 最適なモデルを使ってプロダクション環境でMLオペレーションを実行する
Amazon SageMakerを用いたサンプル実装
サンプル実装では、テキストデータに対してMLモデルを作成したいとします。今回のサンプルでは、文書クラスタリングを行うためのK-meansアルゴリズムを実装します。
まず、Amazon S3オブジェクトストレージ上に学習用データを格納します。
from io import BytesIO
import boto3
# Amazon S3にアップロード
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket("my-bucket")
my_bucket.upload_file("/path/to/sql.csv", "sql_train.csv")
次に、Amazon SageMakerのノートブックインスタンスを作成します。
from sagemaker import get_execution_role
from sagemaker.session import Session
# Amazon SageMakerノートブックインスタンスの作成
role = get_execution_role()
session = Session()
次に、K-meansアルゴリズムを実装します。ここでは、Amazon SageMaker Python SDKライブラリを用いて実装します。
from sagemaker import KMeans
# K-meansアルゴリズムを実装
kmeans = KMeans(role=role,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
output_path='s3://my-bucket/output/',
k=10)
最後に、学習ジョブを実行します。
# 学習ジョブを実行
kmeans.fit(kmeans.record_set(train_location))
まとめ
本記事では、Amazon SageMakerを用いたMLのサンプルを紹介しました。具体的には、文書クラスタリングの例をK-meansアルゴリズムを実装して学習ジョブを実行する方法を示しました。Amazon SageMakerは、サーバーレスで機械学習モデルを構築するための環境を提供します。