コンテンツにスキップ

MLOps Desktopの使い方

このページは、日常的に使うための操作マニュアルです。何をクリックし、どこを確認し、実行後に何を判断するかを順番に説明します。

MLOps Desktopは、CSVをもとにscikit-learnモデルをローカルで繰り返し学習したいときに便利です。すべてのノートブックや本番基盤を置き換えるものではありません。データ読み込み、学習、評価、比較、説明、エクスポート、配信というよくある作業を1か所で進めるためのアプリです。

多くのパイプラインは、次の形から始めます。

DataLoader → DataSplit → Trainer → Evaluator

必要になったときだけ、次の機能を足します。

Trainer → Model Exporter
Trainer/Evaluator → Explainability、Runs、Models、Servingパネル

迷ったら、次の表を目安にしてください。

やりたいことまず使うもの
CSVからモデルを学習するDataLoader → DataSplit → Trainer → Evaluator
設定を変えて試すTrainerを変更し、再実行してRunsで比較する
複数の設定をまとめて探すTrainerTuneにして、Trialsを見る
モデルの判断理由を確認するMetricsの実行結果からExplainを実行する
モデルファイルを保存するTrainerの後ろにModel Exporterを追加する
HTTP予測APIを試すServingとプレイグラウンドを使う

ノードを作る前に、データファイルを一度確認します。

  • 予測したいターゲット列が存在し、選択する予定の名前と完全に一致している。
  • 1行目がヘッダーになっている。
  • 欠損値が想定内で、エクスポートミスではない。
  • ID、自由記述、ユニーク値が多すぎる列を、使うか削除するか決めている。

2. データを読み込んで確認する

Section titled “2. データを読み込んで確認する”
  1. キャンバスにDataLoaderノードを追加します。
  2. ノードを選択し、CSVファイルを選びます。
  3. ファイルが読み込めるかだけ確認したい場合は、データノードだけで一度実行します。
  4. Data Profileタブを開き、行数、列名、型、欠損値を確認します。

プロフィール表示がおかしい場合は、モデルノードを追加する前にCSVを直します。列名のズレや空の列は、この段階で見つけるのが一番楽です。

DataLoaderTrainerの間にDataSplitを置くと、訓練データと評価データの境界が分かりやすくなります。

最初の設定例:

設定最初の値メモ
Test split0.220%を評価用に使う
Random state42実行結果を比較しやすくする
Stratify columnターゲット列分類でクラスの偏りがあるときに使う

データが少ない場合、テスト比率が大きすぎると学習データが足りなくなります。メトリクスが不安定なときは、分割比率を小さくするか、チューニング時に交差検証を使います。

4. 最初のベースラインを学習する

Section titled “4. 最初のベースラインを学習する”

DataSplitの後ろにTrainerを接続し、次のように設定します。

設定分類の最初の候補回帰の最初の候補
Model typeRandom Forest ClassifierRandom Forest Regressor
Target column予測したいラベル列予測したい数値列
ModeTrainTrain

実行したら、Logsタブを確認します。最初の実行で大事なのは最高スコアを出すことではありません。データ、ターゲット、モデル設定が最後まで動くことを確認することです。

Trainerの後ろにEvaluatorを追加し、もう一度実行してMetricsタブを確認します。

分類では次を見ます。

  • Accuracy: 全体の正解率をざっくり見る。
  • PrecisionRecallF1: 偽陽性や偽陰性が重要なときに見る。
  • 混同行列: どのクラスを間違えているかを見る。

回帰では次を見ます。

  • : 全体の当てはまりを見る。
  • RMSE: 大きな誤差を重く見たいときに使う。
  • MAE: ターゲットと同じ単位で平均的な誤差を見たいときに使う。

6. 1回のスコアだけで判断しない

Section titled “6. 1回のスコアだけで判断しない”

実行結果はRunsパネルに保存されます。次のような確認に使います。

質問比較するもの
新しいモデルは改善したか同じデータ、同じ分割、別のモデルタイプ
チューニングは効いたかベースライン実行とチューニング後の実行
スコアは安定しているか同じ設定での複数回実行、または交差検証
残す価値があるモデルかメトリクス、メモ、タグ、説明結果

重要な変更をした実行には、baselinerf-depth-10tunedremoved-id-columnsのようなメモやタグを付けておくと後で見返しやすくなります。

7. 安定してからチューニングする

Section titled “7. 安定してからチューニングする”

ベースラインが動く状態になってから、TrainerTuneモードに切り替えます。

最初は小さめに始めます。

設定実用的な開始値
Search strategyBayesian / TPE
Trials2050
CV folds3
Metric分類ならaccuracyまたはf1、回帰ならr2

実行中はTrialsタブを確認します。遅い場合は、試行回数、CV folds、またはモデルの重さを先に下げます。

8. 必要なときにモデルを説明する

Section titled “8. 必要なときにモデルを説明する”

評価実行の後、メトリクス画面からExplainを実行すると説明用の出力を作れます。

見るポイント:

  • Feature importance: どの列が効いているか。
  • SHAP: 各特徴量が予測を上げる方向か下げる方向か。
  • Partial dependence plot: 1つの特徴量を変えたときに予測がどう変わるか。

説明結果は、明らかな問題を見つけるのに役立ちます。customer_idrow_numberのようなID列が上位に出ている場合は、データに戻って削除を検討してください。

9. 信頼できるモデルだけをエクスポートまたは配信する

Section titled “9. 信頼できるモデルだけをエクスポートまたは配信する”

残す価値があるモデルになったら、次に進みます。

  • Modelsパネルでバージョンを登録し、比較する。
  • 用途がはっきりしたモデルだけStagingProductionArchivedへ昇格する。
  • .joblib、pickle、ONNX、CoreMLが必要な場合はModel Exporterを追加する。
  • 別アプリにつなぐ前に、ServingとプレイグラウンドでローカルHTTP予測を試す。

モデルファイルとメタデータは一緒に管理してください。特徴量の順番やパッケージのバージョンが変わると、後で読み込めなかったり、誤った予測になることがあります。

次の順番で確認します。

  1. Logsタブ — 最後の行だけでなく、最初に出た本当のエラーを読む。
  2. Pythonパス — アプリが、パッケージを入れたPythonを使っているか確認する。
  3. パッケージ — scikit-learnpandasoptunashapなど不足しているものを入れる。
  4. CSV列 — ターゲット列や特徴量列の名前が完全一致しているか確認する。
  5. モデル選択 — 分類ラベルには分類モデル、数値ターゲットには回帰モデルを使う。
  6. データ量 — 分割後も十分な行数が残っているか確認する。

解決できない場合は、Logsのエラーをコピーしてトラブルシューティングと照らし合わせてください。

結果を共有する前のチェックリスト

Section titled “結果を共有する前のチェックリスト”
  • 保存したパイプラインを読み込める。
  • CSVパスを変えずに同じ実行を再現できる。
  • メトリクスがホールドアウト分割または交差検証に基づいている。
  • ターゲット列が正しい。
  • 明らかなリーク列を削除している。
  • 重要な実行にメモまたはタグがある。
  • 外部で使うモデルには、メタデータとエクスポート先がある。