Article image
Daniel BINS
Daniel BINS15/08/2024 23:26
Share

Engenharia de Prompts na prática

  • #Engenharia de Prompt

Para extrair o máximo de valor das inteligências artificiais é fundamental dominar técnicas de Engenharia de Prompt

A Engenharia de Prompt é a técnica utilizada para projetar e refinar prompts para modelos de linguagem artificial como o ChatGPT, Gemini, entre outras. Com estas técnicas, podemos obter respostas úteis para resolver nossos problemas.

Este é uma tema relativamente novo, que foi ganhando força nos últimos anos. Com a chegada de modelos de linguagem como o GPT-1 e o BERT a partir de 2017, os usuários foram percebendo que a forma como as perguntas eram elaboradas tinha impacto na resposta. Mas a partir de 2022, com a popularização do ChatGPT, surgiu a necessidade de desenvolver técnicas para instruir a inteligência artificial para obter resultados de maior qualidade. A partir desse período, o termo "engenharia de prompt" se torna popular.

O QUE É UM PROMPT?

Chamamos de prompt um texto em linguagem natural que solicita que a uma IA generativa execute uma tarefa específica. Ele deve conter as informações necessárias para que o modelo de IA generativa saiba o que você deseja como resultado.

QUAIS AS CARACTERÍSTICAS DE UM BOM PROMPT?

Algumas características importantes de um bom prompt são as seguintes:

  • Clareza e Concisão: As instruções devem ser fáceis de entender. Use uma linguagem simples para construir as suas perguntas e evite ambiguidades.
  • Especificidade: Devemos informar os detalhes necessários para resolver o problema. Evite dar instruções muito extensas.
  • Contexto: Contexto é muito importante na hora de gerar uma resposta, inclua informações adicionais que julgue relevante para o entendimento do problema. Evite fazer perguntas abertas, pois elas podem levar a respostas imprecisas.
  • Indicador de Saída: Defina claramente como deseja receber a resposta. Especifique o formato ou o tipo de resposta que espera, como uma lista, um resumo ou uma explicação detalhada.
  • Objetivo Claro: Certifique-se de que o objetivo do prompt está bem definido. Um prompt com um objetivo claro ajuda a gerar respostas que são mais alinhadas com suas expectativas.
  • Teste e Ajuste: Criar um bom prompt é um processo iterativo. Pode ser necessário testar diferentes variações do prompt e ajustar conforme necessário para obter o melhor resultado possível.

TÉCNICAS DE PROMPT ENGINEERING

Existem várias técnicas utilizadas para a construção de prompts. Vou comentar três que eu considero como as mais utilizadas, que são as seguintes:

ZERO SHOT PROMPTING

Nesta técnica tentamos resolver o problema sem fornecer exemplos ao modelo de linguagem.

FEW-SHOT PROMPTING

Nesta técnica tentamos resolver o problema enviando alguns exemplos ou instruções extras ao modelo de linguagem.

CHAIN-OF-THOUGHT PROMPTING

Utilizando esta técnica nós informamos ao modelo de linguagem o passo a passo necessário para resolver o problema.

Nós vamos ver a seguir como podemos usar estas técnicas para resolver um problema real.

COMO ISSO FUNCIONA NA PRÁTICA?

Para ver como a forma de construir o prompt impacta o resultado eu utilizei a IA para construir uma página HTML para listar imagens.

Eu utilizei nestes testes o Gemini, mas você pode utilizar a inteligência artificial de sua preferência. Eu vou compartilhar o prompt e links contendo a resposta enviada pela IA e a página criada com base em nossa solicitação, para que você tirar suas próprias conclusões.

A primeira tentativa foi feita utilizando a técnica do ZERO SHOT PROMPTING. O prompt utilizado foi o seguinte:

Crie uma página HTML que possa listar 12 imagens.

E o resultado recebido foi este:

image

Clique aqui para ver a página gerada pela IA

