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 demoコマンドでMLflow 3 GenAI機能を1分で体験する

0
Posted at

はじめに

MLflow 3はGenAI向けの機能が大幅に強化され、トレーシング、LLM Judge評価、プロンプト管理、セッション管理など、LLMOpsに必要な機能が一通り揃いました。しかし、これだけ機能が増えると「まず何から触ればいいのか」が分かりにくいのも事実です。

MLflow 3.10(2026年2月リリース)で追加されたmlflow demoコマンドは、この問題をシンプルに解決してくれます。コマンド一発で、デモデータが事前投入されたMLflow環境が立ち上がり、GenAI機能の全体像をコードを書くことなく体験できます。

この記事では、mlflow demoで起動したデモ環境を使って、MLflow 3のGenAI機能をウォークスルーします。

セットアップ

仮想環境の作成とインストール

MLflow 3.xはPython 3.10以上が必要です。ただし、Python 3.14では一部の依存パッケージがまだ対応していないため、3.12または3.13の利用を推奨します。

python --version  # 3.10〜3.13であること

mlflow[genai]はLiteLLMなど依存パッケージが多いため、仮想環境の利用を推奨します。

python -m venv .venv
source .venv/bin/activate  # Windowsの場合: .venv\Scripts\activate
pip install "mlflow[genai]>=3.10"

uvを使う場合は、Pythonバージョンを明示的に指定できるので便利です。

uv venv --python 3.12
source .venv/bin/activate
uv pip install "mlflow[genai]>=3.10"

企業ネットワーク等でSSL証明書エラーが出る場合は--native-tlsを付けてください。

uv pip install --native-tls "mlflow[genai]>=3.10"

LiteLLMサプライチェーン攻撃に関する注意

mlflow[genai]はtransitive dependencyとしてLiteLLMを含みます。2026年3月24日、LiteLLMのPyPIパッケージがサプライチェーン攻撃を受け、バージョン1.82.7および1.82.8にクレデンシャルスティーラーが仕込まれる事件が発生しました(該当バージョンはPyPIから削除済み)。

インストール後、以下を確認してください。

# インストールされたLiteLLMのバージョン確認
pip show litellm | grep Version

# 悪意あるファイルの有無を確認
find .venv -name "litellm_init.pth" 2>/dev/null

バージョン1.82.7/1.82.8がインストールされている場合、またはlitellm_init.pthが見つかった場合は、環境を破棄し、関連するクレデンシャルをすべてローテーションしてください。詳細はLiteLLM公式のセキュリティアップデートを参照してください。

デモの起動

ターミナルで以下を実行するだけです。

mlflow demo

これだけで以下が自動的に行われます。

  • ./mlflow-demo/ディレクトリにSQLiteデータベースとファイルベースのアーティファクトストアが作成される
  • デモ用のexperimentとサンプルデータ(トレース、評価結果、プロンプトなど)が生成される
  • ブラウザが自動で開き、デモexperimentが表示される

Screenshot 2026-03-30 at 10.12.29.png
Screenshot 2026-03-30 at 10.13.03.png

データは永続化されるため、再起動しても消えません。データを作り直したい場合は--refreshオプションを使います。

mlflow demo --refresh

既に起動済みのMLflowサーバーにデモデータを投入したい場合は、--tracking-uriを指定します。

mlflow demo --tracking-uri http://localhost:5000

デモデータで巡るMLflow 3 GenAI機能

デモ環境が立ち上がったら、MLflow UIでGenAI機能を順に見ていきましょう。MLflow 3.10ではナビゲーションバーがリデザインされ、GenAIアプリ/エージェント開発向けとクラシックML向けのタブが明確に分離されました。

Screenshot 2026-03-30 at 10.14.37.png

Tracesタブ

Tracesタブには、LLMアプリケーションの実行トレースが一覧表示されます。各トレースをクリックすると、スパンのツリー構造、各スパンの入出力、レイテンシが確認できます。

Screenshot 2026-03-30 at 10.15.08.png

MLflow 3.10の新機能として、LLMスパンからモデル情報が自動抽出され、コストが計算・表示されるようになりました。トレースビュー内で各スパンのトークン使用量とコスト(USD)が直接確認できます。

Screenshot 2026-03-30 at 10.15.49.png

== Total token usage: ==
 Input tokens: 84
 Output tokens: 22
 Total tokens: 106

== Total cost (USD): ==
 Input cost: $0.000013
 Output cost: $0.000013
 Total cost: $0.000026

コスト計算はLiteLLMベースで行われ、主要なLLMプロバイダーのモデルに対応しています。自動計算が効かない場合は、手動でコスト情報を設定することも可能です。

import mlflow

