[アップデート] Amazon SageMaker Studio の新機能として、本番リリースしたいモデルをテストするshadow testing機能を発表! #reinvent

2022.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんちには。

データアナリティクス事業本部 機械学習チームの中村です。

本記事では、re:Invent 2022中に発表された機能で、本番リリースしたいモデルをテストするshadow testing機能について紹介します。

公式アナウンスはこちらです。

機能の概要

shadow testing機能は、新しい機械学習モデルを、本番で稼働中のモデルと比較することでパフォーマンスを検証することができる機能です。 これにより、潜在的な設定エラーやパフォーマンスの問題を、エンドユーザーに影響を与える前に発見することができます。

これまでモデルの比較テストをするには、本番稼働中のモデルが受け取るリクエストを、新しいモデル側にも複製して送信して、 そのパフォーマンスを比較する部分などを開発者自身で準備する必要がありました。

今回発表されたshadow testingは、テストしたいモデルを選択するだけで、自動的に新しいモデルを推論用にデプロイします。 そしてリクエストのコピーを新しいモデルにルーティングし、レイテンシやエラー率などの主要なメトリクスにおけるパフォーマンスの違いを リアルタイムで表示するライブダッシュボードを作成します。

ダッシュボードを確認し、モデルのパフォーマンスを検証したら、すぐに本番環境にモデルを導入することも可能です。

詳細は以下のAWS公式ブログにも説明があります。

shadow testingのイメージ

以下のようなshadow testingを設定する画面が、SageMaker上で操作できるようになっています。

「Create Shadow Test」をクリックすると、比較したい新しいモデルを選択できます。

その後、各Variantにどの程度のリクエストを処理させるか、shadow testingを実施する期間をどの程度にするかなどを設定します。

これだけで、shadow testing用のエンドポイントが作成され、それぞれで処理が行われるようになります。

レスポンスは、現在稼働中の本番モデルからのみ返され、shadow testingしているモデルのレスポンスはS3に格納します。

shadow testingの実行中は、レイテンシやCPU・メモリ使用率などを比較してモニタリングできるようです。

実験の結果、新しいモデルをデプロイすると決めた場合、「Deploy shadow variant」をクリックすることにより実施できます。

料金について

shadow testing側のリソースを稼働させるための料金は発生するのでご注意ください。

リソースとなるMLインスタンスやMLストレージの価格は、リアルタイム推論オプションと同じ価格体系となっているようです。

まとめ

いかがでしたでしょうか。今までもマルチエンドポイント構成とすることで、2種類のモデルで処理することは可能であったのですが、 明示的に本番稼働中とshadow testing側を分けて考えられること、モニタリング機能で2種類のモデル比較が可能となったことで、よりshadow testingが容易になる機能かなと思いました。

今後実務でも、機会があれば活用していければと思います。