1
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?

Databricksのmlflowトラッキングサーバをオンプレから利用する

Posted at

三菱電機の情報技術総合研究所で、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と別途契約が必要

環境構築

  1. ワークスペース作成
    Azure Portal → リソースの作成Databricks → 必須項目を入力 → 作成(5〜10 分)。
    image.png

  2. Databricksワークスペースにアクセスしエクスペリメントを作成
    ここではあえて「GenAIアプリとエージェント」を選択(通常のML開発でも)
    image.png
    任意の名称のエクスペリメントを作成
    image.png
    「GenAIアプリとエージェント」経由でエクスペリメントを作成すると「手順を表示」がでてくる
    image.png
    APIキー(トークン)を発行し、オンプレからクラウドに接続するための情報をコピーする
    (最初に「GenAIアプリとエージェント」を選択すると接続のための情報がまとまってでてくる)
    image.png


オンプレから 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サーバに記録されている!
image.png

まとめ

  • Azure 契約だけで MLflowサーバーを無料利用
  • MLOpsとして運用負荷を低減させようとしているのに、mlflowサーバの運用が必要になるという矛盾から解放
  • [重要]恩恵を受けた分はDatabricksの計算リソースを使ってDatabricksに還元しましょう!

最終更新:2025‑07‑04 — 仕様や価格は変わる場合があります。最新情報は公式ドキュメントをご確認ください。

1
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
1
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?