サポートされているモデル
次の表に、ドキュメント理解をサポートするモデルを示します。
モデル | PDF のモダリティの詳細 |
---|---|
Gemini 1.5 Flash Gemini 1.5 Flash モデルカードに移動する |
プロンプトあたりのページ数の上限: 300 PDF ファイルの最大サイズ: 30 MB |
Gemini 1.5 Pro Gemini 1.5 Pro モデルカードに移動する |
プロンプトあたりのページ数の上限: 300 PDF ファイルの最大サイズ: 30 MB |
Gemini 1.0 Pro Vision Gemini 1.0 Pro Vision モデルカードに移動する |
プロンプトあたりのページ数の上限: 16 PDF ファイルの最大サイズ: 30 MB |
Gemini モデルでサポートされている言語の一覧については、モデル情報の Google モデルをご覧ください。マルチモーダル プロンプトの設計方法について詳しくは、マルチモーダル プロンプトを設計するをご覧ください。モバイルアプリやウェブアプリから Gemini を直接使用することをお考えの場合は、Android、Swift、ウェブの Google AI SDK をご覧ください。
リクエストにドキュメントを追加する
Gemini へのリクエストに PDF を 1 つ追加できます。
単一の PDF
次のタブでは、Python SDK を使用してプロンプト リクエストに PDF を含める方法について説明します。この PDF サンプルは、すべての Gemini マルチモーダル モデルで使用できます。
Python
Vertex AI SDK for Python のインストールまたは更新方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するか、非ストリーミング レスポンスを生成するかを選択できます。ストリーミングでは、プロンプトが生成されたときにそれに対するレスポンスの受信を伴います。つまり、モデルが出力トークンを生成するとすぐに出力トークンが送信されます。プロンプトに対する非ストリーミング レスポンスは、すべての出力トークンが生成された後にのみ送信されます。
ストリーミング レスポンスの場合は、generate_content
の stream
パラメータを使用します。
response = model.generate_content(contents=[...], stream = True)
非ストリーミング レスポンスの場合は、パラメータを削除するか、パラメータを False
に設定します。
サンプルコード
Java
このサンプルを試す前に、Vertex AI クイックスタートの Java の設定手順を実施してください。詳細については、Vertex AI Java SDK for Gemini リファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するか、非ストリーミング レスポンスを生成するかを選択できます。ストリーミングでは、プロンプトが生成されたときにそれに対するレスポンスの受信を伴います。つまり、モデルが出力トークンを生成するとすぐに出力トークンが送信されます。プロンプトに対する非ストリーミング レスポンスは、すべての出力トークンが生成された後にのみ送信されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
public ResponseStreamgenerateContentStream(Content content)
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
public GenerateContentResponse generateContent(Content content)
サンプルコード
Node.js
このサンプルを試す前に、Node.js SDK を使用した生成 AI クイックスタートの Node.js の設定手順を実施してください。詳細については、Node.js SDK for Gemini リファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ストリーミング レスポンスと非ストリーミング レスポンス
モデルがストリーミング レスポンスを生成するか、非ストリーミング レスポンスを生成するかを選択できます。ストリーミングでは、プロンプトが生成されたときにそれに対するレスポンスの受信を伴います。つまり、モデルが出力トークンを生成するとすぐに出力トークンが送信されます。プロンプトに対する非ストリーミング レスポンスは、すべての出力トークンが生成された後にのみ送信されます。
ストリーミング レスポンスの場合は、generateContentStream
メソッドを使用します。
const streamingResp = await generativeModel.generateContentStream(request);
非ストリーミング レスポンスの場合は、generateContent
メソッドを使用します。
const streamingResp = await generativeModel.generateContent(request);
サンプルコード
C#
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある C# の設定手順を完了してください。詳細については、Vertex AI C# API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
モデル パラメータを設定する
マルチモーダル モデルでは、次のモデル パラメータを設定できます。
トップ P
トップ P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計がトップ P 値に等しくなるまで、確率の高いもの(トップ K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 であり、トップ P 値が 0.5
であるとします。この場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から除外します。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
トップ K
トップ K は、モデルが出力用にトークンを選択する方法を変更します。トップ K が 1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。トップ K が 3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。
トークン選択のそれぞれのステップで、最も高い確率を持つトップ K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
温度
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、topP
と topK
が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0
の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。
モデルが返すレスポンスが一般的すぎる、短すぎる、あるいはフォールバック(代替)レスポンスが返ってくる場合は、温度を高く設定してみてください。
有効なパラメータ値
パラメータ | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Gemini 1.5 Flash |
---|---|---|---|
Top-K | 1~40(デフォルトは 32) | 非対応 | 非対応 |
Top-P | 0~1.0(デフォルトは 1.0) | 0~1.0(デフォルトは 0.95) | 0~1.0(デフォルトは 0.95) |
Temperature | 0~1.0(デフォルトは 0.4) | 0~2.0(デフォルトは 1.0) | 0~2.0(デフォルトは 1.0) |
ドキュメントの要件
PDF に必要な MIME タイプは application/pdf
です。
PDF に関するベスト プラクティス
PDF を使用する場合は、次のベスト プラクティスと情報を参考にしてください。
- PDF は画像として扱われるため、PDF の 1 ページは 1 つの画像として扱われます。
- サポートされるページ数は、モデルがサポートできる画像の数が上限になります。Gemini 1.0 Pro Vision の場合は 16 個です。Gemini 1.5 Pro と Gemini 1.5 Flash の場合は 300 個です。ドキュメントが長い場合は、複数の PDF に分割して処理することを検討してください。
- PDF を入力として使用する場合の費用は Gemini の画像処理の料金に準じます。たとえば、Gemini API 呼び出しで 2 ページの PDF を含めると、入力として 2 つの画像を処理する場合の料金が発生します。
- プロンプトに 1 つの PDF が含まれている場合は、テキスト プロンプトの前に PDF を配置します。
- スキャンした画像のテキストではなく、テキストとしてレンダリングされたテキストを含む PDF を使用します。この形式では、テキストが機械で判読可能になるため、スキャンした画像を PDF にした場合よりも、モデルによる編集、検索、操作が容易になります。これにより、契約書など、テキストの多いドキュメントを扱う際に最適な結果が得られます。
制限事項
Gemini マルチモーダル モデルは多くのマルチモーダル ユースケースに対応していますが、モデルの制限事項も理解しておく必要があります。
- 空間推論: PDF 内のテキストやオブジェクトの位置を正確に特定することはできません。オブジェクトの数も推定値しか返されない場合があります。
- 精度: PDF ドキュメント内の手書きテキストを解釈する際に、ハルシネーションが発生する可能性があります。
次のステップ
- Gemini マルチモーダル モデルで構築を開始する - 新規のお客様は Google Cloud クレジット $300 分を無料で利用して、Gemini の機能を試すことが可能です。
- チャット プロンプト リクエストの送信方法を学習する。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについて学習する。