Comando e instruções do sistema PaliGemma

Esta página descreve a formatação de comandos e instruções do sistema para modelos da PaliGemma. Essas variantes de modelo Gemma usam a mesma formatação geral dos modelos de base do Gemma e oferecem suporte a uma sintaxe especial para tarefas específicas relacionadas a imagens.

Formato do comando

Os modelos PaliGemma usam a mesma formatação de comando que os modelos de base do Gemma em que se baseiam. No entanto, os modelos PaliGemma também oferecem suporte a uma sintaxe de tarefas especial, que é descrita na próxima seção. Para mais informações sobre a formatação de comandos do Gemma, consulte Instruções do sistema e comandos do Gemma.

Ordem dos dados de texto e imagem

Ao solicitar modelos PaliGemma com dados de texto e imagem, os dados de imagem precisam ser fornecidos primeiro e, em seguida, os dados de solicitação de texto. Inverter a ordem dos dados de comando de imagem e texto ou misturar esses dados geralmente gera respostas inutilizáveis.

Sintaxe da tarefa de comando

Os modelos PaliGemma são treinados com padrões e sintaxe específicos para tarefas como identificação de objetos e legendas de imagens. É possível usar essa sintaxe de comando para solicitar um comportamento específico dos modelos PaliGemma da seguinte maneira:

  • "cap {lang}\n":legenda curta muito crua (com suporte apenas para PT)
  • "caption {lang}\n":legendas curtas
  • "describe {lang}\n":legendas mais longas e descritivas (compatível apenas com PT)
  • "ocr":reconhecimento óptico de caracteres (somente compatível com PT)
  • "answer {lang} {question}\n":resposta a uma pergunta sobre o conteúdo da imagem
  • "question {lang} {answer}\n":geração de perguntas para uma determinada resposta (somente com suporte para PT)
  • "detect {object} ; {object}\n":localize objetos listados em uma imagem e retorne as caixas delimitadoras desses objetos.
  • "segment {object} ; {object}\n":localiza a área ocupada pelos objetos listados em uma imagem para criar uma segmentação de imagem para esse objeto

As opções {lang} são para códigos de idioma. O PaliGemma oferece suporte ao reconhecimento de idioma para 34 idiomas diferentes em comandos de tarefas com essa opção. Confira a lista de idiomas compatíveis no GitHub.

Para conferir exemplos de código detalhados que mostram como usar essa sintaxe, consulte o tutorial Generate PaliGemma output with Keras.

Como usar a linguagem natural

Embora a sintaxe na seção anterior seja recomendada, os modelos de mistura também oferecem suporte à linguagem natural para muitas tarefas. Por exemplo, "descrever esta imagem brevemente" ou "qual é este texto" ainda vão funcionar mesmo que não seja solicitado com a sintaxe exata.

Comandos de comando em lote

É possível fornecer mais de um comando de solicitação em um único comando como um lote de instruções. Cada comando de solicitação precisa terminar com um caractere \n. O exemplo abaixo demonstra como estruturar o texto do comando para fornecer várias instruções.

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)

Instruções do sistema

Os modelos PaliGemma não oferecem suporte a outras instruções do sistema além das instruções do sistema Gemma dos modelos de base em que se baseiam.