機能概要
モデル実験は、WeDataがモデル生産におけるプロセス管理と実験の再現性を実現するための重要なモジュールの一つであり、以下の主要機能をサポートします:
実験/実行プロセスにおける主要情報の報告、保存、管理、閲覧をサポートします。これには、実験/実行名、モデルファイル、コードパッケージ、ハイパーパラメータ、環境、データセット/特徴量、モデルトレーニング指標、作成時間などが含まれます。
実験/実行間の主要情報の比較をサポートします。
バージョン管理と関連関係の記録をサポートし、情報の遡及と問題の特定を容易にします。
WeDataのモデル実験モジュールは、業界で主流のMLFlowツールキットに基づいて実装されています。プロセス管理と実験の再現性を実現する大まかなフローと各モジュールの機能は以下の通りです。
必要な説明
タイプ | 説明 |
エンジンサポート | DLC標準エンジン モデルトレーニング、モデル実験レポート、特徴量管理、モデル登録などの操作に使用できます。 注意:DLCエンジンでリソースグループを作成する際に「wedata-data-science」イメージを選択した場合のみ、AutoML実験に使用できます。 EMR on CVM、EMR on TKE(EGコンポーネントを含める必要があります。含めない場合、WeDataで使用できません) モデルトレーニング、モデル実験レポート、特徴量管理、モデル登録などの操作に使用できます。 注意:AutoML実験には使用できません。 EMR:Ray on TKE(EGコンポーネントを含める必要があります。含めない場合、WeDataで使用できません) モデルトレーニング、モデル実験レポート、モデル登録などの操作に使用できます。 注意:AutoML実験、特徴量処理には使用できません。 |
MLflow バージョン | WeDataの実験管理はデフォルトでMLflowの2.17.2バージョンと互換性があります。関連イメージは事前にインストールされています。Studio実行環境に接続後、コマンドを実行して確認できます: |
テーブル操作権限 | DLC: Catalogを有効にした場合: DLCの「DLC > システム管理 > ユーザーと権限管理」で、ユーザーに対応するデータベースとテーブルの権限を付与する必要があります。 また、WeDataの「データ資産 > Catalogディレクトリ > 対応するCatalog > 権限」でユーザーに権限を付与します。 Catalogを有効にしていない場合: DLCの「DLC > システム管理 > ユーザーと権限管理」で、ユーザーに対応するデータベースとテーブルの権限を付与するだけで済みます。 EMR: WeDataの「プロジェクト管理 > ストレージとコンピューティングエンジンの設定」でエンジンアクセスアカウントとアカウントマッピングを設定し、データベースとテーブルへのアクセス権限を決定します。 |
モデル操作権限 | DLC: Catalogを有効にした場合: WeDataの「データ資産 > Catalogディレクトリ > 対応するモデルCatalog > 権限」でユーザーに権限を付与する必要があります。 Catalogを有効にしていない場合: 認可は不要です。 EMR: 認可は不要です。 |
特徴量エンジニアリングパッケージ | エンジンに接続後、以下のコマンドを実行すると、最新の特徴量エンジニアリングパッケージをインストールできます: %pip install tencent-wedata-feature-engineering
DLCエンジンを使用する場合、リソースグループを構築する際に「wedata-data-science」イメージを選択してください。特徴量エンジニアリングパッケージはすでにプリインストールされています。コマンドを実行してバージョンを確認できます: %pip list | grep tencent-wedata-feature-engineering
|
環境変数設定 | DLC: Catalogを有効にした場合、追加設定は不要です。 Catalogを有効にしていない場合、環境変数を設定する必要があります。設定しないと、実験およびモデルの報告でエラーが発生する可能性があります: import os os.environ["MLFLOW_REGISTRY_URI"] = ""
EMR: 環境変数を設定する必要があります。設定しないと、実験およびモデルの報告でエラーが発生する可能性があります: import os os.environ["MLFLOW_REGISTRY_URI"] = ""
|
操作手順
実験リスト
1. 「モデル実験」機能メニューをクリックして入ります。
2. ホームページに新規作成実験および実験リストが表示されます。
新規実験の作成
1. 現在のページで「機械学習実験の新規作成」ボタンをクリックして新規作成できます。
2. 機械学習実験の新規作成をクリックし、ポップアップウィンドウ内で実験名を入力すると作成できます。
説明:
実験作成後、Studioで実験を関連付ける必要があります。関連付けることで、トレーニングタスクを関連付けた実験に登録できます。
3. トレーニングスクリプトでmlflow.create_experiment()関数を使用して実験を作成できます。例えば、実験名を「experiment_202512261509」と定義し、コードを実行すると、その実験は実験リストに表示されます。
実験詳細
1. 「実験名」をクリックすると、右側にその実験の実行リストが表示され、実行に関する情報も表示されます。これには、実行名、実行状態、実験名、作成時間、実行時間、データセット、コードソースファイル、登録モデルなどが含まれます。
2. 現在のリストでコードソースファイルと登録モデルをクリックすると、Studioおよびモデル詳細ページに移動して確認できます。
3. 操作列で実行タスクを削除することもできます。
4. 実行タスクのチャートビューを実行します。
実行タスクのモデル指標情報を表示し、クリックをサポートして、その実行タスクの棒グラフを表示または非表示にします。上部ではグラフ名とパラメータのグローバル検索をサポートします。
右上隅では、ダウンロード(デフォルトはPNGファイル)と全画面表示をサポートしています。
説明:
実行タスク数が10を超える場合、閲覧エクスペリエンスを確保するため、デフォルトでは順番に最初の10個の実行タスクを表示し、それを超える実行タスクは自動的に非表示になります。
5. 実行タスクを比較します。
6. 複数選択ボックスでタスクを選択し、実行タスク比較ボタンをクリックすると、実行タスクのパラメータと指標を比較できます。実験の実行タスクを詳細に比較し、最終的に最適なものを選択して適用できます。
数値比較では、選択した実行タスクの詳細、パラメータ、指標のデータ比較ビューを表示します。
平行座標系:
散布図:
箱ひげ図:
グラフ比較では、平行座標系、散布図、箱ひげ図の3種類の可視化グラフを選択できます。X軸とY軸は、お客様のシナリオに応じてカスタマイズできます。
実行詳細
1. 実行詳細を表示します。
「実行名」をクリックすると、実行詳細画面に入ります。デフォルトでは概要ページが表示され、内容は以下の通りです:
含まれる内容:
実行の主要情報:作成時間、作成者、実験ID、実行状態、実行ID、実行時間、データセット、Tag、コード、ベースモデル、登録済みモデル。
ハイパーパラメータ:モデルトレーニング中のハイパーパラメータであり、この例では重みなどです。
モデル指標:モデルトレーニング中に報告された指標(トレーニングテストセットまたはトレーニング検証セットに基づく)です。
2. モデル指標を表示します。
Model Metricsをクリックすると、モデル指標を表示できます。この機能は、正確率、適合率、再現率などのモデルの性能指標の記録と評価をサポートします。これらの指標は、モデルのパフォーマンスを理解し、比較するのに役立ちます。
トレーニングスクリプトでmlflow.log_metric()関数を使用してモデルの性能指標を記録できます。例:
import mlflow
from sklearn.metrics import accuracy_score, precision_score, recall_score
y_true = [...]
y_pred = [...]
with mlflow.start_run():
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
mlflow.log_metric("accuracy", accuracy)
mlflow.log_metric("precision", precision)
mlflow.log_metric("recall", recall)
...
3. システム指標を表示します。
System Metricsは、モデルトレーニング中のシステム性能指標(CPU使用率、メモリ使用状況など)の監視と記録に使用されます。これらの指標は、モデルトレーニングのリソース消費状況の把握に役立ちます。MLFlowがデフォルトで記録するシステム指標は以下の通りです:
cpu_utilization_percentage
system_memory_usage_megabytes
system_memory_usage_percentage
network_receive_megabytes
network_transmit_megabytes
disk_usage_megabytes
disk_available_megabytes
トレーニングスクリプトでは、3つの方法でシステム性能指標を記録できます。例:
import mlflow
import psutil
import os
os.environ["MLFLOW_ENABLE_SYSTEM_METRICS_LOGGING"] = "true"
mlflow.enable_system_metrics_logging()
with mlflow.start_run(log_system_metrics=True):
...
4. モデルファイルを表示します。
Artifactsは、モデルに関連するファイルを指します。例えば、モデルファイル、グラフ、データセット、ログファイルなどです。
以下の図の例は、今回の実行で生成されたモデルファイルです。モデルのパス、入力および出力メタデータ、デバッグ実行のコード例が含まれます。また、クリックしてモデル管理に移動し、公開されたモデルを表示することもできます。