0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MLflowのモデル管理を学ぼう section2: Migrating from Stages

Posted at

MLflowでは MLflow2.9.0 (December 6, 2023)から Stageを非推奨にしているようです。
Stageとは Modelの開発・テスト・本番かどうかを表すためのタグのようなものです。つまりはモデルのライフサイクル管理ですね。
https://mlflow.org/docs/latest/model-registry.html#migrating-from-stages
この件に関して全然知らなかったので、これを学んでいこうと思います。(1年以上前の変更ではありますが)
基本的に本記事は公式ドキュメントの読解と意訳的な立ち位置です。

今までのモデル管理とは

今まではモデルのライフサイクルを stageで管理してきました。
以下の画像通りですね。
スクリーンショット 2025-01-28 23.44.04.png

さらには Model version tagsと Model version aliasesも実装されており、これらを活用してモデル管理をより柔軟にできますとのことです。

スクリーンショット 2025-01-28 23.47.19.png

tagはモデル検索に利用できます。
例えば以下のコードを利用するとModel registoryに管理されているモデルのtags.validation_status = 'passed'だけ検索できます。

model_name = "IrisLinearRegressionModel"
versions = client.search_model_versions(f"name='{model_name}' and tags.validation_status = 'passed'")

また、公式ドキュメントからの抜粋ですが、 aliasは指定のモデルを呼び出す時にも便利です。
get_model_version_by_alias() client API or the model URI models:/<registered model name>@champion で呼び出すことができるので、コードはchampionに固めておいて、モデル管理だけUIからの変更やモデル管理を実現したパイプラインで変えておけば良いのでとても便利です。

(個人的にはその上で使える機能が多すぎてどう使えば良いかまだ悩みますが)

今後のモデル管理とは(Migrating models away from stages

)
一つ目と二つ目は環境(dev,staging,prod)に関して如何にモデルを分けるかが書かれていましたが、それよりも三つ目のsection、「aliasを使ってバージョン管理を推奨する。」この点が一番大切だと思ったので、これを書きたいと思います。
一番のポイントは今まで
models:/regression_model/Production でproductionモデルを読み込んでいた箇所を models:/prod.ml_team.regression_model@champion に変えようということですね。
(models:のenvは、開発環境と依存関係にあります。そして複数環境のモデルをcross environementで使う可能性があるので、自身でprefixとして prod.ml_teamとか付けてねってことみたいです。)

これは実際に触ってみてもう一つ嬉しいこともありました。今までstageは複数のモデルバージョンに対して productionを設定できてしまいました。しかしaliasは一つのモデルレジストリに対して一つのバージョンにしか設定できないようです。これは正しいより正しい管理が可能になりますね。
スクリーンショット 2025-01-29 0.12.48.png
スクリーンショット 2025-01-29 0.13.00.png

The "champion" alias is also being used on version 8. Adding it to this version will remove it from version 8.

まとめ

  • stageは無くなるのでaliasで管理しよう
  • cross environmentsに備えて prod等自分でmodel名のprefixにしてね
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?