モデルバージョン間でトラフィックを分割する
リクエストの一部をチャレンジャーモデルに振り分けます。
「モデルバージョン間でトラフィックを分割する」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- モデルバージョン間でトラフィックを分割する
- 重要なメトリクスを選ぶ
- 統計的有意性を正しく読み取る
- 勝者を昇格またはロールバックする