Clique aqui para ver a resposta completa enviada pela IA

Como você pode ver no resultado, ele criou a pagina com a lista de imagens, mas o problema foi que ele não mandou nenhuma imagem de exemplo. Um ponto positivo é que ao abrir num dispositivo móvel as imagens seriam ordenadas uma abaixo da outra. Mas o resultado não faz o olho de ninguém brilhar. 

Se faz necessário melhorar o prompt, dando alguns exemplos de como quero que a página seja construída. Vamos tentar outra técnica, a FEW-SHOT PROMPTING. Criei um novo prompt e utilizei o seguinte conteúdo:

Crie uma página HTML que possa listar 12 imagens divididas em 3 imagens por linha. Insira imagens de exemplo para eu ver como vai ficar

E o resultado recebido foi este:

image

Clique aqui para ver a página gerada pela IA

Clique aqui para ver a resposta completa enviada pela IA

Nesta resposta eu tenho uma página melhor que a anterior, com imagens que me permitem ver de forma mais adequada o resultado. Mas existem pontos a melhorar, em dispositivos móveis não ficou bom e a lista ficou muito grande. 

Vamos precisar de um prompt mais robusto para obter um resultado de melhor qualidade. Desta vez vou explicar o processo de como eu quero que a página seja construída. Entra em campo a técnica do CHAIN-OF-THOUGHT PROMPTING. Fiz um novo prompt e escrevi um longo texto detalhando as minhas expectativas.

Preciso criar uma página HTML para exibir 12 imagens, sendo que devem ser exibidas 3 por linha. Você deve incluir neste código imagens de exemplo para que eu possa ver como vai ficar.
Para construir esta página, você deve seguir as seguintes instruções:
1 - Quando a página for acessada num computador, devem aparecer 3 imagens por linha. Se o acesso for através de um dispositivo móvel, as imagens devem estar uma abaixo da outra.
2 - Quando a página for acessada num computador, a listagem das imagens deve ocupar 70% da largura útil da tela, então devem existir espaços em brancos nas laterais.
3 - As imagens devem ter cantos arredondados.
4 - Quando eu clicar em alguma imagem, ela deve aparecer em tamanho maior, sobrepondo a tela.

Perceba que desta vez seguimos uma sequência lógica, detalhando os requisitos que a página deve atender. Será que todo este trabalho vai dar certo? O retorno que o prompt gerou foi este: 

image

image

Clique aqui para ver a página gerada pela IA

Clique aqui para ver a resposta completa enviada pela IA

Desta vez tivemos um resultado muito superior as tentativas anteriores. Houve um problema pontual em relação ao modal, ao clicar na imagem o modal mostrou a imagem pequena e essa não era a minha expectativa, se você olhar o final do prompt vai ver que eu pedi para a imagem ampliada ocupar toda a tela. Mas isso pode ser resolvido facilmente iterando este prompt. Continuando com a conversa, enviei o seguinte prompt:

Por favor ajuste o modal que você criou para que ele exiba a imagem ocupando 70% da largura da tela

E a correção foi feita.

Você poderia continuar iterando com este prompt e solicitar outros ajustes. Por exemplo, em todas as respostas o JavaScript e o CSS foram inseridos dentro do arquivo HTML, você poderia iterar para pedir para que ele gere os arquivos em separado. Ou então solicitar a conversão deste HTML para inserir em algum framework como o React por exemplo. Existem muitas possibilidades de melhoria que podem ser aplicadas na resposta original. 

REFERÊNCIAS

Links para você aprofundar o seu conhecimento sobre este assunto.

https://humanloop.com/blog/prompt-engineering-101

https://www.superside.com/blog/chatgpt-prompts

https://cookbook.openai.com/

https://ai.google.dev/gemini-api/cookbook?hl=pt-br

Share
Comments (1)
@venelouis
@venelouis - 26/08/2024 23:34

parabéns ótimo artigo