はじめに
2023〜2024年にかけて、Google Cloud の Generative AI は大きな転換期を迎えました。
それが「PaLM API → Gemini API」の移行です。
PaLM時代は、用途ごとに異なるクラスを使う方式でした。
しかしGemini登場以降は、統一API+モデル指定方式へと変化しています。
🏗️ PaLM時代の構造(旧)
PaLM APIでは、用途別にクラスが分かれていました。
たとえば以下のように:
from vertexai.language_models import TextGenerationModel
model = TextGenerationModel.from_pretrained("text-bison@002")
response = model.predict("AIと機械学習の違いを教えて")
print(response.text)
-
TextGenerationModel… テキスト生成用 -
ChatModel… チャット形式の応答 -
CodeGenerationModel… コード生成 -
EmbeddingModel… ベクトル生成
いわば、「タスク特化API」の世界観でした。
🚀 Gemini登場後の構造(新)
Gemini以降では、上記のような用途別クラスは廃止され、
統一クラス GenerativeModel に集約されました。
from vertexai.generative_models import GenerativeModel
model = GenerativeModel("gemini-2.0-flash-001")
response = model.generate_content(
"AIと機械学習の違いを教えて",
generation_config={
"temperature": 0.7,
"max_output_tokens": 512,
"top_p": 0.9,
"top_k": 40,
}
)
for chunk in response:
print(chunk.text)
ポイントは以下の通りです。
| 観点 | PaLM | Gemini |
|---|---|---|
| API構造 | タスク特化クラス(Text/Chat/Code) | 統一クラス GenerativeModel
|
| モデル指定 |
text-bison など用途ごと |
gemini-2.0-pro, gemini-2.0-flash など |
| メソッド | predict() |
generate_content() |
| 出力 | .text |
構造化されたレスポンス(マルチモーダル対応) |
💬 モデル指定の考え方
Gemini系では「どのGeminiを使うか」をモデル名で明示します。
用途はモデルによって変わります。
| モデル名 | 主な用途 | 備考 |
|---|---|---|
gemini-2.0-flash |
高速・低コスト推論 | 軽量推論やチャット用途 |
gemini-2.0-pro |
高品質推論 | 精度重視のタスク |
gemini-1.5-pro |
画像・コード対応 | マルチモーダル |
code-gecko(Codey) |
コード生成特化 | Geminiとは別系統 |
textembedding-gecko |
ベクトル生成 | RAG用途 |
Gemini自体がマルチモーダル(テキスト+画像+コード理解)なので、
テキスト生成・チャットなどは1モデルで完結します。
ただし、コード生成は依然として Codey 系を利用します。
⚙️ API呼び出し構造の変化
これにより、コードの保守性が大幅に向上しました。
ひとつのクラスでマルチモーダル処理が扱えるため、
アプリ側はモデル名を差し替えるだけで新モデルに移行できます。
🤝 OpenAI APIとの比較
実は、OpenAIも同じ方向性をとっています。
違いを比較すると以下のようになります。
| 項目 | Google Vertex AI | OpenAI |
|---|---|---|
| 統一API | GenerativeModel |
chat.completions.create() |
| モデル指定 |
gemini-2.0-pro 等 |
gpt-4o, gpt-4.1 等 |
| マルチモーダル対応 | Gemini 1.5〜 | GPT-4o で対応 |
| コード生成 |
code-gecko(別系統) |
GPT-4oでも対応可能 |
| Embedding | textembedding-gecko |
text-embedding-3-large |
つまり:
🔸 Google:モデルは統一API+一部専門モデル併存
🔹 OpenAI:統一API+単一モデルで多用途対応
方向性はほぼ同じですが、Googleのほうが明示的なモデル分離設計を残しています。
🧩 まとめ
| 要点 | 内容 |
|---|---|
| ✅ PaLMは「用途別クラス」方式だった | |
| ✅ Geminiは「モデル指定」方式に統一された | |
| ✅ コード生成など一部はCodey系を併用 | |
| ✅ OpenAIも同様に「統一API+モデル指定」方式へ収束中 | |
| ✅ 開発者は“どのモデルを使うか”を中心に設計する時代へ |
🪄 余談:実務で意識すべきポイント
-
gemini-2.0-flashはかなり高速。Chat用途ならこちら推奨。 - RAG用途では
textembedding-geckoがVertex標準。 - モデル指定文字列(例:
gemini-2.0-pro)はModel Gardenで確認可能。 - 既存の
TextGenerationModelなどは今後非推奨方向。
🔗 参考リンク
- Google Cloud: Migrate from PaLM API to Gemini API
- Vertex AI Model Garden
- OpenAI API Reference
- Codey (Vertex AI for Code Generation)
まとめの一言
PaLM時代の「テキスト用APIを選ぶ」から、
Gemini時代は「モデルを指定するだけ」に。
アーキテクチャのシンプル化はもちろん、
マルチモーダル対応の前提設計になった点が最大の変化です。