0Pricing
MLOps Academy · レッスン

モデルバージョン間でトラフィックを分割する

リクエストの一部をチャレンジャーモデルに振り分けます。

「モデルバージョン間でトラフィックを分割する」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。

2つのモデルを本番でテストする

新しいモデルの方が優れていると考えています。推測で決める代わりに、実際のトラフィックに判断を委ねます。A/Bテストでは、実際のユーザーに対して両方のモデルを並行して実行します。🔬

チャンピオンとチャレンジャー

本番環境で現在使われているモデルがchampionです。性能を証明したい新しい候補モデルがchallengerです。テストでは、challengerが本当にchampionを上回るかを確認します。

トラフィックを分割する

基本的な考え方は単純です。リクエストの一部を各モデルに送ります。最初は90/10とすることが多く、大半のユーザーをchampionで安全に処理しながら、challengerの性能を検証します。

小さなルーター

基本的な分割では、リクエストごとに乱数を生成し、境界値によって振り分けます。ここではトラフィックの10%がchallengerに到達します。

import random

def pick_model(challenger_share=0.1):
    return "challenger" if random.random() < challenger_share else "champion"

各ユーザーの割り当てを一貫させる

リクエストごとにランダムに振り分けると、ユーザーは訪問のたびにモデル間を行き来します。代わりにユーザーIDをハッシュ化し、同じユーザーが常に同じモデルに割り当てられるようにします。

固定的な分割にハッシュを使う

ユーザーIDをハッシュ化すると、安定したバケットが得られます。同じIDは毎回同じモデルに対応するため、テストの条件を保てます。

import hashlib

def bucket(user_id, challenger_share=0.1):
    h = int(hashlib.md5(user_id.encode()).hexdigest(), 16)
    return "challenger" if (h % 100) < challenger_share * 100 else "champion"

どのモデルが処理したか記録する

予測ごとに、どのモデルが処理したかを記録します。この割り当てログがなければ、後から2つのグループを公平に比較することはできません。📝

小さく始めてから拡大する

リスクを抑えるため、最初はchallengerの割合を小さくします。確信が高まったら、全員を一度に切り替えるのではなく、割合を徐々に増やします。

設定で分割を制御する

割合をハードコードすると、変更のたびに再デプロイが必要になります。分割比率を設定から読み込めば、コードをリリースせずにトラフィックを増減できます。

同じ入力で公平に比較する

両方のモデルには、同じ種類のリクエストと同じ特徴量を渡す必要があります。対象グループの利用者層が異なると、見つかった勝者は見かけだけかもしれません。

ルーティングにすぎません

A/Bテストの本質は、ルーティング層と慎重なログ記録です。振り分けを固定して記録できれば、信頼できる比較の基盤が整います。✅

クイックチェック

振り分けを正しく保つ方法を確認しましょう。

まとめ

A/Bテストでは、ライブトラフィックを分割してchampionとchallengerを競わせます。ユーザーをハッシュして固定バケットに振り分け、すべての割り当てを記録し、少ない規模から始めます。🎯

よくある質問

「モデルバージョン間でトラフィックを分割する」レッスンは無料ですか?

はい。「モデルバージョン間でトラフィックを分割する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。

「モデルバージョン間でトラフィックを分割する」で何を学びますか?

リクエストの一部をチャレンジャーモデルに振り分けます。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

MLOps Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「モデルバージョン間でトラフィックを分割する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMLOps Academyレッスンでコードを書いて実行できますか?

はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. モデルバージョン間でトラフィックを分割する
  2. 重要なメトリクスを選ぶ
  3. 統計的有意性を正しく読み取る
  4. 勝者を昇格またはロールバックする
← MLOps Academyに戻る