A API Gemini permite enviar comandos multimodais ao modelo do Gemini. As modalidades aceitas incluem texto, imagem e vídeo.
Para orientações gerais sobre criação de comandos, consulte Estratégias de design de comandos.
Modelos compatíveis
Os modelos a seguir são compatíveis com respostas de prompts multimodais.
- Flash 1.5 do Gemini (pré-lançamento)
- Gemini 1.5 Pro (Pré-lançamento)
- Gemini 1.0 Pro Vision
É possível melhorar os prompts multimodais seguindo estas práticas recomendadas:
Conceitos básicos do design de comandos
- Seja específico nas instruções: crie instruções claras e concisas que deixem pouco espaço para interpretações equivocadas.
- Adicione alguns exemplos ao comando: use exemplos realistas de few-shot para ilustrar o que você quer alcançar.
- Detalhamento por etapas: divida tarefas complexas em submetas gerenciáveis para guiar o modelo pelo processo.
- Especifique o formato de saída: no comando, peça que a saída esteja no formato desejado, como markdown, JSON, HTML e muito mais.
- Coloque sua imagem em primeiro lugar nos comandos de imagem única: o Gemini processa entradas de imagem e texto em qualquer ordem, mas para comandos com uma única imagem, o desempenho pode ser melhor se a imagem (ou vídeo) for colocada antes no comando de texto. No entanto, nos comandos que exigem que as imagens sejam altamente intercaladas com textos para fazer sentido, use a ordem mais natural.
Como solucionar problemas do comando multimodal
- Se o modelo não estiver desenhando informações da parte relevante da imagem: solte dicas com os aspectos da imagem de que você quer que o comando extraia informações.
- Se a saída do modelo for muito genérica (não personalizada o suficiente para a entrada de imagem/vídeo): no início do comando, peça para o modelo descrever as imagens ou o vídeo antes de fornecer a tarefa ou peça ao modelo para consultar o conteúdo da imagem.
- Para resolver problemas de qual parte falhou: peça para o modelo descrever a imagem ou explicar o raciocínio para avaliar o entendimento inicial dele.
- Se o comando resultar em conteúdo alucinado: diminua a configuração de temperatura ou peça ao modelo descrições mais curtas para diminuir a probabilidade de extrapolar detalhes.
- Ajuste os parâmetros de amostragem: teste diferentes configurações de temperatura e as seleções de top-k para ajustar a criatividade do modelo.
Conceitos básicos do design de comandos
Esta seção expande as práticas recomendadas listadas na seção anterior.
Observação: os resultados do modelo dos exemplos do Gemini a seguir podem variar de acordo com a execução.
Especificar as instruções
As instruções têm mais sucesso quando são claras e detalhadas. Se você tiver uma saída específica em mente, é melhor incluir esse requisito no prompt para garantir a saída desejada.
Às vezes, a intenção de um comando pode parecer clara para a pessoa que a escreveu, mas, na verdade, falta especificidades. Para personalizar o comportamento do modelo, analise como o comando pode ser interpretado (incorretamente) e verifique se as instruções fornecidas são claras e específicas. Deixe espaço mínimo para interpretações erradas
Para essa imagem de uma placa de aeroporto, pedir ao modelo apenas "descrever esta imagem" poderia gerar uma descrição geral. Se você precisa que o modelo analise a hora e a cidade a partir da imagem, inclua essa solicitação diretamente no comando.
Comando | Resposta do modelo |
---|---|
Descreva esta imagem. |
A imagem mostra um painel de chegadas e partidas do aeroporto. |
Comando atualizado | Resposta aprimorada |
---|---|
Analise a hora e a cidade no quadro do aeroporto mostrado nesta imagem em uma lista. |
Adicionar alguns exemplos
O modelo Gemini pode aceitar várias entradas que podem ser usadas como exemplos para entender a saída que você quer. Adicionar esses exemplos pode ajudar o modelo a identificar os padrões e aplicar a relação entre as imagens fornecidas e as respostas ao novo exemplo. Isso também é chamado de aprendizado "few-shot".
No exemplo abaixo, a saída inicial é escrita na forma de frase e também contém o país (Brasil). Suponha que você queira a saída em um formato ou estilo diferente e queira apenas a cidade, não o país. Adicionar alguns exemplos ao comando pode fazer com que o modelo responda da maneira desejada.
Comando | Resposta do modelo |
---|---|
Determine a cidade junto com o ponto de referência. |
O ponto turístico é a estátua do Cristo Redentor no Rio de Janeiro, Brasil. |
Comando atualizado | Resposta aprimorada |
---|---|
Determine a cidade junto com o ponto de referência. |
cidade: Roma, ponto de referência: o Coliseu. |
cidade: Pequim, ponto de referência: Cidade Proibida |
|
cidade: Rio de Janeiro, ponto de referência: estátua do Cristo Redentor |
Detalhar por passo
Para tarefas complexas, como as que exigem compreensão e raciocínio visual, pode ser útil dividir a tarefa em etapas menores e mais diretas. Também poderia ser eficaz se você pedisse diretamente ao modelo para “pensar passo a passo” no comando.
Comando | Resposta do modelo |
---|---|
Quando vou ficar sem papel higiênico? |
Em breve, você só tem mais três rolos. |
Comando atualizado | Resposta aprimorada |
---|---|
|
|
Problemas matemáticos ou outros tipos de problemas são ótimos candidatos para pedir que o modelo pense em etapas.
Comando | Resposta |
---|---|
Qual é o quarto termo na sequência? |
-135 |
A resposta do modelo está incorreta. Algumas maneiras de melhorar isso é pedir ao modelo que analise o problema antes de responder ao comando.
Comando | Resposta |
---|---|
Analise a fórmula na imagem primeiro. Depois, com base na fórmula, responda "qual é o quarto termo na sequência?". |
Clique para abrir o resultado$$ b(n) = b(n-1) * (-3) $$ $$ b(1) = 15 $$
$$ b(4) = b(4-1) * (-3) $$ $$ b(4) = b(3) * (-3) $$ $$ b(3) = b(3-1) * (-3) $$ $$ b(3) = b(2) * (-3) $$ $$ b(2) = b(2-1) * (-3) $$ $$ b(2) = b(1) * (-3) $$ $$ b(2) = 15 * (-3) $$ $$ b(2) = -45 $$ $$ b(3) = b(2) * (-3) $$ $$ b(3) = -45 * (-3) $$ $$ b(3) = 135 $$ $$ b(4) = b(3) * (-3) $$ $$ b(4) = 135 * (-3) $$ $$ b(4) = -405 $$ Portanto, o quarto termo na sequência é -405. |
A resposta do modelo está correta. Agora, para simplificar ainda mais, peça ao modelo que pense em etapas detalhadas.
Comando atualizado | Resposta aprimorada |
---|---|
Qual é o quarto termo na sequência? Pense passo a passo. |
O primeiro termo é 15. O segundo termo é b(1) * (-3) = 15 * (-3) = -45. O terceiro termo é b(2) * (-3) = -45 * (-3) = 135. O quarto termo é b(3) * (-3) = 135 * (-3) = -405. |
Tente especificar o formato de saída
Um problema comum é a necessidade de a saída do modelo estar em um determinado formato (por exemplo, markdown, JSON, HTML), especialmente se ela precisar ser ingerida por uma tarefa downstream. Você pode tentar produzir saídas nesse formato instruindo o modelo a fazer isso no comando. Veja dois exemplos:
Comando | Resposta do modelo |
---|---|
Analise a tabela nesta imagem no formato markdown |
| Assunto | Status | Hora | Data de início | Prazo | | ------- | ------ | ---- | --------- | ------ | | Matemática | Concluído | 1h30 | 29/11/2023 | 01/12/2023 | | Geografia | Concluído | 30 min | 02/12/2023 | 04/12/2023 | | Física | Em andamento | 2 horas | 03/12/2023 | 05/12/2023 | | Biologia | Não começou | 6 horas | 02/11/2016 | 06/12/2023 | |
Comando | Resposta do modelo |
---|---|
Forneça uma lista com todos os atributos a seguir: Ingredientes, tipo de culinária, vegetariano ou não, no formato JSON |
|
Colocar a imagem em primeiro lugar nos comandos com uma imagem
O Gemini pode interpretar imagem e texto em qualquer ordem dentro de um comando, mas colocar uma única imagem antes do comando de texto pode levar a melhores resultados. Nos exemplos a seguir, você notará que a imagem ou o vídeo vem antes do texto em cada comando.
Como solucionar problemas do comando multimodal
Se você não receber uma resposta útil, talvez seja necessário solucionar o problema da solicitação. Aqui estão algumas estratégias que você pode tentar.
Se o modelo não estiver desenhando informações da parte relevante da imagem
Para receber uma resposta mais específica, indique de quais aspectos da imagem você quer que a solicitação extraia informações para informar a resposta.
Comando | Resposta do modelo |
---|---|
Quantos dias essas fraldas vão durar para um bebê? |
As fraldas durarão 198 dias antes de acabarem. |
Comando atualizado | Resposta aprimorada |
---|---|
Quanto tempo essas fraldas vão durar? Use o peso mostrado na caixa para determinar a idade da criança e o número total de fraldas contidas na caixa. Divida o número total por quantas fraldas a criança usa por dia. |
A caixa contém 198 fraldas. A caixa informa que as fraldas são para uma criança que pesa de 22 a 37 libras. A criança média nesta faixa de peso tem provavelmente entre 1 e 2 anos de idade. Uma criança de dois anos normalmente usa seis fraldas por dia, portanto, as fraldas vão durar cerca de 33 dias (198/6). |
Se a saída do modelo for muito genérica e não for personalizada o suficiente para a entrada de imagem ou vídeo
Para ajudar o modelo a adaptar a resposta às imagens, peça para ele descrever as imagens antes de realizar a tarefa de raciocínio.
Comando | Resposta do modelo |
---|---|
O que há em comum entre essas imagens? |
As quatro imagens são exemplos de fotografia de paisagem. |
Comando atualizado | Resposta aprimorada |
---|---|
Primeiro, descreva o que está em cada imagem em detalhes. O que há em comum entre essas imagens? |
A primeira imagem mostra uma pessoa fazendo as malas. A segunda imagem mostra um corredor vazio de um shopping. A terceira imagem mostra um rolo de papel higiênico. A quarta imagem mostra um mar escuro e tempestuoso. O ponto em comum entre essas imagens é que todas são exemplos de espaços liminais. Espaços liminais são lugares ou situações que estão entre dois outros lugares ou situações. Elas costumam ser caracterizadas por um senso de incerteza ou ambiguidade. A primeira imagem mostra a pessoa entre o momento em que está em casa e viajando. A segunda imagem mostra o corredor entre duas lojas. A terceira imagem é de papel higiênico, que pode representar um banheiro. Um banheiro é um espaço de transição entre domínios privados e públicos. É um lugar onde nos preparamos para entrar ou sair do mundo exterior. A quarta imagem mostra o mar entre calmo e tempestuoso. Espaços liminais podem ser empolgantes e perturbadores. Eles podem ser um lugar de recomeço ou de fim. Eles podem ser um local de reflexão ou ação. |
Você também pode tentar pedir explicitamente ao modelo para se referir ao que está na imagem.
Comando atualizado | Resposta aprimorada |
---|---|
O que há em comum entre essas imagens? Consulte o que está nas imagens na sua resposta. |
Todas as imagens são relacionadas a viagens. A primeira imagem mostra uma pessoa fazendo as malas, a segunda mostra um corredor vazio de um shopping, a terceira imagem mostra uma pilha de papel higiênico e a quarta mostra um mar escuro e violento. Todas essas imagens são relacionadas a viagens, porque são tudo o que as pessoas precisam ou usam quando viajam. A primeira imagem mostra uma pessoa fazendo as malas, que é algo que as pessoas fazem quando viajam. A segunda imagem mostra um corredor vazio de um shopping, que é um lugar onde as pessoas costumam comprar itens para viagens. A terceira imagem mostra uma pilha de papel higiênico, algo que as pessoas costumam usar quando estão viajando. A quarta imagem mostra um mar escuro e tempestuoso, algo que as pessoas encontram com frequência quando estão viajando. |
As mesmas dicas funcionam para resultados criativos de imagens ou vídeos. No exemplo a seguir com o coelho, pedir explicitamente ao modelo para incluir aspectos da imagem pode melhorar a saída.
Comando | Resposta do modelo |
---|---|
Você pode me escrever um poema sobre esta imagem? |
Coelhinho peludo e marrom Você morde a grama, tão verde e doce, |
Comando atualizado | Resposta aprimorada |
---|---|
Você pode escrever um poema descritivo e dramático sobre esta imagem e incluir o local? |
Coelhinho no verde É o oceano azul, Coelhinho, fale a verdade: Talvez seja a vastidão de tudo isso, Coelhinho me pergunto o que você sonha, Seja o que for, coelhinho! |
Solução de problemas em qual parte do prompt falhou
Pode ser difícil saber se uma solicitação falhou porque o modelo não entendeu a imagem ou se ele entendeu a imagem, mas não executou as etapas de raciocínio corretas.
Para diferenciar esses motivos, peça ao modelo que descreva o que está na imagem.
No exemplo abaixo, se o modelo responder com um lanche que parece diferente quando combinado com chá (como pipoca), primeiro é possível resolver problemas para determinar se o modelo reconheceu corretamente que a imagem contém chá.
Comando | Prompt de solução de problemas |
---|---|
Que lanchinho eu posso fazer em 1 minuto e que combina com este? |
Descreva o que há na imagem. |
Outra estratégia é pedir para o modelo explicar o raciocínio dele. Isso pode ajudar você a filtrar qual parte do raciocínio está incorreta, se houver.
Comando | Prompt de solução de problemas |
---|---|
Que lanchinho eu posso fazer em 1 minuto e que combina com este? |
Que lanchinho eu posso fazer em 1 minuto e que combina com este? Explique o motivo. |
Ajustar os parâmetros de amostragem
Em cada prompt, você envia ao modelo não apenas o comando multimodal, mas um conjunto de parâmetros de amostragem. O modelo pode gerar diferentes resultados para diferentes valores de parâmetros. Teste os diferentes parâmetros para conseguir os melhores valores para a tarefa. Os parâmetros mais comumente ajustados são os seguintes:
- Temperatura
- top-P
- top-K
Temperatura
A temperatura é usada para amostragem durante a geração de resposta, que ocorre quando top-P e top-K são aplicados.
A temperatura controla o grau de aleatoriedade na seleção do token. Temperaturas mais baixas são boas para comandos que exigem uma resposta mais determinista e menos aberta ou criativa, enquanto temperaturas maiores podem levar a resultados mais diversos ou criativos. Uma temperatura 0 é determinista, o que significa que a resposta de maior probabilidade é sempre selecionada.
Na maioria dos casos de uso, é melhor começar com a temperatura 0,4. Se você precisar de resultados mais criativos, tente aumentar a temperatura. Se você observar alucinações claras, tente reduzir a temperatura.
Top-K
O Top-K muda a forma como o modelo seleciona tokens para saída. O valor "1" de Top-K indica que o token selecionado é o mais provável entre todos no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto o valor "3" de Top-K significa que o próximo token é selecionado entre os três mais prováveis usando a temperatura.
Para cada etapa da seleção de tokens, são amostrados os tokens Top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de Top-P com o token final selecionado por meio da amostragem de temperatura.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. O valor padrão do top-K é 32.
Top-P
O Top-P muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados do mais provável (confira o Top-K) para o menos provável até que a soma das probabilidades seja igual ao valor do Top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de 0,6, 0,3 e 0,1 e o valor de Top-P for 0,9, o modelo selecionará A ou B como token seguinte usando temperatura e excluirá C como candidato.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. O valor padrão do top-P é 1,0.
A seguir
- Confira um tutorial de início rápido usando o Generative AI Studio ou a API Vertex AI
- Para começar, consulte Enviar solicitações de prompt multimodais.
- Saiba mais sobre limitações multimodais.