【MLA-C01】WEB問題集:MLモデル開発編

WEB問題集

MLA-C01#1(model-development)

あるFinTech企業が不正取引検知モデルを構築しています。データセットは99.5%が正常取引、0.5%が不正取引で極端に不均衡です。不正を見逃すこと(FN)のビジネス損失が大きい一方、誤検知(FP)の調査コストは比較的低いという制約があります。最も重視すべき評価指標はどれですか。

ディスカッション 0

正解:D

正解の根拠

不正検知のように「見逃し(False Negative)」を最小化したい場合、Recall(再現率=TP/(TP+FN))を最重視すべきです。FNを減らすほどRecallが上がるため、ビジネス損失と直接連動した指標になります。なお、不均衡データでAccuracyを使うと、全件「正常」と予測しても99.5%の精度が出てしまい、有用性がない点にも注意が必要です。

主要評価指標比較

指標重視シーン
Accuracy(TP+TN)/全件クラスバランスが取れている場合
PrecisionTP/(TP+FP)FPを減らしたい(スパム判定など)
RecallTP/(TP+FN)FNを減らしたい(不正検知、医療診断)
F12PR/(P+R)PrecisionとRecallのバランス重視

SageMakerでの設定例

from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred, pos_label=1)

不正解の理由

  • C: Accuracyは不均衡データでは多数派クラスに引きずられ意味を失います。
  • B: PrecisionはFPを減らしたい場合に有効ですが、本問はFNが致命的です。
  • A: SpecificityはTNを評価する指標で、不正クラス検出の主指標としては不適切です。

参考:SageMaker Clarify モデル評価

MLA-C01#2(model-development)

ECサイトの推薦モデルで、ユーザーIDと商品IDのワンホットエンコード後の入力次元が数百万、行列が極めて疎(sparse)になっています。SageMaker組み込みアルゴリズムで最適なものはどれですか。

ディスカッション 0

正解:A

正解の根拠

Factorization Machines(FM)は、高次元疎行列に対し因子分解で交互作用項を効率的に学習するアルゴリズムで、推薦・CTR予測・分類に最適化されています。SageMaker組み込みのFMはrecordIO-protobuf形式のFloat32疎行列を入力とし、数百万次元でも実用的に学習できます。

SageMaker組み込みアルゴリズム選定

アルゴリズム得意領域
XGBoost表形式・密行列の分類/回帰
DeepAR多系列時系列予測
Factorization Machines高次元疎行列の推薦/分類
k-means非教師ありクラスタリング

不正解の理由

  • B: k-means は教師なしクラスタリングが目的で、ラベル付きの推薦/分類タスクや疎行列の交互作用学習には設計目的が異なります。
  • C: XGBoost は密な表形式データの勾配ブースティングが主用途で、数百万次元のスパースワンホット入力にはメモリ効率で劣ります。
  • D: DeepAR は多系列時系列予測専用の RNN アルゴリズムで、ユーザ-商品の疎な交互作用学習や推薦タスクには対応していません。

参考:SageMaker Factorization Machines

MLA-C01#3(model-development)

大規模Transformer LLMのフルパラメータ微調整はGPUメモリと時間コストが大きいです。学習コストを最小化しつつ下流タスク精度を維持する手法を2つ選んでください。

(2つ選択)

ディスカッション 0

正解:B, E

正解の根拠

LoRAは、注意機構の重み行列に低ランク行列ΔW = BAを追加し、元の重みを凍結したまま少数パラメータのみを学習する手法です。学習対象パラメータが0.1〜1%程度に減るため、GPUメモリ・時間を大幅削減できます。QLoRAはさらにベースモデルを4bit量子化(NF4)してロードし、LoRAアダプタをFP16で学習することでメモリ要求をさらに低減します。

PEFT手法比較

手法学習パラ削減メモリ削減
Full FT0%0%
LoRA99%以上
QLoRA99%以上最大
Prompt Tuningほぼ100%最大

SageMaker JumpStart呼び出し例

estimator = JumpStartEstimator(
    model_id='meta-llama-3-8b',
    environment={'peft_type':'lora','lora_r':'8'})

不正解の理由

  • C: 全レイヤ再学習+Dropout増加は計算量を増やすだけで節約になりません。
  • A: データ・バッチ増は計算コストを大きく押し上げます。
  • D: Optimizer状態リセットは収束を悪化させます。

参考:JumpStart Fine-Tuning

MLA-C01#4(model-development)

あるチームはSageMaker AMTでXGBoostのハイパーパラメータを最適化しようとしています。試行回数を抑えつつ精度の高い構成を見つけたい場合、最も効率的な戦略はどれですか。

ディスカッション 0

正解:A

正解の根拠

SageMaker Automatic Model Tuning(AMT)のBayesian Optimizationは、過去試行の結果から有望領域を確率的に推定し次の試行を選ぶ手法で、Random/Gridに比べ少ない試行数で高精度に到達しやすい特性があります。Hyperbandは早期終了を組み合わせた更に効率的な戦略です。

戦略比較

戦略探索効率並列性
Grid
Random
Bayesian低〜中
Hyperband

AMT設定例

tuner = HyperparameterTuner(
    estimator=xgb,
    strategy='Bayesian',
    max_jobs=30, max_parallel_jobs=3)

不正解の理由

  • D: Randomは無駄な試行が多くなりがちです。
  • C: Gridは次元が増えると組合せ爆発します。
  • B: Manualは再現性が低く効率も悪いです。

参考:SageMaker AMT

MLA-C01#5(model-development)

SageMakerトレーニングジョブで損失が発散し勾配が爆発しています。学習中にこれを自動検知し早期に停止することでコストを削減したいです。最適な手段はどれですか。

ディスカッション 0

正解:A

正解の根拠

SageMaker DebuggerはTensorをリアルタイムキャプチャし、exploding_tensor / vanishing_gradient / loss_not_decreasing / nan などの組み込みルールで異常を検出できます。Rule発火時のアクションとしてStopTrainingJobを指定すれば、即時にジョブを停止しコスト浪費を防げます。

主要組み込みRule

Rule検出対象
exploding_tensor勾配爆発
vanishing_gradient勾配消失
loss_not_decreasing停滞
overfit過学習

設定例

rules=[Rule.sagemaker(rule_configs.exploding_tensor(),
  actions=rule_configs.StopTraining())]

不正解の理由

  • D: ログ解析・通知では即時停止は困難でコストが嵩みます。
  • B: 1時間サンプリングではリアルタイム停止になりません。
  • C: ProfilerはCPU/GPU効率分析用で異常停止用途ではありません。

参考:SageMaker Debugger Rules