Como funciona a engenharia de prompt
Devido à forma como os modelos da OpenAI são treinados, existem formatos de prompt específicos que funcionam particularmente bem e levam a saídas do modelo mais úteis.
O guia oficial de engenharia de prompt da OpenAI geralmente é o melhor lugar para começar com dicas de prompting.
A seguir, apresentamos alguns formatos de prompt que consideramos funcionar bem, mas fique à vontade para explorar formatos diferentes, que talvez se ajustem melhor à sua tarefa.
Regras gerais e exemplos
Observação: “{text input here}” é um espaço reservado para o texto/contexto real
1. Use o modelo mais recente
Para melhores resultados, em geral recomendamos usar os modelos mais recentes e mais capazes. Modelos mais novos tendem a ser mais fáceis de trabalhar com engenharia de prompt.
Observação: há algumas diferenças a considerar ao criar prompts para um modelo de raciocínio versus criar prompts para 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, tamanho, formato, estilo etc. desejados
Seja específico sobre o contexto, resultado, tamanho, formato, estilo etc.
Menos eficaz ❌:
Escreva um poema sobre a OpenAI. Melhor ✅:
Escreva um poema curto e inspirador sobre a OpenAI, com foco no recente lançamento do produto DALL-E (DALL-E é um modelo de ML de texto para imagem), no estilo de {famous poet}4. Explicite o formato de saída desejado por meio de exemplos
Menos eficaz ❌:
Extraia as entidades mencionadas no texto abaixo. Extraia os 4 tipos de entidade 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 extrair e 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: <lista_de_nomes_de_empresas_separados_por_vírgula>
Nomes de pessoas: -||-
Tópicos específicos: -||-
Temas gerais: -||-
Texto: {text}5. Comece com zero-shot, depois few-shot; se nenhum funcionar, então faça fine-tuning
✅ 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 processamento de pagamentos em 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 oferece 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:✅ Fine-tuning: veja as melhores práticas de fine-tuning aqui.
6. Reduza descrições “floreadas” e imprecisas
Menos eficaz ❌:
A descrição deste produto deve ser bem curta, com 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
Menos eficaz ❌:
A seguir está uma conversa entre um Agente e um Cliente. NÃO PEÇA NOME DE USUÁRIO OU SENHA. NÃO REPITA.
Cliente: Não consigo fazer login na minha conta.
Agente:Melhor ✅:
A seguir está uma conversa entre um Agente e um Cliente. O agente tentará diagnosticar o problema e sugerir uma solução, evitando fazer quaisquer perguntas relacionadas a PII. Em vez de pedir PII, como nome de usuário ou senha, direcione 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 de abertura” para direcionar o modelo 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ômetrosNo 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 Generate Anything
Desenvolvedores podem usar o recurso ‘Generate Anything’ para descrever uma tarefa ou a saída esperada em linguagem natural e receber um prompt sob medida.
Saiba mais sobre como usar o recurso ‘Generate Anything’.
Parâmetros
Em geral, observamos que model e temperature são os parâmetros mais usados para alterar a saída do modelo.
model- Modelos de maior desempenho geralmente são mais caros e podem ter maior latência.temperature- Uma medida de com que frequência o modelo gera um token menos provável. Quanto maior otemperature, mais aleatória (e geralmente criativa) é a saída. No entanto, isso 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, otemperaturede 0 é o melhor.max_completion_tokens(comprimento máximo) - Não controla o comprimento da saída, mas sim um limite rígido de corte para a geração de tokens. Idealmente, você não atingirá esse limite com frequência, pois o modelo vai parar quando achar que terminou ou quando atingir uma sequência de parada que você definiu.stop(sequências de parada) - Um conjunto de caracteres (tokens) que, quando gerado, fará com que a geração de texto pare.
Para outras descrições de parâmetros, veja a referência da API.
