Step 2 クイズ:実験管理とモデルレジストリ
実験管理、MLflow Tracking、モデルレジストリ、DVCによる再現性確保について理解度を確認しましょう。
Q1. ML実験の再現性を確保するために必要な3つの要素の正しい組み合わせはどれか?
A. コード + テスト + ドキュメント B. コード + データ + 環境 C. パラメータ + メトリクス + アーティファクト D. Git + Docker + Kubernetes
答えを見る
正解:B. コード + データ + 環境
ML実験の完全な再現性には、コード(Gitで管理)、データ(DVCで管理)、環境(Dockerで管理)の3つのバージョニングが必要です。同じコード + 同じデータ + 同じ環境 = 同じ結果という等式が成り立ちます。
Q2. MLflow Trackingで「学習中の各エポックのloss値」を記録する場合、最も適切な方法はどれか?
A. mlflow.log_param("loss", loss_value)
B. mlflow.log_metric("loss", loss_value, step=epoch)
C. mlflow.log_artifact("loss.txt")
D. mlflow.set_tag("loss", str(loss_value))
答えを見る
正解:B. mlflow.log_metric("loss", loss_value, step=epoch)
log_metric の step パラメータを使うことで、エポックごとのメトリクスを時系列として記録できます。MLflow UIでは学習曲線として可視化されます。log_param は固定値のパラメータ用、log_artifact はファイル用、set_tag は文字列メタデータ用です。
Q3. MLflow Model Registryでモデルを本番環境にデプロイする際、推奨されるステージ遷移の順序はどれか?
A. None → Production → Archived B. None → Staging → Production C. Staging → None → Production D. Production → Staging → Archived
答えを見る
正解:B. None → Staging → Production
モデルは登録時にNone(初期状態)で、テスト・検証を経てStagingに昇格し、承認後にProductionに移行するのが推奨フローです。問題が発生した場合は前バージョンをProductionに戻し(ロールバック)、問題のあるバージョンはArchivedに移行します。
Q4. DVCでdvc add data/training_data.csvを実行した際に生成されるファイルの役割として正しいのはどれか?
A. データファイルの圧縮コピーが生成される B. データファイルのハッシュ値を含むメタファイル(.dvc)が生成される C. データファイルが自動的にS3にアップロードされる D. データファイルがGitリポジトリにコミットされる
答えを見る
正解:B. データファイルのハッシュ値を含むメタファイル(.dvc)が生成される
dvc add は、データファイルのハッシュ値(MD5)を含む小さなメタファイル(.dvc)を生成し、元のデータファイルを .gitignore に追加します。この .dvc ファイルをGitで管理することで、データのバージョンとコードのバージョンを紐づけます。実データのリモートアップロードは dvc push で行います。
Q5. MLflowの autolog() 機能について正しい説明はどれか?
A. すべてのPythonコードの実行ログを記録する B. 対応フレームワークのパラメータ・メトリクス・モデルを自動記録する C. 実験の実行時間のみを自動記録する D. Gitのコミット履歴を自動記録する
答えを見る
正解:B. 対応フレームワークのパラメータ・メトリクス・モデルを自動記録する
mlflow.sklearn.autolog() や mlflow.xgboost.autolog() を有効にすると、対応フレームワークの fit() 呼び出し時にハイパーパラメータ、評価メトリクス、学習済みモデル、特徴量重要度などが自動で記録されます。scikit-learn, XGBoost, LightGBM, PyTorch, TensorFlow/Keras など主要フレームワークに対応しています。
結果
5問中何問正解できましたか?
| 正解数 | 評価 |
|---|---|
| 5問 | 素晴らしい!Step 3に進みましょう |
| 3-4問 | 良い調子です。間違えた部分を復習しましょう |
| 1-2問 | Step 2のレッスンをもう一度確認しましょう |
| 0問 | 基礎から丁寧に見直しましょう |
推定所要時間:30分