PaliGemma-Prompt und Systemanweisungen

Auf dieser Seite werden die Promptformatierung und die Systemanweisungen für PaliGemma-Modelle beschrieben. Diese Gemma-Modellvarianten verwenden dieselbe allgemeine Formatierung wie Gemma-Grundlagenmodelle und unterstützen auch eine spezielle Syntax für bestimmte bildbezogene Aufgaben.

Prompt format

PaliGemma-Modelle verwenden dieselbe Promptformatierung wie die zugrunde liegenden Gemma-Grundlagenmodelle. PaliGemma-Modelle unterstützen jedoch auch eine spezielle Aufgabensyntax, die im nächsten Abschnitt beschrieben wird. Weitere Informationen zur Formatierung von Gemma-Prompts finden Sie in der Gemma-Anleitung für Prompts und Systeme.

Reihenfolge der Bild- und Textdaten

Wenn Sie PaliGemma-Modelle mit Text- und Bilddaten anstoßen, müssen die Bilddaten immer zuerst und dann die Textdaten für den Prompt angegeben werden. Wenn Sie die Reihenfolge der Bild- und Text-Prompt-Daten umkehren oder Bild- und Textdaten mischen, werden in der Regel unbrauchbare Antworten generiert.

Syntax für Prompt-Aufgaben

Die PaliGemma-Modelle werden mit bestimmten Promptmustern und Syntax für Aufgaben wie Objekterkennung und Bildunterschriften trainiert. Mit dieser Prompt-Aufgabensyntax können Sie ein bestimmtes Verhalten von den PaliGemma-Modellen anfordern:

  • "cap {lang}\n": Sehr kurze Roh-Bildunterschrift (aus WebLI-alt)
  • "caption {lang}\n":Schöne, COCO-ähnliche kurze Untertitel
  • "describe {lang}\n":Etwas längere, aussagekräftigere Untertitel
  • "ocr":Optische Zeichenerkennung
  • "answer {lang} {question}\n":Beantwortung von Fragen zum Bildinhalt
  • "question {lang} {answer}\n": Fragegenerierung für eine bestimmte Antwort
  • "detect {object} ; {object}\n":Gelistete Objekte in einem Bild finden und die Begrenzungsrahmen für diese Objekte zurückgeben
  • "segment {object}\n":Den Bereich ermitteln, den das Objekt in einem Bild einnimmt, um eine Bildsegmentierung für dieses Objekt zu erstellen

Die {lang}-Optionen sind für Sprachcodes. Mit dieser Option unterstützt PaliGemma die Spracherkennung für 34 verschiedene Sprachen für Aufgabenaufforderungen. Eine Liste der unterstützten Sprachen finden Sie auf GitHub.

Ausführliche Codebeispiele zur Verwendung dieser Syntax finden Sie in der Anleitung Paligemma-Ausgabe mit Keras generieren.

Batch-Prompt-Befehle

Sie können mehrere Promptbefehle in einem einzigen Prompt als Batch angeben. Jeder Prompt-Befehl muss mit dem Zeichen \n enden. Im folgenden Beispiel wird gezeigt, wie Sie den Prompttext so strukturieren, dass mehrere Anweisungen enthalten sind.

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)

Systemanweisungen

Die PaliGemma-Modelle unterstützen keine zusätzlichen Systemanweisungen, abgesehen von den Gemma-Systemanweisungen der zugrunde liegenden Basismodelle.