01_基礎

セクション3 基礎 — プロトタイプから ML モデルへのスケール

📘 対象:新人エンジニア。モデル種別の選び方・訓練フロー・HPT の基礎を一通り知る。


1. モデル種別の選定

1.1 タスク → モデルの典型対応

タスク 第一候補 代替
二値・多値分類(テーブル) Boosted Trees (XGBoost/LightGBM) DNN, Logistic
回帰(テーブル) Boosted Trees / Linear DNN
時系列予測 ARIMA_PLUS (BQML) / Prophet DeepAR / Transformer ベース
画像分類 CNN (ResNet/EfficientNet) Vision Transformer (ViT)
物体検出 YOLO / Faster R-CNN DETR
テキスト分類・要約 Gemini ファインチューニング BERT 系
チャット / 生成 Gemini OSS LLM (Llama/Mistral)
推薦 Matrix Factorization / Two-Tower LLM ベース推薦
異常検知 Autoencoder / Isolation Forest LLM プロンプト

1.2 コスト/複雑性/解釈性の3軸

解釈性高 ←──────────────────────────────────────→ 解釈性低
Linear → Logistic → Decision Tree → Boosted Trees → DNN → LLM
コスト低 →                                          ← コスト高

2. プロダクト選定

プロダクト 何のため 主な使用者
BigQuery ML SQL でモデル訓練 データアナリスト・データエンジニア
Agent Platform AutoML データさえあれば自動でモデル ML 初心者・ビジネスアナリスト
Tabular Workflows テーブルデータの自動 ML(AutoML 上位互換) ML エンジニア
Agent Platform Custom Training Python フレームワークで自由に訓練 ML エンジニア
Kubeflow on GKE 自分でクラスタ管理、最大の柔軟性 プラットフォームチーム
Agent Platform Pipelines 訓練を含む E2E パイプライン MLOps チーム

3. 訓練データの整理

3.1 保存場所の使い分け

3.2 データフォーマット

3.3 訓練データの取り込み


4. Agent Platform Custom Training の基本

4.1 訓練ジョブの実行パターン

パターン 説明
Custom Training Job コンテナ or Python パッケージを submit、Agent Platform が VM 確保・実行
Hyperparameter Tuning Job 上記 + Vizier で並列ハイパラ探索
Distributed Training 複数ノード・複数 GPU で分散実行

4.2 コンテナの選択

4.3 簡単な submit 例

from google.cloud import aiplatform

job = aiplatform.CustomJob(
    display_name="my-training",
    worker_pool_specs=[{
        "machine_spec": {"machine_type": "n1-standard-4", "accelerator_type": "NVIDIA_TESLA_T4", "accelerator_count": 1},
        "replica_count": 1,
        "container_spec": {
            "image_uri": "us-docker.pkg.dev/vertex-ai/training/pytorch-gpu.2-2.py310:latest",
            "args": ["--epochs=10", "--data-dir=gs://my-bucket/data"],
        },
    }],
)
job.run()

5. ハイパーパラメータチューニング (HPT)

5.1 Vizier

5.2 主要なアルゴリズム

5.3 何をチューニングするか

5.4 並列度と早期停止


6. ファインチューニング(基礎)

6.1 いつ必要か

6.2 主な手法

手法 説明 何が良い
Full Fine-tuning 全パラメータを更新 最大の表現力、ただし計算コスト大
PEFT (Parameter-Efficient Fine-tuning) 小数のパラメータのみ更新 計算量・メモリ大幅減
LoRA (Low-Rank Adaptation) PEFT の代表、低ランク行列を追加学習 一般的、Agent Platform でサポート
Adapter 中間層に小さなモジュール挿入 LoRA に似た発想
Prompt Tuning プロンプト埋め込みのみ学習 最軽量・複数タスクで切替容易
RLHF 人間フィードバックで強化学習 チャット・好み調整

6.3 ファインチューニングの流れ(Gemini 例)

  1. 訓練データ準備:JSONL(入力・期待出力ペア)100〜数千件
  2. データ検証:Agent Platform に upload、フォーマット自動チェック
  3. チューニングジョブ起動:手法(Supervised / RLHF)・エポック数・学習率を指定
  4. 評価:ホールドアウトデータで自動評価メトリクス
  5. デプロイ:チューニング済みモデルをエンドポイントに

7. ハードウェア選定(基礎)

アクセラレータ 強み 用途
CPU 互換性・コスト 小規模 ML・前処理・ARIMA など
GPU (T4/L4/A100/H100) 並列計算・汎用 CNN / 中小 LLM / 推論
TPU (v4/v5e/v5p) Google 製、行列演算特化 大規模 LLM 訓練・JAX/TF 向け
Edge TPU / Coral 低消費電力 エッジ推論

7.1 GPU の世代感

7.2 TPU

7.3 選定の鉄則


8. このセクションで覚えるキーワード(基礎)

次は 02_応用.md で分散訓練と訓練失敗のトラブルシューティング、ファインチューニングの詳細を扱います。