PaliGemma のプロンプトとシステム指示

このページでは、PaliGemma モデルのプロンプトのフォーマットとシステム手順について説明します。これらの Gemma モデル バリアントは、Gemma 基盤モデルと同じ一般的な形式を使用します。また、特定の画像関連タスク用の特別な構文もサポートしています。

プロンプトの形式

PaliGemma モデルは、基盤となる Gemma 基盤モデルと同じプロンプト形式を使用します。ただし、PaliGemma モデルは特別なタスク構文もサポートしています。これについては、次のセクションで説明します。Gemma プロンプトの書式設定の詳細については、Gemma プロンプトとシステム インストラクションをご覧ください。

画像データとテキストデータの順序

PaliGemma モデルにテキストデータと画像データをプロンプトする場合は、必ず画像データを先に指定し、その後にテキスト プロンプト データを指定する必要があります。画像とテキスト プロンプト データの順序を逆にしたり、画像とテキスト データを混在させたりすると、通常は使用できないレスポンスが生成されます。

プロンプト タスクの構文

PaliGemma モデルは、オブジェクトの識別や画像キャプションなどのタスク用に、特定のプロンプト パターンと構文でトレーニングされています。次のプロンプト タスク構文を使用して、PaliGemma モデルに特定の動作をリクエストできます。

  • "cap {lang}\n": 非常に未加工の短い字幕(WebLI-alt から)
  • "caption {lang}\n": COCO のような短いキャプション
  • "describe {lang}\n": 少し長めの、より具体的な字幕
  • "ocr": 光学式文字認識
  • "answer {lang} {question}\n": 画像の内容に関する質問応答
  • "question {lang} {answer}\n": 特定の回答に対する質問の生成
  • "detect {object} ; {object}\n": 画像内のリストに登録されているオブジェクトを見つけ、それらのオブジェクトの境界ボックスを返します。
  • "segment {object}\n": 画像内のオブジェクトが占有する領域を特定して、そのオブジェクトの画像セグメンテーションを作成します。

{lang} オプションは言語コード用です。PaliGemma は、このオプションを使用してタスク プロンプトの 34 種類の言語の音声認識をサポートしています。サポートされている言語の一覧は、GitHub で確認できます。

この構文の使用方法を示す詳細なコードサンプルについては、Keras で PaliGemma 出力を生成するチュートリアルをご覧ください。

一括プロンプト コマンド

1 つのプロンプト内に複数のプロンプト コマンドを指示のバッチとして指定できます。各プロンプト コマンドは \n 文字で終わる必要があります。次の例は、複数の手順を提供するプロンプト テキストの構造方法を示しています。

prompts = [
    'answer en where is the cow standing?\n',
    'answer en what color is the cow?\n',
    'describe en\n',
    'detect cow\n',
    'segment cow\n',
]
images = [cow_image, cow_image, cow_image, cow_image, cow_image]
outputs = paligemma.generate(
    inputs={
        "images": images,
        "prompts": prompts,
    }
)
for output in outputs:
    print(output)

システム指示

PaliGemma モデルは、基盤となる基盤モデルの Gemma システム指示以外のシステム指示をサポートしていません。