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

Boas práticas para engenharia de prompts com a API da OpenAI

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

Atualizado: 11 hours ago

Como funciona a engenharia de prompts

Devido à forma como os modelos da OpenAI são treinados, existem formatos de prompt específicos que funcionam particularmente bem e conduzem a resultados do modelo mais úteis. O guia oficial de engenharia de prompts da OpenAI é geralmente o melhor ponto de partida para dicas sobre prompts.

Apresentamos abaixo vários formatos de prompt que consideramos eficazes, mas sinta-se à vontade para explorar formatos diferentes, que poderão adequar-se melhor à sua tarefa.

Regras práticas e exemplos

Nota: «{text input here}» é um marcador de posição para texto/contexto real

1. Use o modelo mais recente

Para obter os melhores resultados, recomendamos geralmente a utilização dos modelos mais recentes e mais capazes. Os modelos mais recentes tendem a ser mais fáceis de orientar com engenharia de prompts.


Nota: Existem 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 numa lista com marcadores dos pontos mais importantes.

{text input here}

Melhor ✅:

Resuma o texto abaixo numa lista com marcadores dos pontos mais importantes.

Texto: """
{text input here}
"""

3. Seja específico, descritivo e tão detalhado quanto possível sobre o contexto, resultado, comprimento, formato, estilo, etc. desejados

Seja específico quanto ao contexto, resultado, comprimento, formato, estilo, etc.

Menos eficaz ❌:

Escreva um poema sobre a OpenAI. 

Melhor ✅:

Escreva um poema curto e inspirador sobre a OpenAI, centrado no recente lançamento do produto DALL-E (DALL-E é um modelo de ML de texto para imagem), ao estilo de {famous poet}

4. Articule o formato de resultado desejado através de exemplos

Menos eficaz ❌:

Extraia as entidades mencionadas no texto abaixo. Extraia os 4 tipos de entidades seguintes: nomes de empresas, nomes de pessoas, tópicos específicos e temas.

Texto: {text}

Mostre e explique: os modelos respondem melhor quando lhes são apresentados requisitos de formato específicos. Isto também facilita a análise programática de múltiplos resultados de forma fiável.

Melhor ✅:

Extraia as entidades importantes mencionadas no texto abaixo. Primeiro extraia todos os nomes de empresas, depois extraia todos os nomes de pessoas, depois extraia tópicos específicos que se adequem ao conteúdo e, por fim, extraia temas gerais abrangentes

Formato pretendido:
Nomes de empresas: <lista_de_nomes_de_empresas_separados_por_vírgulas>
Nomes de pessoas: -||-
Tópicos específicos: -||-
Temas gerais: -||-

Texto: {text}

5. Comece com zero-shot, depois few-shot; se nenhum funcionar, faça afinação fina

✅ 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 os programadores web podem usar para integrar o processamento de pagamentos nos seus websites e aplicações móveis.
Palavras-chave 1: Stripe, processamento de pagamentos, APIs, programadores web, websites, aplicações móveis
##
Texto 2: A OpenAI treinou modelos de linguagem de ponta que são muito bons a compreender e gerar texto. A nossa API fornece acesso a estes 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:

✅Afinação fina: veja as melhores práticas de afinação fina aqui.

6. Reduza descrições «floreadas» e imprecisas

Menos eficaz ❌:

A descrição deste produto deve ser bastante curta, apenas algumas frases, e não muito mais.

Melhor ✅:

Use um parágrafo de 3 a 5 frases para descrever este produto.

7. Em vez de dizer apenas o que não fazer, diga o que fazer em alternativa

Menos eficaz ❌:

Segue-se uma conversa entre um agente e um cliente. NÃO PEÇA NOME DE UTILIZADOR NEM PALAVRA-PASSE. NÃO REPITA.

Cliente: Não consigo iniciar sessão na minha conta.
Agente:

Melhor ✅:

Segue-se uma conversa entre um agente e um cliente. O agente tentará diagnosticar o problema e sugerir uma solução, abstendo-se de fazer quaisquer perguntas relacionadas com PII. Em vez de pedir PII, como nome de utilizador ou palavra-passe, encaminhe o utilizador para o artigo de ajuda www.samplewebsite.com/help/faq

Cliente: Não consigo iniciar sessão na minha conta.
Agente:

8. Específico da geração de código - Use «palavras iniciais» para orientar o modelo para um padrão específico

Menos eficaz ❌:

# Escreva uma função python simples que
# 1. Me 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 deve começar a escrever em Python. (De forma semelhante, «SELECT» é uma boa indicação para o início de uma instrução SQL.)

Melhor ✅:

# Escreva uma função python simples que
# 1. Me peça um número em milhas
# 2. Converta milhas em quilómetros

import

9. Use a funcionalidade «Gerar qualquer coisa»

Os programadores podem usar a funcionalidade «Gerar qualquer coisa» para descrever uma tarefa ou o resultado esperado em linguagem natural e receber um prompt personalizado.


Saiba mais sobre como usar a funcionalidade «Gerar qualquer coisa».

Parâmetros

Em geral, verificamos que `model` e `temperature` são os parâmetros mais usados para alterar o resultado do modelo.

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

  2. `temperature` - Uma medida da frequência com que o modelo gera um token menos provável. Quanto maior for a temperature, mais aleatório (e geralmente criativo) será o resultado. Isto, no entanto, 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 valor 0 de temperature é o melhor.

  3. `max_completion_tokens` (comprimento máximo) - Não controla o comprimento do resultado, mas sim um limite rígido para a geração de tokens. Idealmente, não atingirá este limite com frequência, pois o seu modelo irá parar quando considerar que terminou ou quando atingir uma sequência de paragem que definiu.

  4. `stop` (sequências de paragem) - Um conjunto de caracteres (tokens) que, quando gerados, farão parar a geração de texto.

Para outras descrições de parâmetros, consulte a referência da API.

Este artigo foi útil?