AWSのSageMakerで推論エンドポイントを設定してみた!

UH
2024-06-20
2024-06-20
目次

Amazon SageMakerというサービスをご存じでしょうか。

今回はSageMakerを使用して機械学習モデルをデプロイし、推論エンドポイントを設定するといった内容をご紹介いたします。

 

SageMakerとは?

Amazon SageMakerはフルマネージド型の機械学習サービスです。

生成系AIのサービスとしてはBedRockというサービスもありますが、SageMakerはオープンソースが使えて、推論エンドポイントを自分の環境に構築できるといった特徴があります。

SageMakerを使用すると、機械学習モデルを簡単にデプロイして推論を行うことができます。

SageMakerには、機械学習の推論に関する様々なニーズを満たすことができる機械学習インフラストラクチャとモデルデプロイオプションが豊富に用意されてます。

SageMakerは基盤モデルをJumpStartという機能で提供しており、JumpStartではモデルをSageMaker上にコピーしファインチューニング可能となっております。

  • 推論エンドポイント:機械学習モデルがデプロイされ、外部からのリクエストに対して予測や分析結果を提供するAPI
  • 基盤モデル:特定のタスクに適用する前の、一般的な知識を持つ機械学習モデル
  • ファインチューニング:事前に訓練されたモデル(基盤モデル)を特定のタスクやデータセットに合わせて再訓練するプロセス

今回の紹介内容について

昨年のAWS AI Week for Developersの講義「AWSで生成系AIを簡単に試してみよう!」にて紹介された内容の一部となります。

AWSの公式YouTubeでも概要を公開されてますのでご興味あるかたはぜひ。

AWSが提供しているゲーム「Cloud Quest」でも今回ご紹介内容のクエストがあります。

機械学習コースは有料プランとなりますが、面白く勉強になる内容が多いためおすすめです!

「Cloud Quest」については下記の記事でご紹介しておりますので、ぜひご覧ください。

AWSのゲーム!?Cloud Questが日本語対応したのでやってみた!

今回の動作環境は「Cloud Quest」上のテストアカウントにて実行しているため、一部準備されたものがあります。

今回はその中でも、JumpStart基盤モデルをSageMaker推論エンドポイントにデプロイして動作確認するといった流れをご紹介いたします。

触ってみた

SageMakerのStudioから「Studioを開く」を選択すると、新しいタブでSageMaker Studioが開きます。

sagemaker2

SageMaker Studioは機械学習モデルの構築、トレーニング、デバッグ、デプロイ、モニタリングに役立つ機械学習に対応したウェブベースの統合開発環境(IDE)です。

SageMaker StudioでJumpStartのメニューを選択し、Studio Classicを選択します。

sagemaker3-1

Studio Classicが実行中であることを確認し、Openを選択するとStudio Classicが新しいタブで開きます。

sagemaker4-1

File→New→Terminalを選択し、ターミナルを開きます。

sagemaker6

ターミナル上でs3バケットリストを確認し、コピーします。

sagemaker7

左のフォルダアイコンから、作成されたファイルブラウザを選択します。

sagemaker8

起動したSageMaker Studioノートブックを確認します。

sagemaker9

各ステップを実行していきます。各ステップのセルをクリックし、ツールバーの再生ボタンを押すことで実行され、実行中のコードは[*]でチェックが付いていることが分かります。

sagemaker11

ステップ1~3ではSageMakerのアップグレード、LLMモデルの定義、SageMakerエンドポイントを作成してます。

ノートブックにはQ&A以外にも様々な例が載っており、コード生成、文章補完、翻訳、感情分析、レシピ生成、要約など、1つの基盤モデルで様々なタスクがこなせることがわかります。

ステップ4で各テストを実行すると、それぞれの入力プロンプトに対して期待した出力が返ってくることが確認できました!

sagemaker13

sagemaker14

さいごに

今回はSageMaker推論エンドポイントを立てて、そこにJumpStart基盤モデルをデプロイしました。そして、動作確認としてノートブックからリクエストを投げて、期待したレスポンスが返ってくるところまで確認いたしました。

料金についてですが、デプロイ時に指定したインスタンスタイプに応じた料金が継続的に発生するので、不要になったら停止、削除まで行う必要があります。

生成AIアプリを作成する場合、CloudFrontとS3でフロントページを作り、POSTされたリクエストでAPI GatewayからLambdaを呼び出すという一般的な構成でSageMakerの推論エンドポイントとやり取りするといった構成ができるかと思いますので、次回はそちらにチャレンジしたいと思います。

普段使っている生成AIアプリはどのように作られているか、やってみたらとても楽しく理解が深まったので、ご興味あるかたはぜひお試しください!