Publicado originalmente por Vectors of Mind.


Um mago digitando em um teclado de alta tecnologia. O computador é um cérebro de alta tecnologia com vias neurais luminosas e, na tela, está escrito “O acorde secreto que agradou ao Senhor”. A túnica do mago é adornada com estrelas e luas, e o fundo mostra uma combinação de elementos místicos e tecnológicos.
Você depois de ler esta publicação

Meu trabalho se tornou perigosamente próximo do de um Engenheiro de Prompts1. Isso está perfeitamente de acordo comigo, pois combina meu amor pela escrita, pela psicometria e pelo PLN. Eis algumas das técnicas de elaboração de prompts mais poderosas:

  1. Use instruções claras e específicas
  2. Raciocínio em cadeia de pensamento
  3. Reúna as informações necessárias antes de executar uma tarefa
  4. Divida as tarefas em etapas
  5. Termos técnicos são seus aliados
  6. Um conjunto variado de frases úteis

1. Instruções claras e específicas #

Advogados e cientistas da computação são naturalmente bons nisso. Na verdade, uma das alegrias de elaborar prompts é que se pode ser muito menos preciso do que na programação convencional, e os LLMs frequentemente captam a ideia geral. No entanto, muitas solicitações podem ser aprimoradas simplesmente explicitando a tarefa e o formato que a resposta deve assumir. Por exemplo, recentemente improvisei esta refeição:

Imagem de How to prompt chatGPT

Estava ótima, caso queira saber. Outros exemplos:

  • “Resuma a história da IA em um parágrafo.”

  • “Crie uma tabela das famílias linguísticas mais antigas, ordenadas por idade. Seja exaustivo.”2

  • “Reescreva o texto entre aspas no estilo de White e Strunk. Dê-me três opções.”

  • “Calcule uma matriz de correlação de Pearson para as colunas 2–7 do arquivo .csv anexado.”

    • acompanhamento: “Escreva um código para exibir os resultados como um mapa de calor com resolução suficientemente alta para que possa ser usado em um pôster. Use as melhores práticas nas escolhas estéticas.”

Instruções específicas frequentemente incluem exemplos específicos. White e Strunk escreveram The Elements of Style. Citar o livro deles é melhor do que usar adjetivos como “concisa”, “profissional” ou “excelente” para caracterizar a escrita. Em parte porque os LLMs tendem a entregar mais do que o solicitado, especialmente diante de adjetivos específicos. Portanto, se você quiser que o robô adote uma persona insolente, experimente dizer a ele que aja como Veronica Mars ou Regina George, de Meninas Malvadas.

2. Raciocínio em cadeia de pensamento #

Os LLMs são treinados em um corpus textual gigantesco para prever a próxima palavra. Surpreendentemente, isso os torna bons em aproximar-se do raciocínio, mas seu desempenho se deteriora rapidamente em tarefas complexas. Aqui, “complexo” pode significar algo como “somar os números da coluna 1”. É muito difícil fazer isso em 1-shot, e o modelo produzirá algum número que pareça razoável e provavelmente esteja na faixa correta, mas não seja a resposta correta. Acrescentar “pense nisso em etapas” produz resultados extraordinários. Com frequência, nem sequer é preciso especificar quais são as etapas; os LLMs podem inferir que, para somar a coluna, as etapas intermediárias consistem em escrever “n1 + n2 + n3 + … + n100 =”. É, essencialmente, induzi-lo a elaborar um prompt para si mesmo a fim de obter uma resposta melhor do lado direito desse sinal de igualdade. Ou, por analogia, dar-lhe tempo para pensar sobre o problema. Para qualquer problema, a frase “pense nisso em etapas” é sua primeira linha de defesa ao lidar com alucinações de LLMs. Se isso não funcionar, enumere você mesmo as etapas (uma técnica à qual retornaremos).

3. Reúna as informações necessárias antes de executar uma tarefa #

Se você pedir ao chatGPT que escreva uma publicação de blog (eu jamais faria isso) ou uma função em Python (eu certamente faria), ele a produzirá de imediato, sem perguntar pelos detalhes do que você realmente deseja. É possível evitar boa parte disso dizendo algo como: “Quero escrever uma função que faça X; que informações preciso reunir antes de programar?” ou “Escreva uma função que faça X, mas primeiro pergunte quaisquer informações necessárias antes de escrever o código”, em que “X” é alguma descrição parcial.

4. Divida as tarefas em etapas #

