Engenharia de comando para IA generativa

A engenharia de prompts é a arte de fazer a pergunta certa para obter a melhor saída de um LLM. Permite a interação direta com o LLM usando apenas comandos em linguagem simples.

No passado, trabalhar com modelos de machine learning geralmente precisava conhecimento de conjuntos de dados, estatísticas e técnicas de modelagem. Atualmente, os LLMs podem ser "programado" em inglês, assim como outros idiomas.

Para ser um ótimo engenheiro de comando, não é preciso ter experiência em programação. Criatividade e no entanto, a persistência beneficiará muito em sua jornada, no entanto. Leia sobre algumas técnicas úteis de comandos.

Práticas recomendadas de comandos

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

  2. Estruture o comando: comece definindo o papel, dê dados de contexto/entrada. depois 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 pode ajudar a evitar desviar das instruções para erros factuais.

  5. Divida tarefas complexas em uma sequência de comandos mais simples.

  6. Instrua o modelo a avaliar ou verificar as próprias respostas antes de produzir para resolvê-los com rapidez. ("Limite sua resposta a três frases", "Classifique seu trabalho com escala de 1 a 10 para concisão", "Você acha que está correto?").

E talvez o mais importante:

Use a criatividade! Quanto mais criativos com a mente aberta você for, melhores serão seus resultados. LLMs e comando e engenharia de dados ainda estão engatinhando e evoluindo a cada dia.

Tipos de comandos

Comandos diretos (zero-shot)

Os comandos diretos (também conhecidos como zero-shot) são o tipo mais simples. Ela não dá exemplos ao modelo, apenas a instrução. Você também pode formular uma instrução como uma pergunta ou dar um "papel" ao modelo, como vimos 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?

Instrução de função:

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.

Comandos com exemplos (one-shot, few-shot e multi-shot)

Os comandos one-shot mostram ao modelo um exemplo claro e descritivo do que que você gostaria de imitar.

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

Os comandos few-shot e multi-shot mostram ao modelo mais exemplos do que você quer o que fazer. Ele funciona melhor do que o zero-shot para tarefas mais complexas, em que o padrão se quiser replicação ou quando você precisar que a saída seja estruturada em um maneira específica que é difícil de descrever.

Classificação de sentimento few-shot:

Prompt:

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

Quando esse comando é executado, a resposta do modelo é classificar trabalho" como positivo ou negativo, conforme mostrado nos exemplos.

Previsor de resposta de emoji multishot:

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!

O mesmo processo aqui, mas como o comando é mais complexo, o modelo foi mais exemplos para emular.

Comandos de fluxo de consciência

Os comandos da Cadeia de Pensamento (CoT) incentivam o LLM a explicar o raciocínio. Combine-os com comandos few-shot para conseguir resultados melhores em tarefas mais complexas. que exigem um 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 zero-shot

Voltando aos comandos zero-shot de antes, essa abordagem usa um zero-shot e adiciona uma instrução: "Vamos pensar passo a passo". O LLM pode gerar uma cadeia de pensamento a partir dessa instrução e, geralmente, um resultado também a responder. Essa é uma ótima abordagem para fazer com que LLMs gerem respostas 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 instruções de vários (possivelmente dezenas) vezes. Aqui estão algumas ideias para refinar comandos se você não souber o que fazer:

Observação:essas estratégias podem se tornar menos úteis ou necessárias com o tempo, conforme os modelos de IA podem melhorar.

  1. Repetir palavras-chave, frases ou ideias

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

  3. Use todas as letras maiúsculas para enfatizar instruções ou pontos 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 transfira uma clareza!"

  4. Use sinônimos ou frases alternativas (por exemplo, em vez de "Resumir", tente anexando "tldr" texto de entrada). Troque palavras ou frases diferentes e documentar quais funcionam melhor e quais são piores.

  5. Experimente a técnica do sanduíche com instruções longas: adicione a mesma afirmação em lugares diferentes.

  6. Use uma biblioteca de comandos como inspiração. Página principal do comando e esta galeria de comandos são dois bons lugares para começar.

Outros recursos

Práticas recomendadas de comandos

Aprender sobre comandos (externo)