メインコンテンツへジャンプ
Engineering blog

Databricks の MLflow モデルレジストリと CI/CD 機能で MLOps を簡素化

スー・アン・ホン
Ankit Mathur
Jules Damji
マニ・パークヘ
Share this post

 

MLflow は、実験のメトリクスやパラメータ、アーティファクトの追跡、モデルをバッチまたはリアルタイムでサービングシステムに展開する機能を提供し、組織における機械学習(ML)ライフサイクルの管理を支援します。MLflow モデルレジストリは、実験段階からデプロイメントへのハブとして、モデル展開のライフサイクルを管理する中央リポジトリを提供します。

MLOps、機械学習ライフサイクル管理において、継続的インテグレーションと継続的デプロイメント(CI/CD)のプロセスは極めて重要です。このブログでは、全ての Databricks ユーザーが利用できるタグやコメント、Webhook 通知機能など、CI/CD プロセスを円滑にする Databricks の MLflow モデルレジストリの新機能をご紹介します。AWSAzure との連携についてはそれぞれのページをご覧ください。

なお、このブログでは、Data+AI サミット 2020 で一般提供を発表した Databricks のマネージド MLflow モデルレジストリの新機能を取り上げます。マネージドソリューションが提供するエンタープライズ向けの機能については、こちらのブログ記事をご覧ください。

タグによるアノテーション

登録されたモデルとモデルのバージョンはキーバリューのタグをサポートしており、さまざまな情報のエンコードが可能です。例えば、ユーザーはモデルの展開モード(バッチ、リアルタイムなど)を書き込むことができ、展開パイプラインでは、モデルがどのリージョンで展開されているかを示すタグを追加できます。また、タグによる検索とクエリの新機能により、フィルタリングが容易になり、タスクに重要なモデルを特定できます。

タグの追加、変更、削除は、モデルとモデルのバージョンのページ、または MLflow API から実行できます。

モデルのバージョンへのコメント追加

モデルレジストリの最新リリースでは、モデルのバージョンに対してフリーフォームでコメントを記述できます。展開プロセスでは、モデルの本番化、失敗原因の検証、モデル精度の確認、メトリクス、パラメータ、スキーマの再評価などの実施について、ML エンジニア間で徹底的な議論が展開されます。コメント追加機能を利用することで、モデル展開プロセスで生じた議論を 1 か所で把握できるようになります。

さらに、組織において展開プロセスを自動化する場合、モデルの展開に関する情報がさまざまなプラットフォームに分散する可能性があります。コメントを利用することで、外部の CI/CD パイプラインは、テスト結果、エラーメッセージ、その他の通知などの情報をモデルレジストリに直接ポストできます。また、Webhook を併用して、特定のコメントをトリガーとして CI/CD パイプラインを設定できます。

コメントの作成や変更は、UI または REST API インターフェースから行うことができます。

Webhook による通知

Webhook とは、イベントが発生した際に、HTTP リクエストを介してアクションを呼び出す一般的なメカニズムです。モデルレジストリの Webhook により、テストや展開パイプラインの実行、任意のプラットフォームから通知を送信するプッシュメカニズムの提供が可能になり、CI/CD プロセスを円滑に実行できます。モデルレジストリの Webhook は、新たなモデルバージョンの作成、新規コメントの追加、モデルバージョンのステージ遷移などによって起動します。

例えば、新規のモデルバージョンが作成された場合、組織は Webhook を利用して自動的にテストを実行し、結果をレポートできます。ユーザーがモデルの本番環境への移行をリクエストすると、Slack のようなメッセージングサービスに関連付けられた Webhook が、MLOps チームのメンバーに自動的に通知します。ステージ遷移が承認されると、他の Webhook が自動的に展開パイプラインを起動します。

なお、この Webhook 通知機能は、2020 年 11 月時点ではプライベートプレビューで提供されています。CI/CD 統合において中心的な役割を持つ Webhook の詳しい利用方法については、後日公開される予定です。

監査ログによるイベントのモニタリング

MLOps で重要なのは、本番環境で問題やイベント、ログをモニタリングし、監査することです。Databricks の監査ログまたは診断ログ(AWSAzure)は、管理者に一元管理の手段を提供し、プラットフォーム上のアクティビティの理解、管理を可能にします。ワークスペースで監査ログを有効化すると、コメントや Webhook など、モデルのレジストリイベント(AWSAzure)が自動的にログ記録されます。

モデルレジストリを使ってみる

Webhook 通知やイベントのモニタリングといった機能の実際の動作を下記の動画「Taking Machine Learning to Production with New Features in MLflow」(MLflow の新機能で機械学習を本番環境へ)で解説しています。
※Data+AI Summit 2022 の講演内容をオンデマンドで配信しています。こちらをご覧ください。

MLflow モデルレジストリの利用にあたっては、各環境での利用についての資料(AWSAzure)を参照してください。サンプルノートブック(AWSAzure)もご利用いただけます。

MLflow を初めてご利用になる場合は、オープンソースの MLflow のクイックスタートをご覧ください。また、 Databricks のマネージド MLflow では実運用のユースケースを紹介しています。MLflow モデルレジストリの使用開始にお役立てください。