Sempre que o chatGPT falhar em uma tarefa e o raciocínio em cadeia de pensamento não ajudar, divida a tarefa em subtarefas. Isso frequentemente corresponde, desde o início, à metade do trabalho de uma tarefa e, coincidentemente, é algo que os LLMs têm dificuldade (atualmente) de fazer por conta própria. No entanto, observe que também é possível delegar essa tarefa ao LLM3. Por exemplo, pedi ao chatGPT que elaborasse itens para um teste de criatividade (que você pode examinar rapidamente):

Estou tentando elaborar mais perguntas semelhantes ao Teste de Associações Remotas (RAT). O RAT exige que os indivíduos encontrem uma palavra comum que relacione três palavras aparentemente não relacionadas. Eis alguns conjuntos de palavras como exemplo:

  1. Cottage, Swiss, Cake (Answer: Cheese)

  2. High, Book, Chair (Answer: School)

  3. Fruit, Gaze, Traffic (Answer: Jam)

  4. Cream, Skate, Water (Answer: Ice)

  5. Ache, Hunter, Cabbage (Answer: Head)

  6. Manners, Round, Tennis (Answer: Table)

  7. Falling, Actor, Dust (Answer: Star)

  8. Light, Birthday, Stick (Answer: Candle)

  9. Salad, Head, Goose (Answer: Egg)

  10. Music, Ached, Green (Answer: Apple)

Quais são as melhores práticas? Como devo pensar nisso em etapas?

Assim como é excelente para compreender como somar números, o chatGPT é ótimo para produzir “receitas” destinadas à realização de tarefas. Depois que ele terminou, tudo o que precisei dizer foi:

“Ótimo! Agora siga esse processo para produzir 5 novas perguntas.”

E então mais cinco, e mais cinco. Eu havia tentado anteriormente pedir diretamente novos itens, e as sugestões foram terríveis. Para um exemplo muito mais complicado, veja como um instituto de segurança de IA utilizou essa técnica (entre outros truques) para resolver um problema que havia sido concebido como impossível para LLMs.

5. Termos técnicos são seus aliados #

Termos técnicos são bacias de atração para um comportamento competente dos LLMs. Por exemplo, descrever uma doença e perguntar o que é “indicado” levará você mais longe do que perguntar: “O que devo fazer?” Usar “indicado” informa ao LLM que ele deve mapear seus sintomas para todos os livros-texto de medicina já escritos. A segunda formulação equivale a pedir aconselhamento médico ou sobre a vida, algo que ele foi treinado para não oferecer. Usar termos técnicos ou não coloquiais tira você do espaço do assistente normie, que é aquele com mais barreiras de proteção e conselhos de nível Reddit.

6. Conjunto variado de prompts úteis #

Eis algumas frases que me pego usando

  • “Isso está correto?”

    • Sempre que escrevo um resumo do trabalho de outra pessoa ou descrevo uma ideia com a qual não estou totalmente familiarizado, copio e colo o que escrevi e pergunto se está correto. Em geral, ele é bastante bom em contestar as partes que são discutíveis.
  • “Você tem certeza?”

    • Da mesma forma, sempre que suspeito que um LLM esteja falando besteira, pergunto se ele tem certeza. Se ele mudar de ideia, trate a afirmação com extrema cautela.
  • “Ajude-me a fazer uma sessão de brainstorming.” “Seja criativo.”

    • Um dos melhores usos de um LLM é ajudar você a explorar o espaço de ideias. Às vezes, ele precisa de incentivo para se afastar das respostas modais.

Se você tiver algum recurso de uso recorrente, acrescente-o nos comentários!


  1. Isso também se tornou mais irregular do que eu gostaria; portanto, se você tiver algum trabalho contratado em ciência de dados, IA ou psicometria, entre em contato comigo! ↩︎

  2. É claro que não há a menor possibilidade de um LLM listar todas as 142–420 famílias linguísticas do mundo. Como isso é “impossível” (isto é, está distante demais de seu comportamento padrão, além de algum limite rígido de tokens), “exaustivo” serve para combater a gravidade de uma resposta curta, tornando o LLM mais minucioso. Essa é a desvantagem da elaboração de prompts, que às vezes se degrada em súplicas, rogos, subornos e ameaças. ↩︎

  3. O fato de ser possível obter ajuda de um LLM para dividir a subtarefa indica que isso também será cada vez mais automatizado. Quem sabe do que as gerações futuras serão capazes. ↩︎