Closed7

SageMakerのA/Bテストについて調査

なゆゆなゆゆ

機械学習のA/Bテストについて

新しいモデルと本番稼働している古いモデル間でA/Bテストをすることで、新しいモデルが実際のユーザーに対して有効な効果を発揮するか評価することが可能です。
機械学習モデルでA/Bテストを行う場合、新旧のモデルに対して別々にトラフィックをルーティングできるよう仕組みを作る必要がありますが、Amazon SageMakerの場合は組み込みの機能による支援を受けることができます。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/model-ab-testing.html#model-ab-test-example

なゆゆなゆゆ

SageMakerでのA/Bテストの枠組み

推論エンドポイントに新旧のProduction Variantを作成し、トラフィックをルーティングすることで実現できます。

※上記ガイドより引用

Production Variantはエンドポイントがモデルをホストする際にインスタンスサイズやモデルなどを定義するものです。endpoint設定でVariantを指定し、エンドポイントをデプロイすることができます。また、endpoint_from_production_variantsでVariantから直接エンドポイントを作成することもできます。

なゆゆなゆゆ

シングルモデルエンドポイントでのA/Bテストの例

以下のガイドなどで紹介されています。

あらかじめ訓練しておいたモデルから異なるバリアントを作成し、endpoint_from_production_variantsで同じエンドポイントに異なるモデルをデプロイします。

https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_endpoints/a_b_testing/a_b_testing.html

initial_weightを設定することで、バリアント間にルーティングされるトラフィックの比率をコントロールできることが記載されています。

また、invoke_endpointTargetVariantで対象となるバリアント名を指定し、特定のバリアントを呼び出すこともできます。

なゆゆなゆゆ

マルチモデルエンドポイントでのA/Bテスト

これについては情報がみつかりませんでした。シングルモデルエンドポイントと同じようにバリアントを複数作成し、A/Bテストを実施したいモデルのみ異なるモデルを紐づけてデプロイするものと思われます。

なゆゆなゆゆ

ちなみにML-DarkのシリーズはYoutube動画がとても工夫されており、かっこいいなーと思いました。(おしゃれな感じに仕上がっています)

https://www.youtube.com/watch?v=eapwYF7ARBk

PDFはたびたび拝見していますが、動画を未試聴の方はぜひみてみてください。

このスクラップは6ヶ月前にクローズされました