4
5

More than 1 year has passed since last update.

MLflow 2.4のデータセットトラッキングを試してみる

Posted at

データのトラッキングは、これまでにも一部サポートはされていましたが、ファイルパスとバージョンの記録に限られていました。

mlflow.log_input()によって、より直感的な形で機械学習に使用したデータをトラッキングできるようになります。これは嬉しい。

今回は機械学習は行わず、あくまでデータセットのトラッキングのみを試します。

%pip install mlflow==2.4
dbutils.library.restartPython()
import mlflow

# Deltaからデータセットをロード
dataset = mlflow.data.load_delta(table_name="takaakiyayoi_catalog.covid.covid_cases")

with mlflow.start_run():
    # MLflowランにデータセットを記録
    mlflow.log_input(dataset, context="training")
    # <モデルトレーニングのコード>

ロギングはされますが、GUIには表示されません。間も無くのアップデートで表示されるようになるでしょう。

今回は、プログラムからアクセスします。

# データセット情報を含むランの取得
run = mlflow.get_run(mlflow.last_active_run().info.run_id)
dataset_info = run.inputs.dataset_inputs[0].dataset

print(f"Dataset name: {dataset_info.name}")
print(f"Dataset digest: {dataset_info.digest}")
print(f"Dataset profile: {dataset_info.profile}")
print(f"Dataset schema: {dataset_info.schema}")

データセット情報が記録されています。Dataset nameには@v0とバージョン番号も表示されています。

Dataset name: takaakiyayoi_catalog.covid.covid_cases@v0
Dataset digest: 617ade4c
Dataset profile: {"approx_count": 23171}
Dataset schema: {"mlflow_colspec": [{"type": "string", "name": "Prefecture"}, {"type": "long", "name": "Cases"}, {"type": "datetime", "name": "date_timestamp"}, {"type": "integer", "name": "pref_no"}, {"type": "string", "name": "Area"}]}

これを使用して、データセットにアクセスすることもできます。

# ソースDeltaテーブルのデータセットのロード
dataset_source = mlflow.data.get_source(dataset_info)

source_df = dataset_source.load()
display(source_df)

Screenshot 2023-06-10 at 17.04.35.png

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

4
5
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
4
5