SageMakerは機械学習における開発から運用までサポートしたフルマネージドサービスです。SageMakerでは機械学習モデルをエンドポイントにホスティングし、APIでの推論が可能です。複数のモデルを同じエンドポイントインスタンスにホスティングし、指定したモデルへの推論リクエストも可能です。今回はこの複数モデルのホスティングを試してみたいと思います。Endpoints)複数のモデルをホストできるエンドポイントを作成するには、マルチモデルエンドポイントを使用します。マルチモデルエンドポイントでは、複数のモデルをホストできる共有サービングコンテナが使用されます。これにより、単一モデルエンドポイントを使用する場合と比較して、エンドポイントの使用率が向上し、ホスティングコストが削減されます。よってメモリへのモデルのロードが管理され、トラフィックパターンに基づいてモデルがスケーリングされるため、デプロイのオーバーヘッドも削減されます。マルチモデルエンドポイントは、多数のモデルをデプロイするためのスケーラブルで費用対効果の高いソリューションを提供します。複数のモデルをホストするより仕組みマルチモデルエンドポイントにホスティングされたモデルの推論リクエストがあると、まずS3からモデルがエンドポイントインスタンスにダウンロードされます。ダウンロードされたモデルをメモリに読み込み、リクエストデータを推論し、推論結果をリクエスト元に返します。モデルが既にメモリに読み込まれている場合はS3からダウンロードせず、そのままメモリ上のモデルを使用します。読み込まれているモデルとは異なるモデルに対して推論リクエストがあり、メモリに新たにモデルを読み込む余裕がない場合は、メモリに読み込まれたモデルを解放し、必要なモデルをS3からダウンロードしてメモリに読み込みます。次の図はモデルA、B、Cをホスティングしたマルチモデルエンドポイントの例です。モデルAに推論リクエストがあった場合はS3からモデルをダウンロードし、メモリに読み込み、推論処理を実行します。モデルBに推論があった場合も同様です。エンドポイントインスタンスのメモリが十分にあれば、モデルAも既に読み込まれた状態です。用途マルチモデルエンドポイントは複数のモデルへの推論リクエストのタイミングが異なっていたり、ある程度レイテンシがあっても許容される環境やシステムに適しています。逆にレイテンシを最小限にする必要がある場合にはマルチモデルエンドポイントは向いてないため、通常通り1エンドポイントにつき1モデルをホスティングする方が適しています。やってみるXGBoostのモデルをマルチモデルエンドポイントでホスティングしてみます。LabのPythonカーネルから実行しました。準備まず、バケット名やモデルを配置するS3プレフィックス、モデルのホスティングに使用するIAMロール等を定義しておきます。get_execution_role()コンテナイメージの準備XGBoostモデルをホスティングするためのマルチモデルエンドポイント用コンテナイメージを作成します。Containerリポジトリのmmeブランチのものを利用します。以下のスクリプトを実行して、コンテナイメージをビルドし、ECRに登録します。${ecr_image}モデルアーティファクトの準備マルチモデルエンドポイントではホスティングするモデルを同じプレフィックスの配下に保存する必要があります。今回は事前に作成したモデルアーティファクトを同じプレフィックス配下に集めます。※使用したモデルアーティファクトはこちらのノートブックで作成したものです。SDKを用いることで、マルチモデルエンドポイントの作成が簡単に行えます。モデル名やモデルアーティファクトを配置したS3のプレフィックスやコンテナイメージ名、実行ロールを設定します。instance_type='ml.t2.medium')インスタンス情報を設定し、デプロイします。数分ほどでデプロイが完了します。instance_type='ml.t2.medium')モデルの一覧を確認してみます。推論しやすいように、predictorに先ほど作成したエンドポイントを設定します。serializer=csv_serializer)推論するデータと対象モデルを指定して推論してみます。target_model=models[0])今回のケースだと、初回の推論リクエストのレイテンシは1秒程度、2回目以降だと数十ミリ秒から数百ミリ秒程度でした。モデルアーティファクトのサイズや処理内容に応じてこの時間は大きく変わりそうです。片付け余分な費用がかからないように、使用し終わったらエンドポイントインスタンスを削除します。SageMakerで複数のモデルを1つのエンドポイントでホスティングするマルチモデルエンドポイントについて紹介しました。開発環境やレイテンシが許容できるシステム等においてはコストを節約できる良い方法だと思います。通常の推論エンドポイント用のコンテナイメージそのままでは使用できないため、コンテナイメージや周辺システムの修正コストとマルチモデルエンドポイントによって節約できるコストのバランスを見ながら、利用を検討すると良さそうです。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。和樹25こんにちは植木和樹@上越オフィスです。Terminalの機能確定版がリリースされたので試してみました。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。川原征大4形態素解析の入門中で、ブログの内容の分析を試しています。作業効率化をしたという話。夏目祐樹395こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。