MLOps Desktopの使い方
このページは、日常的に使うための操作マニュアルです。何をクリックし、どこを確認し、実行後に何を判断するかを順番に説明します。
MLOps Desktopは、CSVをもとにscikit-learnモデルをローカルで繰り返し学習したいときに便利です。すべてのノートブックや本番基盤を置き換えるものではありません。データ読み込み、学習、評価、比較、説明、エクスポート、配信というよくある作業を1か所で進めるためのアプリです。
多くのパイプラインは、次の形から始めます。
DataLoader → DataSplit → Trainer → Evaluator必要になったときだけ、次の機能を足します。
Trainer → Model ExporterTrainer/Evaluator → Explainability、Runs、Models、Servingパネル迷ったら、次の表を目安にしてください。
| やりたいこと | まず使うもの |
|---|---|
| CSVからモデルを学習する | DataLoader → DataSplit → Trainer → Evaluator |
| 設定を変えて試す | Trainerを変更し、再実行してRunsで比較する |
| 複数の設定をまとめて探す | TrainerをTuneにして、Trialsを見る |
| モデルの判断理由を確認する | Metricsの実行結果からExplainを実行する |
| モデルファイルを保存する | Trainerの後ろにModel Exporterを追加する |
| HTTP予測APIを試す | Servingとプレイグラウンドを使う |
1. まずCSVを確認する
Section titled “1. まずCSVを確認する”ノードを作る前に、データファイルを一度確認します。
- 予測したいターゲット列が存在し、選択する予定の名前と完全に一致している。
- 1行目がヘッダーになっている。
- 欠損値が想定内で、エクスポートミスではない。
- ID、自由記述、ユニーク値が多すぎる列を、使うか削除するか決めている。
2. データを読み込んで確認する
Section titled “2. データを読み込んで確認する”- キャンバスに
DataLoaderノードを追加します。 - ノードを選択し、CSVファイルを選びます。
- ファイルが読み込めるかだけ確認したい場合は、データノードだけで一度実行します。
Data Profileタブを開き、行数、列名、型、欠損値を確認します。
プロフィール表示がおかしい場合は、モデルノードを追加する前にCSVを直します。列名のズレや空の列は、この段階で見つけるのが一番楽です。
3. 学習前に分割する
Section titled “3. 学習前に分割する”DataLoaderとTrainerの間にDataSplitを置くと、訓練データと評価データの境界が分かりやすくなります。
最初の設定例:
| 設定 | 最初の値 | メモ |
|---|---|---|
| Test split | 0.2 | 20%を評価用に使う |
| Random state | 42 | 実行結果を比較しやすくする |
| Stratify column | ターゲット列 | 分類でクラスの偏りがあるときに使う |
データが少ない場合、テスト比率が大きすぎると学習データが足りなくなります。メトリクスが不安定なときは、分割比率を小さくするか、チューニング時に交差検証を使います。
4. 最初のベースラインを学習する
Section titled “4. 最初のベースラインを学習する”DataSplitの後ろにTrainerを接続し、次のように設定します。
| 設定 | 分類の最初の候補 | 回帰の最初の候補 |
|---|---|---|
| Model type | Random Forest Classifier | Random Forest Regressor |
| Target column | 予測したいラベル列 | 予測したい数値列 |
| Mode | Train | Train |
実行したら、Logsタブを確認します。最初の実行で大事なのは最高スコアを出すことではありません。データ、ターゲット、モデル設定が最後まで動くことを確認することです。
5. 変更する前に評価する
Section titled “5. 変更する前に評価する”Trainerの後ろにEvaluatorを追加し、もう一度実行してMetricsタブを確認します。
分類では次を見ます。
Accuracy: 全体の正解率をざっくり見る。Precision、Recall、F1: 偽陽性や偽陰性が重要なときに見る。- 混同行列: どのクラスを間違えているかを見る。
回帰では次を見ます。
R²: 全体の当てはまりを見る。RMSE: 大きな誤差を重く見たいときに使う。MAE: ターゲットと同じ単位で平均的な誤差を見たいときに使う。
6. 1回のスコアだけで判断しない
Section titled “6. 1回のスコアだけで判断しない”実行結果はRunsパネルに保存されます。次のような確認に使います。
| 質問 | 比較するもの |
|---|---|
| 新しいモデルは改善したか | 同じデータ、同じ分割、別のモデルタイプ |
| チューニングは効いたか | ベースライン実行とチューニング後の実行 |
| スコアは安定しているか | 同じ設定での複数回実行、または交差検証 |
| 残す価値があるモデルか | メトリクス、メモ、タグ、説明結果 |
重要な変更をした実行には、baseline、rf-depth-10、tuned、removed-id-columnsのようなメモやタグを付けておくと後で見返しやすくなります。
7. 安定してからチューニングする
Section titled “7. 安定してからチューニングする”ベースラインが動く状態になってから、TrainerをTuneモードに切り替えます。
最初は小さめに始めます。
| 設定 | 実用的な開始値 |
|---|---|
| Search strategy | Bayesian / TPE |
| Trials | 20〜50 |
| CV folds | 3 |
| Metric | 分類ならaccuracyまたはf1、回帰ならr2 |
実行中はTrialsタブを確認します。遅い場合は、試行回数、CV folds、またはモデルの重さを先に下げます。
8. 必要なときにモデルを説明する
Section titled “8. 必要なときにモデルを説明する”評価実行の後、メトリクス画面からExplainを実行すると説明用の出力を作れます。
見るポイント:
- Feature importance: どの列が効いているか。
- SHAP: 各特徴量が予測を上げる方向か下げる方向か。
- Partial dependence plot: 1つの特徴量を変えたときに予測がどう変わるか。
説明結果は、明らかな問題を見つけるのに役立ちます。customer_idやrow_numberのようなID列が上位に出ている場合は、データに戻って削除を検討してください。
9. 信頼できるモデルだけをエクスポートまたは配信する
Section titled “9. 信頼できるモデルだけをエクスポートまたは配信する”残す価値があるモデルになったら、次に進みます。
Modelsパネルでバージョンを登録し、比較する。- 用途がはっきりしたモデルだけ
Staging、Production、Archivedへ昇格する。 .joblib、pickle、ONNX、CoreMLが必要な場合はModel Exporterを追加する。- 別アプリにつなぐ前に、
ServingとプレイグラウンドでローカルHTTP予測を試す。
モデルファイルとメタデータは一緒に管理してください。特徴量の順番やパッケージのバージョンが変わると、後で読み込めなかったり、誤った予測になることがあります。
実行に失敗したとき
Section titled “実行に失敗したとき”次の順番で確認します。
Logsタブ — 最後の行だけでなく、最初に出た本当のエラーを読む。- Pythonパス — アプリが、パッケージを入れたPythonを使っているか確認する。
- パッケージ —
scikit-learn、pandas、optuna、shapなど不足しているものを入れる。 - CSV列 — ターゲット列や特徴量列の名前が完全一致しているか確認する。
- モデル選択 — 分類ラベルには分類モデル、数値ターゲットには回帰モデルを使う。
- データ量 — 分割後も十分な行数が残っているか確認する。
解決できない場合は、Logsのエラーをコピーしてトラブルシューティングと照らし合わせてください。
結果を共有する前のチェックリスト
Section titled “結果を共有する前のチェックリスト”- 保存したパイプラインを読み込める。
- CSVパスを変えずに同じ実行を再現できる。
- メトリクスがホールドアウト分割または交差検証に基づいている。
- ターゲット列が正しい。
- 明らかなリーク列を削除している。
- 重要な実行にメモまたはタグがある。
- 外部で使うモデルには、メタデータとエクスポート先がある。