このガイドでは、Vertex AI SDK for Python のコードを PaLM API から Gemini API に移行する方法について説明します。Gemini では、テキスト、マルチターンの会話(チャット)、コードを生成できます。移行後、Gemini の出力が PaLM の出力と異なる可能性があります。レスポンスを必ず確認してください。詳細については、Vertex AI SDK のマルチモーダル クラスの概要をご覧ください。
Gemini と PaLM の違い
Gemini モデルと PaLM モデルの違いは次のとおりです。
レスポンスの構造が異なります。Gemini レスポンスの構造については、Gemini API モデル リファレンスのレスポンス本文をご覧ください。
安全性のカテゴリが異なります。Gemini と PaLM の安全性設定の違いについては、Gemini と他のモデル ファミリーの主な違いをご覧ください。
Gemini はコード補完を実行できません。コード補完アプリケーションを作成する必要がある場合は、
code-gecko
モデルを使用します。詳細については、Codey コード補完モデルをご覧ください。コード生成の場合、Gemini は列挙ブロックレートが高くなります。
モデルのレスポンスの信頼度を示す Codey コード生成モデルの信頼スコアは、Gemini では公開されていません。
Gemini モデルを使用するように PaLM コードを更新する
GenerativeModel
クラスのメソッドは、PaLM クラスのメソッドとほとんど同じです。たとえば、GenerativeModel.start_chat
を使用して PaLM で同等の ChatModel.start_chat
を置き換えます。ただし、Google Cloud では Gemini の改善と更新が常に行われるため、違いが生じる可能性があります。詳細については、Python SDK リファレンスをご覧ください。
PaLM API から Gemini API に移行するには、次のコード変更が必要です。
すべての PaLM モデルクラスで、Gemini の
GenerativeModel
クラスを使用します。GenerativeModel
クラスを使用するには、次のインポート ステートメントを実行します。from vertexai.generative_models import GenerativeModel
Gemini モデルを読み込むには、
from_pretrained
メソッドではなくGenerativeModel
コンストラクタを使用します。たとえば、Gemini 1.0 Pro モデルを読み込むには、GenerativeModel(gemini-1.0-pro)
を使用します。Gemini でテキストを生成する場合は、PaLM モデルで使用される
predict
メソッドではなく、GenerativeModel.generate_content
メソッドを使用します。例:
model = GenerativeModel("gemini-1.0-pro-002") response = model.generate_content("Write a short poem about the moon")
Gemini クラスと PaLM クラスの比較
各 PaLM モデルクラスは、Gemini の GenerativeModel
クラスに置き換えられます。次の表に、PaLM モデルで使用されるクラスと、Gemini で同等のクラスを示します。
PaLM モデル | PaLM モデルクラス | Gemini モデルクラス |
---|---|---|
text-bison |
TextGenerationModel |
GenerativeModel |
chat-bison |
ChatModel |
GenerativeModel |
code-bison |
CodeGenerationModel |
GenerativeModel |
codechat-bison |
CodeChatModel |
GenerativeModel |
一般的な設定手順
Vertex AI の PaLM API と Gemini API のいずれでも設定プロセスは同じです。詳細については、Vertex AI SDK for Python の概要をご覧ください。Vertex AI SDK for Python をインストールする簡単なコードサンプルを次に示します。
pip install google-cloud-aiplatform import vertexai vertexai.init(project="PROJECT_ID", location="LOCATION")
このサンプルコードでは、PROJECT_ID は Google Cloud プロジェクト ID に置き換え、LOCATION は Google Cloud プロジェクトのロケーション(us-central1
など)に置き換えます。
Gemini と PaLM のコードサンプル
次のコードサンプルのペアのそれぞれには、PaLM コードと、PaLM コードから移行された Gemini コードが含まれています。
テキスト生成: 基本
次のコードサンプルは、テキスト生成モデルの作成における PaLM API と Gemini API の違いを示しています。
PaLM | Gemini |
---|---|
|
|
パラメータを使用したテキスト生成
次のコードサンプルでは、テキスト生成モデルの作成における PaLM API と Gemini API の違いを、オプションのパラメータとともに示しています。
PaLM | Gemini |
---|---|
|
|
チャット
次のコードサンプルは、チャットモデルの作成における PaLM API と Gemini API の違いを示しています。
PaLM | Gemini |
---|---|
|
|
コード生成
次のコードサンプルは、うるう年かどうかを予測する関数を生成する際の PaLM API と Gemini API の違いを示しています。
Codey | Gemini |
---|---|
|
|
プロンプトを Gemini モデルに移行する
以前に PaLM 2 モデルで使用したプロンプト セットがある場合は、Vertex AI プロンプト オプティマイザー(プレビュー)を使用して、Gemini モデルで使用するように最適化できます。
次のステップ
- Vertex AI Gemini API の概要で最新のモデルと機能の詳細について確認する。