はじめに


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は、サーバーレスで機械学習モデルを構築するための環境を提供します。

投稿者: systemreach_engineer