OpenAI
Esta página foi traduzida automaticamente. Veja o artigo original em inglês.

Boas práticas de engenharia de prompt com a API da OpenAI

Como dar instruções claras e eficazes aos modelos da OpenAI

Atualizado: 14 hours ago

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ômetros

No 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

import

9. 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.

  1. model - Modelos de maior desempenho geralmente são mais caros e podem ter maior latência.

  2. temperature - Uma medida de com que frequência o modelo gera um token menos provável. Quanto maior o temperature, 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, o temperature de 0 é o melhor.

  3. 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.

  4. 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.

Este artigo foi útil?