はじめに
この度、ANGEL Calendarの企画に参加してます。TOKAIコミュニケーションズの阿部と申します。
本日は24日目です。
こちらのANGEL Calendarの企画では、AWSに限らず様々な技術記事が投稿されているのでぜひ確認してみてください!!
SageMaker JumpStartとは
SageMaker JumpStartは、Amazon SageMaker Studio内で利用可能なサービスで、数回のクリックで事前学習済みのモデルをデプロイして、すぐに推論を行うことができます。さらに、自分のデータセットを用いてモデルを再学習(ファインチューニング)することも可能です。
前提
AWSアカウントを持っていること
実装
1.SageMaker Studioのセットアップ
マネジメントコンソールのSageMakerサービスにアクセスします。その後、左側メニューからStudioをクリックし、SageMakerドメイン作成をクリックします。
今回はシングルで使用するので左の「シングルユーザー向けの設定(クイックスタート)」を選び「設定」ボタンをクリックします。(スタジオが作成されるまで数分かかることがあるので待ちます。)
Studioの設定が完了したら、AWSコンソールのSageMaker Studioページで作成したスタジオのユーザープロファイルを選択し、「Studioを開く」をクリックし起動します。(初期起動時は、環境構築に時間がかかる場合があります。)
2.テキストの感情分析が可能な「Text Classification」を選びデプロイ。
今回はテキストベースの感情分析なのでそれに特化したモデルを選んで「デプロイ」をクリックします。
3.テキスト分類を実行して感情分析
モデルがデプロイできたら、実際に感情分析を行います。SageMaker Studioのノートブックで以下のPythonコードを使ってテキスト分類を実行します。
import boto3
import json
# SageMaker Runtimeクライアントを作成
runtime = boto3.client('runtime.sagemaker')
# エンドポイント名を指定
endpoint_name = 'your-endpoint-name'
# テストするテキストのリスト(ポジティブとネガティブ)
texts = [
"I love this product!", # ポジティブ
"I hate this product!" # ネガティブ
]
# 各テキストに対して感情分析を実行
for text in texts:
print(f"Input Text: {text}")
# エンドポイントを呼び出して感情分析を実行
response = runtime.invoke_endpoint(
EndpointName=endpoint_name,
ContentType='application/x-text',
Body=text
)
# 結果を取得して表示
result = json.loads(response['Body'].read().decode('utf-8'))
print(f"Model Output: {result}")
print("\n")
このコードでは、SageMaker JumpStartでデプロイしたエンドポイントを使って、感情分析を行います。
4.出力結果
実行結果はprobabilitiesフィールドに確率値として表示されます。次のように解釈します。
ポジティブなテキストの場合:
Input Text: I love this product!
Model Output: {'probabilities': [0.0007346862112171948, 0.9992652535438538]}
右の確率(99.93%)が高いので、このテキストはポジティブです。
ネガティブなテキストの場合:
Input Text: I hate this product!
Model Output: {'probabilities': [0.9935943484306335, 0.006405672524124384]}
左の確率(99.36%)が高いので、このテキストはネガティブです。
まとめ
SageMaker JumpStartは、事前学習済みの多種多様なモデルを活用し、複雑な機械学習タスクを簡単に実装できる強力なツールです。今回紹介した感情分析モデル以外にも、画像認識や物体検出、予測モデルなど、さまざまな用途に対応するモデルが揃っています。特に、機械学習の専門知識がなくても数分でモデルをデプロイし、実際のデータを使った分析が可能です。ぜひ皆さんも試してみてください!
参考