SnowPro Advanced: MLOps Engineer 無料問題 5 / 10 ・ 分野3: Model Serving and Deployment Operations
あるモデルはエイリアスの方式を使っている。v1 には production、v2 には beta のエイリアスが付いている。本番のコードは MODEL(my_model, production)!predict を呼ぶ。v2 は確認を通った。ドキュメントに示された昇格に合う文はどれか。
- ALTER MODEL my_model SET TAG live_version = 'v2'; を実行し、ほかは何もしない
- v1・v2 の UNSET ALIAS の後、v2 で SET ALIAS = production
- v2 に SET ALIAS = production を付ける1文で済ませる
- ALTER MODEL my_model VERSION v1 UNSET ALIAS; を実行し、続けて v1 を消す
正解と解説を見る
正解: B
正解の理由
「Using aliases」の下の「Promoting subsequent versions of the model」の節には、新しいバージョンが確認を通ったら、今の本番のバージョンから production のエイリアスを外し、新しいバージョンに付けると書かれている。その SQL は、ALTER MODEL my_model VERSION v1 UNSET ALIAS、続けて beta を外すための VERSION v2 UNSET ALIAS、そして VERSION v2 SET ALIAS = production を実行する。Model Registry の概要が順番の理由を説明しており、あるエイリアスを一度に付けられるのは1つのバージョンだけである。MODEL(my_model, production) を呼ぶ本番のコードは、書き換えずに v2 を動かすようになる。
違う選択肢
「v2 に SET ALIAS = production を付ける1文で済ませる」… あるエイリアスを一度に付けられるのは1つのバージョンだけで、v1 はまだ production を持っている。ページは v2 に付ける前に、v1 からそれを外し、v2 からも beta を外している。
「ALTER MODEL my_model SET TAG live_version = 'v2'; を実行し、ほかは何もしない」… live_version のタグはタグの方式のもので、そこでは本番のコードが SYSTEM$GET_TAG でタグを読んでからバージョンを呼ぶ。このコードは production のエイリアスでモデルを呼んでいるので、タグを付けても動くものは変わらない。
「ALTER MODEL my_model VERSION v1 UNSET ALIAS; を実行し、続けて v1 を消す」… v1 のエイリアスを外すのは最初の段だが、v1 を消しても本番は v2 に移らない。エイリアスはどのバージョンも指さなくなり、本番の呼び出しは動かすものが無くなる。ページは戻せるよう古いバージョンを残してもいる。
コードではなくラベルを動かす
エイリアスを使えば、alpha・beta・production のようにすべての段に名前を付け、ラベルを動かして昇格させられる。3つの文はまとめてスクリプトにし、production のエイリアスを外してから付けるまでの間をできるだけ短くし、v2 の具合が悪ければ同じスクリプトで戻せるようにする。