Como a engenharia de prompt funciona
Devido à forma como os modelos da OpenAI são treinados, há formatos específicos de prompt que funcionam particularmente bem e levam a saídas de modelo mais úteis. O guia oficial de engenharia de prompt da OpenAI costuma ser o melhor ponto de partida para dicas de prompting.
Abaixo, apresentamos vários formatos de prompt que consideramos eficazes, mas fique à vontade para explorar formatos diferentes, que podem se adequar melhor à sua tarefa.
Regras práticas e exemplos
Observação: “{text input here}” é um placeholder para texto/contexto real
1. Use o modelo mais recente
Para obter os melhores resultados, geralmente recomendamos usar os modelos mais recentes e mais capazes. Modelos mais novos tendem a ser mais fáceis para engenharia de prompt.
Observação: Há algumas diferenças a considerar ao criar prompts para um modelo de raciocínio em comparação com um modelo GPT. Mais detalhes aqui.
2. Coloque as instruções no início do prompt e use ### ou """ para separar a instrução e o contexto
Menos eficaz ❌:
Resuma o texto abaixo como uma lista com marcadores dos pontos mais importantes.
{text input here}Melhor ✅:
Resuma o texto abaixo como uma lista com marcadores dos pontos mais importantes.
Texto: """
{text input here}
"""3. Seja específico, descritivo e o mais detalhado possível sobre o contexto, resultado, comprimento, formato, estilo desejados etc.
Seja específico sobre o contexto, resultado, comprimento, formato, estilo etc.
Menos eficaz ❌:
Escreva um poema sobre a OpenAI. Melhor ✅:
Escreva um poema curto e inspirador sobre a OpenAI, com foco no lançamento recente do produto DALL-E (DALL-E é um modelo de ML de texto para imagem), no estilo de {famous poet}4. Articule o formato de saída desejado por meio de exemplos
Menos eficaz ❌:
Extraia as entidades mencionadas no texto abaixo. Extraia os 4 tipos de entidades a seguir: nomes de empresas, nomes de pessoas, tópicos específicos e temas.
Texto: {text}Mostre e diga: os modelos respondem melhor quando veem requisitos específicos de formato. Isso também facilita analisar programaticamente várias saídas de forma confiável.
Melhor ✅:
Extraia as entidades importantes mencionadas no texto abaixo. Primeiro extraia todos os nomes de empresas, depois extraia todos os nomes de pessoas, em seguida extraia tópicos específicos que se encaixem no conteúdo e, por fim, extraia temas gerais abrangentes
Formato desejado:
Nomes de empresas: <comma_separated_list_of_company_names>
Nomes de pessoas: -||-
Tópicos específicos: -||-
Temas gerais: -||-
Texto: {text}5. Comece com zero-shot, depois few-shot; se nenhum deles funcionar, faça ajuste fino
✅ Zero-shot
Extraia palavras-chave do texto abaixo.
Texto: {text}
Palavras-chave:✅ Few-shot - forneça alguns exemplos
Extraia palavras-chave dos textos correspondentes abaixo.
Texto 1: A Stripe fornece APIs que desenvolvedores web podem usar para integrar o processamento de pagamentos aos seus sites e aplicativos móveis.
Palavras-chave 1: Stripe, processamento de pagamentos, APIs, desenvolvedores web, sites, aplicativos móveis
##
Texto 2: A OpenAI treinou modelos de linguagem de ponta que são muito bons em entender e gerar texto. Nossa API fornece acesso a esses modelos e pode ser usada para resolver praticamente qualquer tarefa que envolva processamento de linguagem.
Palavras-chave 2: OpenAI, modelos de linguagem, processamento de texto, API.
##
Texto 3: {text}
Palavras-chave 3:✅Ajuste fino: veja as práticas recomendadas de ajuste fino aqui.
6. Reduza descrições “floreadas” e imprecisas
Menos eficaz ❌:
A descrição deste produto deve ser razoavelmente curta, apenas algumas frases, e não muito mais do que isso.Melhor ✅:
Use um parágrafo de 3 a 5 frases para descrever este produto.7. Em vez de apenas dizer o que não fazer, diga o que fazer no lugar
Menos eficaz ❌:
A seguir, há uma conversa entre um Agente e um Cliente. NÃO PEÇA NOME DE USUÁRIO NEM SENHA. NÃO REPITA.
Cliente: Não consigo fazer login na minha conta.
Agente:Melhor ✅:
A seguir, há uma conversa entre um Agente e um Cliente. O agente tentará diagnosticar o problema e sugerir uma solução, evitando fazer perguntas relacionadas a PII. Em vez de pedir PII, como nome de usuário ou senha, encaminhe o usuário para o artigo de ajuda www.samplewebsite.com/help/faq
Cliente: Não consigo fazer login na minha conta.
Agente:8. Específico para geração de código: use “palavras iniciais” para orientar o modelo em direção a um padrão específico
Menos eficaz ❌:
# Escreva uma função simples em python que
# 1. Peça um número em milhas
# 2. Converta milhas em quilômetrosNeste exemplo de código abaixo, adicionar “import” indica ao modelo que ele deve começar a escrever em Python. (Da mesma forma, “SELECT” é uma boa dica para o início de uma instrução SQL.)
Melhor ✅:
# Escreva uma função simples em python que
# 1. Peça um número em milhas
# 2. Converta milhas em quilômetros
import9. Use o recurso Gerar Qualquer Coisa
Desenvolvedores podem usar o recurso 'Gerar Qualquer Coisa' para descrever uma tarefa ou a saída esperada em linguagem natural e receber um prompt personalizado.
Saiba mais sobre como usar o recurso 'Gerar Qualquer Coisa'.
Parâmetros
Em geral, percebemos que `model` e `temperature` são os parâmetros mais usados para alterar a saída do modelo.
`model` - Modelos de desempenho mais alto geralmente são mais caros e podem ter maior latência.
`temperature` - Uma medida de quão frequentemente o modelo gera um token menos provável. Quanto maior a
temperature, mais aleatória (e geralmente criativa) será a saída. Isso, porém, não é o mesmo que “veracidade”. Para a maioria dos casos de uso factuais, como extração de dados e perguntas e respostas verídicas, atemperature0 é a melhor.`max_completion_tokens` (comprimento máximo) - Não controla o comprimento da saída, mas define um limite rígido para a geração de tokens. Idealmente, você não atingirá esse limite com frequência, pois seu modelo vai parar quando achar que terminou ou quando encontrar uma sequência de parada que você definiu.
`stop` (sequências de parada) - Um conjunto de caracteres (tokens) que, quando gerados, fará a geração de texto parar.
Para descrições de outros parâmetros, consulte a referência da API.
