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: 7 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 mais úteis do modelo.

O guia oficial de engenharia de prompts da OpenAI é normalmente o melhor ponto de partida para dicas sobre prompting.

Abaixo apresentamos vários formatos de prompt que consideramos funcionar bem, 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 trabalhar com engenharia de prompts.


Nota: Existem algumas diferenças a considerar ao fazer prompting a um modelo de raciocínio versus ao fazer prompting a um modelo GPT. Mais detalhes aqui.

2. Coloque as instruções no início do prompt e use ### ou """ para separar a instrução do 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 relativamente ao contexto, resultado, comprimento, formato, estilo, etc. pretendidos

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. Explicite o formato de saída pretendido 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 diga — os modelos respondem melhor quando lhes são mostrados requisitos de formato específicos. Isto também facilita a extração programática fiável de múltiplos resultados.

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 deles funcionar, faça fine-tune

✅ 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:

✅ Fine-tune: veja as boas práticas de fine-tune aqui.

6. Reduza descrições “fluffy” 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 apenas dizer o que não fazer, diga antes o que fazer

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 para geração de código - use “leading words” para orientar o modelo para um determinado padrão

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. (Da mesma forma, “SELECT” é uma boa pista 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 Generate Anything

Os programadores podem usar a funcionalidade 'Generate Anything' para descrever uma tarefa ou o resultado esperado em linguagem natural e receber um prompt adaptado.

Saiba mais sobre como usar a funcionalidade 'Generate Anything'.

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 com melhor desempenho são geralmente mais caros e podem ter maior latência.

  2. temperature - Uma medida da frequência com que o modelo produz um token menos provável. Quanto maior a temperature, mais aleatório (e geralmente mais criativo) é o resultado. No entanto, isto não é o mesmo que “veracidade”. Para a maioria dos casos de utilização factuais, como extração de dados e perguntas e respostas factuais, a temperature de 0 é a 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 tenha definido.

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

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

Este artigo foi útil?