Engenharia de solicitações para geração de IA generativa

A engenharia de solicitações é a arte de fazer a pergunta certa para conseguir a melhor saída de um LLM. Ela permite a interação direta com o LLM usando apenas solicitações de linguagem simples.

No passado, trabalhar com modelos de machine learning normalmente exigia conhecimento profundo de conjuntos de dados, estatísticas e técnicas de modelagem. Atualmente, os LLMs podem ser "programados" em inglês, bem como em outros idiomas.

Ser um ótimo engenheiro de equipes não precisa de experiência em programação. No entanto, a criatividade e a persistência serão muito úteis na sua jornada. Continue lendo para aprender algumas técnicas de prompt úteis.

Práticas recomendadas de solicitação

  1. Comunique claramente qual conteúdo ou informação é o mais importante.

  2. Estruture o prompt: comece definindo o papel dele, forneça dados de contexto/entrada e, em seguida, forneça a instrução.

  3. Use exemplos específicos e variados para ajudar o modelo a restringir o foco e gerar resultados mais precisos.

  4. Use restrições para limitar o escopo da saída do modelo. Isso ajuda a evitar que as instruções sejam imprecisas.

  5. Divida tarefas complexas em uma sequência de solicitações mais simples.

  6. Instrua o modelo a avaliar ou verificar as próprias respostas antes de produzi-las. ("Limite a resposta a três frases", "Classifique seu trabalho em uma escala de 1 a 10 para concisão", "Você acha que isso está correto?").

E talvez o mais importante:

Seja criativo. Quanto mais criativo e de mente aberta você tiver, melhores serão os resultados. Os LLMs e a engenharia de assistência ainda estão engatinhando e evoluindo todos os dias.

Tipos de prompts

Solicitação direta (zero-hot)

O prompt direto (também conhecido como Zero-shot) é o tipo mais simples de prompt. Ela não fornece exemplos para o modelo, apenas a instrução. Também é possível definir a instrução como uma pergunta ou dar um "papel" ao modelo, como mostrado no segundo exemplo abaixo.

Forneça:

  1. Instrução
  2. Algum contexto

Geração de ideias:

Prompt: Can you give me a list of ideas for blog posts for tourists visiting
New York City for the first time?

Solicitação de papel:

Prompt: You are a mighty and powerful prompt-generating robot. You need to
understand my goals and objectives and then design a prompt. The prompt should
include all the relevant information context and data that was provided to you.
You must continue asking questions until you are confident that you can produce
the best prompt for the best outcome. Your final prompt must be optimized for
chat interactions. Start by asking me to describe my goal, then continue with
follow-up questions to design the best prompt.

Organização dos dados:

Prompt: Create a four-column spreadsheet of 10 highly-rated science fiction
movies, year of release, average audience rating, and top 3 keywords from
audience reviews.

Make sure to cite the source of the audience rating.

Prompt com exemplos (um, poucos e vários planos)

A solicitação única mostra ao modelo um exemplo claro e descritivo do que você gostaria que ele imitasse.

Geração de ideias usando um exemplo:

Prompt:

Come up with a list of ideas for blog posts for tourists visiting
New York City for the first time.

1. Fuggedaboutit! Where to Stay in New York City On Your First Visit

A solicitação poucas fotos e várias imagens mostram ao modelo mais exemplos do que você quer que ele faça. Ele funciona melhor do que zero foto para tarefas mais complexas em que a replicação de padrão é desejada ou quando você precisa que a saída seja estruturada de uma maneira específica e difícil de descrever.

Classificação de sentimento em poucas fotos:

Prompt:

Great product, 10/10: Positive
Didn't work very well: Negative
Super helpful, worth it: Positive
It doesn't work!:

Quando esse prompt for executado, a resposta do modelo será classificada como "Não funciona" como positiva ou negativa, conforme mostrado nos exemplos.

Preditor de resposta com vários instantâneos de emojis:

Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.

input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤‍🔥

input: Well that looks great regardless
output: ❤️,🪄

input: Unfortunately this won't work
output: 💔,😔

input: sounds good, I'll look into that
output: 🙏,👍

input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️

input: Woo! Launch time!

Mesmo processo aqui, mas como o prompt é mais complexo, o modelo recebeu mais exemplos para emular.

Cadeia de pensamentos

A solicitação da Chain of Thought (CoT) incentiva o LLM a explicar o raciocínio. Combine-a com solicitações de poucas imagens para conseguir melhores resultados em tarefas mais complexas que exigem raciocínio antes de uma resposta.

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:

CoT

Lembre-se do prompt de imagem zero anterior, essa abordagem usa um prompt de imagem zero e adiciona uma instrução: "Vamos pensar passo a passo". O LLM é capaz de gerar uma cadeia de pensamento a partir dessa instrução e, geralmente, também é uma resposta mais precisa. Essa é uma ótima abordagem para fazer com que LLMs gerem respostas corretas para problemas como palavras.

Prompt:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and
2 to the repairman. I then went and bought 5 more apples and ate 1. How many
apples was I left with?

Let's think step by step.

Estratégias de iteração de prompt

Aprenda a amar a realidade de reescrever solicitações várias vezes (possivelmente dezenas) de vezes. Veja algumas ideias para refinar as solicitações se você não souber o que fazer:

Observação: essas estratégias podem se tornar menos úteis ou necessárias com o tempo, à medida que os modelos melhoram.

  1. Repita palavras-chave, frases ou ideias

  2. Especifique o formato de saída desejado (CSV, JSON etc.)

  3. Use letras maiúsculas para enfatizar pontos ou instruções importantes. Você também pode tentar exageros ou linguagem hiperbólica. Por exemplo: "Sua explicação deve ser absolutamente impossível de interpretar incorretamente. Cada palavra precisa dar clareza!"

  4. Use sinônimos ou frases alternativas. Por exemplo, em vez de "Resumir", anexe "tldr" a algum texto de entrada. Troque palavras ou frases diferentes e documente quais funcionam melhor ou pior.

  5. Teste a técnica de sanduíches com solicitações longas: adicione a mesma instrução em lugares diferentes.

  6. Use uma biblioteca de solicitações para se inspirar. O Prompt Hero e esta galeria de prompts são dois bons lugares para começar.

Outros recursos

Práticas recomendadas de solicitações

Saiba mais sobre solicitações (externos)