Vertex AI で生成 AI を本番化する — Gemini / Model Garden / Agent Builder
Google Cloud の Vertex AI による生成 AI 実装。Gemini 系モデル、Model Garden のサードパーティ提供、RAG 構成 (Vertex AI Search)、Agent Builder でのツール連携、料金の考え方。
Vertex AI の立ち位置
Vertex AI は Google Cloud が提供する AI / ML のフルマネージドプラットフォームです。2024+ 時点では以下の 3 階層で理解すると整理しやすい。
| 階層 | 提供物 | 用途 |
|---|---|---|
| モデル | Gemini / PaLM / Imagen / Embeddings | 生成 AI の中核 |
| ツール層 | Vertex AI Search, Agent Builder, Pipelines | モデルをアプリ化 |
| MLOps 層 | Training, Workbench, Model Registry, Prediction | 自社モデルの開発・運用 |
本稿は 生成 AI 利用 (モデル + ツール層) にフォーカスします。自社モデル訓練 (MLOps 層) は別記事で扱います。
使えるモデル
Gemini (Google 自社)
- Gemini 1.5 Pro: 大規模コンテキスト (100 万〜200 万トークン)、マルチモーダル
- Gemini 1.5 Flash: 高速・低コスト、量が出る用途向け
- Gemini Nano: オンデバイス (Android), モバイル組み込み
長所: マルチモーダル (画像・動画・音声) ネイティブ対応、長文処理が強力。 日本語性能も OpenAI GPT-4 系と遜色なし。
Model Garden (サードパーティ)
Vertex AI 経由で以下もデプロイ可能:
- Claude 3.5 Sonnet / Haiku (Anthropic)
- Llama 3 系 (Meta)
- Mistral 系
- Hugging Face 公開モデル
OpenAI 以外の主要 LLM を 1 つの基盤で切替可能。マルチベンダー戦略に向く。
最小実装 (Python)
from vertexai.generative_models import GenerativeModel
import vertexai
vertexai.init(project="my-project", location="asia-northeast1")
model = GenerativeModel("gemini-1.5-flash")
resp = model.generate_content(
"Kubernetes の Pod と Deployment の違いを 100 字で説明して"
)
print(resp.text)
マルチモーダル (画像入力):
from vertexai.generative_models import Part
resp = model.generate_content([
Part.from_uri("gs://my-bucket/invoice.pdf", mime_type="application/pdf"),
"この請求書から合計金額を抽出して JSON で返して",
])
RAG: Vertex AI Search
Google 検索の技術を内部に使った企業向け検索 + RAG プラットフォーム。
社内ドキュメント (GCS / BigQuery / Web)
↓ 自動 indexing + embedding
Vertex AI Search (grounding + 生成)
↓
回答 + 引用元 URL
特徴:
- ドキュメントを放り込むだけで検索基盤完成 (インフラ設計不要)
- 回答に 引用元 (grounding) を付けられる
- Enterprise Search モードは PII マスク等 Enterprise 要件に対応
Agent Builder (ツール呼び出し)
LLM にツール (関数呼び出し / API コール) を使わせるフレームワーク:
from vertexai.generative_models import Tool, FunctionDeclaration
get_weather = FunctionDeclaration(
name="get_weather",
description="指定都市の現在の天気を取得",
parameters={
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
)
model = GenerativeModel("gemini-1.5-pro", tools=[Tool(function_declarations=[get_weather])])
resp = model.generate_content("明日の東京の天気を教えて")
# model が get_weather(city="Tokyo") を呼ぶように応答
OpenAI の Function Calling 相当。ReAct パターンや ReWOO も簡単に組める。
他 LLM プラットフォームとの比較
| Vertex AI (GCP) | OpenAI API | Azure OpenAI | Bedrock (AWS) | |
|---|---|---|---|---|
| 自社モデル | Gemini | GPT-4o / o1 | GPT-4o / o1 | 無 (Nova) |
| サードパーティ | Claude, Llama 等 | 無 | 限定 | Claude, Llama 等 |
| 長文 | 200 万トークン | 128K | 128K | 200K (Claude) |
| 価格 (GPT-4o 相当) | ◎ (Flash が安い) | $$ | $$ | $$ |
| エンタープライズ | ◎ | △ | ◎ | ◎ |
選び方:
- 長文処理 / マルチモーダル重視 → Vertex AI (Gemini)
- OpenAI API 互換性維持 → Azure OpenAI
- マルチベンダー戦略 → Vertex AI (Model Garden) or Bedrock
料金 (2024+ 時点, asia-northeast1)
| モデル | 入力 ($/1M) | 出力 ($/1M) |
|---|---|---|
| Gemini 1.5 Pro | $1.25 | $5.00 |
| Gemini 1.5 Flash | $0.075 | $0.30 |
| Claude 3.5 Sonnet | $3.00 | $15.00 |
| text-embedding-004 | $0.025 | — |
Gemini Flash の安さが特筆すべき点。量が出るユースケース (バッチ処理、ログ要約) はコスト最適化に直結。
落とし穴
1. プロジェクト / ロケーションの初期設定
vertexai.init(project, location) を忘れると意味不明なエラー。asia-northeast1 (東京) でも Gemini は利用可能。
2. Gemini の Safety Settings
Vertex AI の Gemini は デフォルトで複数のセーフティフィルター が有効。業務用プロンプトで誤発火することがある:
from vertexai.generative_models import HarmCategory, HarmBlockThreshold
safety = {
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH,
}
resp = model.generate_content(prompt, safety_settings=safety)
3. Function Calling の JSON 厳格性
Agent Builder / Function Calling では Pydantic 等で入力バリデーションを必ず。モデルが稀に不正な JSON を返す。
4. Quota と Rate Limit
Gemini 1.5 Pro はクォータが比較的厳しい (RPM / TPM)。本番規模なら事前に Google Cloud 営業経由で引き上げ申請。
5. ドキュメントの古さ
AI プロダクトは激しく変化。古い Qiita 記事・Stack Overflow 回答は 6 ヶ月で陳腐化することも。公式ドキュメントを一次情報として参照。
まとめ
- Vertex AI は モデル (Gemini / Claude / Llama) + ツール (Search / Agent) + MLOps の統合プラットフォーム
- 長文・マルチモーダル・コスト効率のバランスで Gemini は実務向き
- サードパーティ LLM も Model Garden 経由で使える柔軟性
- Vertex AI Search + Agent Builder で RAG + ツール連携が素早く組める
関連記事
- AI·
Azure OpenAI Service の採用判断 — OpenAI API との違い・企業導入のポイント
Azure OpenAI Service と本家 OpenAI API の違い、エンタープライズ要件 (データ所在地・SLA・プライベートリンク)、Responsible AI フィルター、料金の読み方まで。
- AI·
Amazon Rekognition で画像・動画解析 — 顔認識 / ラベル検出 / コンテンツ安全性
AWS の AI 画像解析サービス Rekognition の主要機能と料金感、Google Vision / Azure Computer Vision との比較、日本向け精度の実務感、LLM ベースの画像理解との棲み分け。
- クラウド·
Looker (Google Cloud) の設計思想 — LookML で BI を「コード化」する
Looker のモデル定義言語 LookML を中心に、他 BI ツールとの思想差、組織運用での使い所と落とし穴、Looker Studio との棲み分けまで。