Prompt i instrukcje systemowe PaliGemma

Ta strona opisuje formatowanie promptów i instrukcje systemu dotyczące modeli PaliGemma. Te warianty modelu Gemma korzystają z tego samego ogólnego formatowania co modele podstawowe Gemma i obsługują specjalną składnię do wykonywania konkretnych zadań związanych z obrazami.

Format promptu

Modele PaliGemma używają tego samego formatowania promptów co modele podstawowe Gemma, na których są oparte. Modele PaliGemma obsługują też specjalną składnię zadań, o której mowa w następnej sekcji. Więcej informacji o formatowaniu promptów Gemma znajdziesz w artykule Prompty Gemma i instrukcje systemu.

kolejność danych obrazu i tekstu,

Gdy podajesz modele PaliGemma dane tekstowe i obrazowe, dane obrazowe muszą być najpierw, a potem dane tekstowe. Odwrócenie kolejności danych promptów obrazowych i tekstowych lub zmieszanie tych danych zwykle powoduje, że odpowiedzi są nieprzydatne.

Składnia promptu

Modele PaliGemma są trenowane z użyciem określonych wzorców i składni promptów do wykonywania zadań takich jak identyfikacja obiektów i opisywanie obrazów. Aby określić konkretne działanie modeli PaliGemma, możesz użyć tej składni prompt task:

  • "cap {lang}\n": bardzo krótkie napisy wstępnie przetworzone (obsługiwane tylko przez PT)
  • "caption {lang}\n": krótkie napisy
  • "describe {lang}\n": nieco dłuższe, bardziej opisowe napisy (obsługiwane tylko w przypadku PT)
  • "ocr": optyczne rozpoznawanie znaków (obsługiwane tylko przez PT)
  • "answer {lang} {question}\n": odpowiadanie na pytania dotyczące zawartości obrazu
  • "question {lang} {answer}\n": generowanie pytań na podstawie danej odpowiedzi (obsługiwane tylko w przypadku PT)
  • "detect {object} ; {object}\n": znajdowanie wymienionych obiektów na obrazie i zwracanie ich ograniczonych pól
  • "segment {object} ; {object}\n": zlokalizuj obszar zajmowany przez wymienione obiekty na obrazie, aby utworzyć podział obrazu dla tego obiektu.

Opcje {lang} dotyczą kodów języków. Dzięki tej opcji PaliGemma obsługuje rozpoznawanie języka w 34 różnych językach w przypadku promptów zadań. Listę obsługiwanych języków znajdziesz na GitHub.

.

Szczegółowe przykłady kodu pokazujące, jak używać tej składni, znajdziesz w poradniku Generowanie danych wyjściowych PaliGemma za pomocą Keras.

Prompty w języku naturalnym

Chociaż zalecamy stosowanie składni opisanej w poprzedniej sekcji, modele mieszane obsługują też język naturalny w przypadku wielu zadań. Na przykład polecenie „krótko opisz to zdjęcie” lub „co to jest ten tekst” będzie działać nawet wtedy, gdy nie zostanie podane w dokładnej składni.

Polecenia promptów zbiorczych

W ramach jednego prompta możesz podać więcej niż 1 polecenie promptu jako zestaw instrukcji. Każde polecenie prompt musi kończyć się znakiem \n. Z tego przykładu dowiesz się, jak ułożyć prompt, aby zawierał kilka instrukcji.

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)

Instrukcje systemowe

Modele PaliGemma nie obsługują żadnych dodatkowych instrukcji systemowych poza instrukcjami systemowymi Gemma z modeli bazowych, na których się opierają.