三菱電機の情報技術総合研究所で、MLOpsを勉強中のAIエンジニアです。
今回は、MLOpsに関連して、mlops系で有名なOSSであるmlflowに関連しての情報発信です。
MLOpsとしてMLシステムの運用負荷を低減させようとしているのに、
mlflowを使おうとすると専用のmlflowサーバの立ち上げ&継続的運用が必要になる、という課題観からの記事です。
TL;DR
Azure Databricksのmlflowは
- 無料かつセルフホスト不要: Databricksではmlflowを使うためのmlflow Tracking サーバーが標準搭載&無料。
- Azureの契約で完結:DatabricksはAzure環境であればAzure Databricksとして1st パーティ サービスとして提供されており、追加契約なしで即利用
- オンプレ PC からも記録可能:アクセストークン設定だけでオンプレ環境から実験ログを送信
mlflowとは
MLflow はMLOps系で最もGithub Star数が多いOSS。MLflowは、機械学習のライフサイクル(実験管理・モデル管理・デプロイ)を支援するオープンソースのMLOpsツール。MLflow Trackingは、MLflowのコア機能の一つで、学習パラメータ・評価指標・モデルファイルなどを自動記録・可視化・検索できる実験管理機能。最近ではLLMOps系の機能(トレース、評価、プロンプトエンジニアリングなど)も強化されてきている。
Databricksとは
DatabricksとはApache Sparkの開発者が創業した、ビッグデータとAIの統合プラットフォーム。クラウド上でデータ分析・機械学習・データエンジニアリングを一元的に実行できる。
Azure Databricks は Microsoft 提供の 1st パーティ SaaS で、Azure Portal から数クリックでDatabricks環境の構築が可能(1st パーティ SaaSの他の有名どころだとAzure OpenAIなど)
ちなみに AWS 版 Databricks は 3rd パーティ SaaS扱いで、Marketplace経由などでDatabricksと別途契約が必要
環境構築
-
ワークスペース作成
Azure Portal → リソースの作成 →Databricks
→ 必須項目を入力 → 作成(5〜10 分)。
-
Databricksワークスペースにアクセスしエクスペリメントを作成
ここではあえて「GenAIアプリとエージェント」を選択(通常のML開発でも)
任意の名称のエクスペリメントを作成
「GenAIアプリとエージェント」経由でエクスペリメントを作成すると「手順を表示」がでてくる
APIキー(トークン)を発行し、オンプレからクラウドに接続するための情報をコピーする
(最初に「GenAIアプリとエージェント」を選択すると接続のための情報がまとまってでてくる)
オンプレから Databricks MLflow サーバーへ実験記録
以下をオンプレ環境から実行
import os
import mlflow
# ▶︎ Databricks ワークスペース情報を環境変数で注入
os.environ["DATABRICKS_TOKEN"] = "dap********************73"
os.environ["DATABRICKS_HOST"] = "https://adb-*************.6.azuredatabricks.net"
os.environ["MLFLOW_TRACKING_URI"] = "databricks"
os.environ["MLFLOW_REGISTRY_URI"] = "databricks-uc"
os.environ["MLFLOW_EXPERIMENT_ID"] = "28************574"
# ▶︎ 実験と Run を開始
with mlflow.start_run(run_name="from_on_pre"):
mlflow.log_param("max_depth", 6)
mlflow.log_metric("rmse", 0.42)
実行すると以下のようなURLが表示されるのでそこにアクセスすると
🏃 View run from_on_pre at: https://adb-293******6.6.azuredatabricks.net/ml/experiments/287******9578/runs/1bb******449c5dcf01
オンプレ環境からクラウド上のmlflowサーバに記録されている!
まとめ
- Azure 契約だけで MLflowサーバーを無料利用
- ※参考: AWS Sagemakerのmlflowサーバは、$0.789/hour@東京(https://aws.amazon.com/jp/sagemaker-ai/pricing/)
- MLOpsとして運用負荷を低減させようとしているのに、mlflowサーバの運用が必要になるという矛盾から解放
- [重要]恩恵を受けた分はDatabricksの計算リソースを使ってDatabricksに還元しましょう!
最終更新:2025‑07‑04 — 仕様や価格は変わる場合があります。最新情報は公式ドキュメントをご確認ください。