WEB問題集
あるFinTech企業が不正取引検知モデルを構築しています。データセットは99.5%が正常取引、0.5%が不正取引で極端に不均衡です。不正を見逃すこと(FN)のビジネス損失が大きい一方、誤検知(FP)の調査コストは比較的低いという制約があります。最も重視すべき評価指標はどれですか。
正解:D
正解の根拠
不正検知のように「見逃し(False Negative)」を最小化したい場合、Recall(再現率=TP/(TP+FN))を最重視すべきです。FNを減らすほどRecallが上がるため、ビジネス損失と直接連動した指標になります。なお、不均衡データでAccuracyを使うと、全件「正常」と予測しても99.5%の精度が出てしまい、有用性がない点にも注意が必要です。
主要評価指標比較
| 指標 | 式 | 重視シーン |
|---|---|---|
| Accuracy | (TP+TN)/全件 | クラスバランスが取れている場合 |
| Precision | TP/(TP+FP) | FPを減らしたい(スパム判定など) |
| Recall | TP/(TP+FN) | FNを減らしたい(不正検知、医療診断) |
| F1 | 2PR/(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を評価する指標で、不正クラス検出の主指標としては不適切です。
ECサイトの推薦モデルで、ユーザーIDと商品IDのワンホットエンコード後の入力次元が数百万、行列が極めて疎(sparse)になっています。SageMaker組み込みアルゴリズムで最適なものはどれですか。
正解: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 アルゴリズムで、ユーザ-商品の疎な交互作用学習や推薦タスクには対応していません。
大規模Transformer LLMのフルパラメータ微調整はGPUメモリと時間コストが大きいです。学習コストを最小化しつつ下流タスク精度を維持する手法を2つ選んでください。
(2つ選択)
正解:B, E
正解の根拠
LoRAは、注意機構の重み行列に低ランク行列ΔW = BAを追加し、元の重みを凍結したまま少数パラメータのみを学習する手法です。学習対象パラメータが0.1〜1%程度に減るため、GPUメモリ・時間を大幅削減できます。QLoRAはさらにベースモデルを4bit量子化(NF4)してロードし、LoRAアダプタをFP16で学習することでメモリ要求をさらに低減します。
PEFT手法比較
| 手法 | 学習パラ削減 | メモリ削減 |
|---|---|---|
| Full FT | 0% | 0% |
| LoRA | 99%以上 | 大 |
| QLoRA | 99%以上 | 最大 |
| 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状態リセットは収束を悪化させます。
あるチームはSageMaker AMTでXGBoostのハイパーパラメータを最適化しようとしています。試行回数を抑えつつ精度の高い構成を見つけたい場合、最も効率的な戦略はどれですか。
正解: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トレーニングジョブで損失が発散し勾配が爆発しています。学習中にこれを自動検知し早期に停止することでコストを削減したいです。最適な手段はどれですか。
正解: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効率分析用で異常停止用途ではありません。