@mlflow.trace
def my_llm_call():
    span = mlflow.get_current_active_span()
    # LLM呼び出しロジック...

    # トークン使用量を手動設定
    span.set_attribute(
        "mlflow.chat.tokenUsage",
        {
            "input_tokens": 100,
            "output_tokens": 50,
            "total_tokens": 150,
        },
    )
    # コストを手動設定(USD)
    span.set_attribute(
        "mlflow.llm.cost",
        {
            "input_cost": 0.0001,
            "output_cost": 0.0002,
            "total_cost": 0.0003,
        },
    )
    return "response"

Sessionsタブ

Sessionsタブでは、マルチターン会話がセッションIDでグルーピングされ、会話単位で品質を確認できます。個々のターンではなく、会話全体の流れを俯瞰するのに便利です。

Screenshot 2026-03-30 at 10.17.01.png
Screenshot 2026-03-30 at 10.17.20.png

MLflow 3.10では、セッションレベルの比較UIも追加されており、ゴールやペルソナ別にシミュレーション結果を並べて比較できます。

Evaluationタブ

Evaluationタブには、LLM Judgeによる評価結果が表示されます。デモデータには事前に評価が実行された結果が含まれているので、評価のワークフローを体感できます。

Screenshot 2026-03-30 at 10.17.52.png

MLflow 3では、開発時と本番で同じscorerを使い回せる設計になっており、評価の一貫性が保たれます。ビルトインscorerとしては以下のようなものが用意されています。

  • ConversationCompleteness: ユーザーの質問が会話の終わりまでに完全に回答されたか
  • UserFrustration: ユーザーがフラストレーションを感じていないか
  • RetrievalGroundedness: 回答が取得されたドキュメントに基づいているか
  • Safety: 有害なコンテンツが含まれていないか

Promptsタブ

Promptsタブでは、プロンプトのバージョン管理が確認できます。MLflow 3のPrompt Registryにより、プロンプトテンプレートをバージョニングし、どのトレースがどのバージョンのプロンプトで生成されたかを追跡できます。

Screenshot 2026-03-30 at 10.18.25.png

MLflow 3.8以降では、プロンプトにモデル設定(Prompt Model Configuration)を紐づけることも可能になり、再現性がさらに向上しています。

Overviewタブ

Overviewタブは、GenAI experimentの全体サマリーを提供するダッシュボードです。以下のようなチャートが自動生成されます。

  • レイテンシの推移
  • リクエスト数の推移
  • コストの集計と内訳(3.10新機能)
  • ツールコールのサマリー

手動でダッシュボードを構築する必要がなく、トレースデータから自動でチャートが生成される点が便利です。

Screenshot 2026-03-30 at 10.13.47.png

UIからノーコードでLLM Judgeを実行する

MLflow 3.10のもう一つの注目機能が、UIからのノーコードLLM Judge実行です。

TracesタブやSessionsタブから、特定のトレースを選択し、ビルトインまたはカスタムのLLM Judgeをコードなしで直接実行できます。Python SDKに切り替えることなく、UI上で素早く品質評価を試せます。

Screenshot 2026-03-30 at 10.22.48.png

この機能を使うには、事前にAI Gatewayエンドポイントのセットアップが必要です。Judge実行時にエンドポイントを選択する形になります。

またCLIからもJudgeの登録が可能です。

mlflow scorers register-llm-judge \
  -n quality_judge \
  -i "Evaluate if {{ outputs }} answers {{ inputs }}. Return yes or no." \
  -x <experiment_id>

AI Gatewayの使用量トラッキング

mlflow demoの体験と合わせて触れておきたいのが、MLflow 3.10で追加されたAI Gatewayの使用量トラッキング機能です。

AI Gatewayエンドポイントの設定画面で「Enable usage tracking」トグルを有効にすると、新しい「Usage」タブにリクエストパターンやメトリクスが表示されます。ゲートウェイの呼び出しがexperimentのトレースにリンクされ、エンドツーエンドのAI Observabilityが実現できます。

Databricks環境では、AI Gateway(Beta)のsystem.ai_gateway.usageシステムテーブルにリクエスト/レスポンスの詳細が自動キャプチャされ、ビルトインダッシュボードでトークン消費量、レイテンシ、エラーレートなどを可視化できます。

まとめ

mlflow demoコマンドは、MLflow 3のGenAI機能を手軽に体験するための最速の入口です。

  • コード不要: デモデータが事前投入されるため、自前のLLMアプリがなくても機能を体験できる
  • 永続化: ./mlflow-demo/にデータが保存され、再起動しても消えない
  • 全機能カバー: トレーシング、評価、プロンプト管理、セッション管理、コスト追跡を一通り確認できる

チームメンバーへのMLflow 3紹介やワークショップの導入ステップとして活用できます。Databricks環境ではManaged MLflowとして同等以上の機能が利用可能で、Unity Catalogとの統合によるガバナンスやProduction Monitoringによる本番トレースの自動評価も加わります。

参考リンク

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

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?