セクション1 応用 — ローコードAIソリューションの設計
🔧 対象:中堅エンジニア。サービス選定の判断軸、コスト最適化、解釈性、運用負荷を実務観点で押さえる。
1. サービス選定の決定木(応用版)
[start] 「自分でモデルを学習させたい?」
│
├─ NO(既存モデルで完結したい)
│ │
│ ├─ 構造化タスク(OCR / 翻訳 / 音声 / 文書抽出)
│ │ → 業界別 API(Vision / Translate / STT / Document AI)
│ │
│ └─ 生成系・対話・要約
│ → Model Garden の Gemini / Imagen / Veo
│ └─ プロンプト/RAG で精度不足?
│ → ファインチューニング(PEFT / LoRA)
│
└─ YES(自分のデータで学習)
│
├─ データが BigQuery にある & SQL でいける
│ → BigQuery ML(迅速・低コスト)
│
├─ 構造化データ・高精度・コードレス
│ → Agent Platform AutoML Tables / Tabular Workflows
│
├─ 非構造化(画像・動画・テキスト)・コードレス
│ → Agent Platform AutoML (Image / Video / Text)
│
└─ 上記いずれも不適 → Custom Training(セクション3)
2. BigQuery ML の応用論点
2.1 サポート対象モデルの拡張
新ガイドでは以下が追加・強化されている:
- Remote Models:BigQuery から Agent Platform 上の Gemini / カスタムモデルを呼び出す
CREATE MODEL ... REMOTE構文での Gemini ファインチューニングML.GENERATE_EMBEDDINGで BigQuery 内に embeddings を保存し、Vector Search と連携ML.UNDERSTAND_TEXT/ML.TRANSLATE/ML.TRANSCRIBEなど、AI API を SQL から呼ぶ拡張
2.2 Gemini ファインチューニング(BigQuery 経由)の流れ
-- 1. Vertex AI Connection を作成(CLI / Console で)
-- 2. BigQuery から Gemini モデルへの REMOTE MODEL を作成
CREATE OR REPLACE MODEL `project.dataset.tuned_gemini`
REMOTE WITH CONNECTION `project.us.vertex_conn`
OPTIONS (
endpoint = 'gemini-2.0-flash-001',
prompt_col = 'prompt',
-- 訓練データの場所
training_data = 'project.dataset.tuning_examples'
);
-- 3. チューニング後のモデルで予測
SELECT * FROM ML.GENERATE_TEXT(
MODEL `project.dataset.tuned_gemini`,
TABLE `project.dataset.test_prompts`
);
いつチューニングする?
- few-shot プロンプトでも精度が頭打ち
- 出力形式(JSON / 特定スキーマ)を厳密に守らせたい
- ドメイン固有の用語が多く、汎用 Gemini では誤訳・誤理解する
- 推論コスト削減のため Flash でも高精度を出したい
2.3 BigQuery ML の限界
- 大量訓練(数千万行超)で訓練時間がボトルネックになることがある → Tabular Workflows / Custom Training を検討
- リアルタイムオンライン推論(< 100ms)には不向き → モデルを Agent Platform Endpoint にエクスポートして配信
3. AutoML vs カスタム訓練の境界線
| 観点 | AutoML | Custom Training |
|---|---|---|
| データ量目安 | 数百〜数十万件 | 数十万〜数億件 |
| 精度上限 | プロダクション十分 | チューニング次第でさらに上 |
| 開発コスト | 低(SQL or UI) | 高(Python / フレームワーク) |
| 訓練コスト | 中〜高(時間課金) | 低〜高(GPU/TPU 時間) |
| 解釈性 | Explainable AI で属性可視化 | フル制御 |
| デプロイ | 1クリック | コンテナ化が必要 |
| 用途 | PoC / 早期 MVP / 中規模本番 | 大規模本番 / 専門アーキテクチャ |
試験での頻出シナリオ:
- 「3か月で MVP を出したい」「ML 専門家がいない」 → AutoML
- 「精度を 1pt でも上げたい・カスタム loss / カスタムアーキ」 → Custom Training
- 「すでに BigQuery にデータがあり、SQL で完結したい」 → BigQuery ML
4. Model Garden 選定の応用
4.1 タスク別おすすめモデル
| タスク | 第一候補 | 補助 |
|---|---|---|
| 短い分類・要約・翻訳 | Gemini Flash | Flash で十分。Pro は不要 |
| 長文ドキュメント解析(数十万トークン) | Gemini Pro 1.5/2.0 | 長コンテキスト・マルチモーダル |
| ハイクオリティな画像生成 | Imagen | Stable Diffusion (OSS) より商用利用が安全 |
| 動画生成 | Veo | 短尺プロモ動画など |
| 多言語 ASR | Chirp | Whisper よりリージョン特化 |
| RAG 用 embedding | text-embedding-005 / multimodal-embedding | Vector Search と連携 |
| OSS LLM のホスティング | Model Garden の Llama / Mistral | カスタムインフラ不要、GKE / Agent Platform 上にデプロイ |
4.2 Models-as-a-Service (MaaS)
- Anthropic Claude / Mistral などの サードパーティモデル もエンドポイント提供されている
- "Gemini に変える? それともマルチプロバイダ?" の選定問題で頻出
- データはモデル提供元の学習に使われない契約が GCP 経由なら担保される
5. Gemini ベースアプリのコスト・レイテンシ・可用性最適化
5.1 コスト最適化
| 戦略 | 効果 | 注意 |
|---|---|---|
| モデルサイズの選定(Flash を優先) | 単価1/10前後 | 単純タスクで Pro は過剰投資 |
| プロンプトキャッシング(≥2048 トークンの固定プレフィックス) | キャッシュ部分は 75% 割引 | TTL は5分〜60分 |
| コンテキストキャッシング(明示的キャッシュ) | 長文プロンプトの再利用で大幅減 | 課金単位はキャッシュ保管時間 |
| Batch API(非同期一括処理) | 通常の 50% 程度 | レイテンシ要件のないジョブ向け |
| ファインチューニング(Flash + tuning) | 推論単価 < Pro、精度近く | チューニング初期コストあり |
| 構造化出力 / 関数呼び出し | 余分な解説文を出力させない | プロンプトとレスポンス両方が短くなる |
| temperature 0 + JSON モード | 再試行不要 → トータル安く | 決定的タスク向け |
| Quotas / Rate limits の確認 | 突発的な課金スパイク防止 | Console で監視 |
5.2 レイテンシ最適化
- Gemini Flash をデフォルト、必要時のみ Pro へ
- 同一リージョン にエンドポイントとアプリを配置
- ストリーミング応答(
stream_generate_content)でユーザー体感を改善 - プロンプトキャッシング で固定部分の処理をスキップ
- 最小プロンプト(不要な前置きを削る)
5.3 可用性最適化
- マルチリージョン展開(us-central1, asia-northeast1 など)+ ルーティング
- モデルバージョンの固定(
gemini-2.0-flash-001のように suffix を指定)→ 突然の挙動変化を防ぐ - 指数バックオフ + リトライ
- フォールバックモデル(Pro が混雑なら Flash、または逆)
6. ローコード AI のセキュリティとデータ取り扱い
6.1 データ送信ポリシー
- Vertex AI(Agent Platform)経由の Gemini 呼び出しは、Google の汎用モデル学習には使われない(コントラクト保証)
- 機微データを含む場合は VPC Service Controls で境界を作る
- Customer-Managed Encryption Keys (CMEK) で暗号化キーを自社管理
6.2 PII の取り扱い
- 入力前に Sensitive Data Protection (旧 Cloud DLP) でマスキング/トークン化
- 出力後にも DLP でスキャンして PII 漏洩を防ぐ
- LLM 特有のリスクは Model Armor で防御(詳細は §6 で扱う)
7. 業界別 API の応用パターン
7.1 Document AI のプロセッサー選定
- General Form Parser:フォーム全般
- Invoice Parser / Receipt Parser / W-2 Parser:業界特化(事前学習済み)
- Custom Extractor:自社書式に合わせて少量データで微調整
- Document OCR:純粋に OCR したいだけ
7.2 Translation API の使い分け
- Translation API Basic:100+ 言語、コードレス
- Translation API Advanced:用語集(glossary)対応、バッチ翻訳、AutoML Translation 連携
- AutoML Translation:ドメイン固有の翻訳精度向上(医療・法律など)
7.3 Vision AI 上位タスク
- Vision Warehouse:大量画像の検索・分析
- Video Intelligence API:シーン検出・物体追跡・ロゴ検出
8. 試験での頻出ひっかけ
| 問題文の示唆 | 不正解になりがちな選択 | 正解の方向 |
|---|---|---|
| "コードを書きたくない" "ML 専門家がいない" | Custom Training | AutoML or BigQuery ML |
| "データはすでに BigQuery にあり、SQL で処理している" | Dataflow + Custom Training | BigQuery ML |
| "請求書 PDF から金額を抽出" | Vision API の OCR + 自作パーサ | Document AI Invoice Parser |
| "多言語 FAQ チャットボット" | カスタム NLP モデル | Gemini + RAG |
| "プロンプトで頑張ったが精度不足。低レイテンシ要件" | Gemini Pro | Flash + ファインチューニング |
| "数十万件の長文を要約、夜間バッチで OK" | リアルタイム同期 API | Batch API + Flash |
| "PII を含むテキストを Gemini に渡したい" | 何もせず直接渡す | DLP で前処理 + VPC SC + Model Armor |
次は 03_要点と暗記.md で意思決定ツリー・対比表・暗記カードを集めます。