Share via


Técnicas de engenharia de prompt

Este guia orientará você por algumas técnicas avançadas em design e engenharia de prompt. Se você for novo na engenharia de prompt, recomendamos começar com nossa introdução ao guia de engenharia de prompt.

Embora os princípios da engenharia de prompt possam ser generalizados para muitos tipos diferentes de modelos, certos modelos esperam uma estrutura de prompt especializada. Para modelos de GPT da OpenAI do Azure, atualmente há duas APIs distintas em que a engenharia de prompt entra em jogo:

  • API de Conclusão de Chat.
  • API de Conclusão.

Cada API requer que os dados de entrada sejam formatados de forma diferente, o que, por sua vez, afeta o design geral do prompt. A API de Conclusão de Chat tem suporte para os modelos GPT-35-Turbo e GPT-4. Esses modelos são projetados para receber uma entrada formatada em uma transcrição específica de chat armazenada dentro de uma matriz de dicionários.

A API de Conclusão dá suporte aos modelos GPT-3 mais antigos e tem requisitos de entrada muito mais flexíveis, pois usa uma cadeia de caracteres de texto sem regras de formato específicas.

As técnicas neste guia ensinarão estratégias para aumentar a precisão e o aterramento das respostas geradas com um LLM (Modelo de Linguagem Grande). No entanto, é importante lembrar que, mesmo ao usar a engenharia de prompt efetivamente, você ainda precisa validar as respostas geradas pelos modelos. Só porque um prompt cuidadosamente elaborado funcionou bem para um cenário específico, não significa necessariamente que ele será generalizado de forma mais ampla para certos casos de uso. Entender as limitações das LLMs é tão importante quanto entender como aproveitar seus pontos fortes.

Este guia não se aprofunda na mecânica por trás da estrutura de mensagens para Conclusão de Chat. Se você não estiver familiarizado com a interação com modelos de Conclusão de Chat programaticamente, recomendamos ler nosso guia de instruções sobre a API de Conclusão de Chat primeiro.

Observação

Todos os exemplos nesta seção do guia foram testados em um modelo base do GPT-4 em inglês. Se você estiver lendo uma versão localizada deste artigo em outro idioma, essas respostas representam uma tradução localizada dos resultados em inglês. Para saber mais sobre as possíveis limitações dependendo do idioma que você está usando para solicitar um modelo, consulte nossa Nota de transparência de IA responsável.

Mensagem do sistema

A mensagem do sistema é incluída no início do prompt e é usada para preparar o modelo com contexto, instruções ou outras informações relevantes para seu caso de uso. Você pode usar a mensagem do sistema para descrever a personalidade do assistente, definir o que o modelo deve ou não deve responder e definir o formato das respostas do modelo.

O exemplo a seguir mostra uma mensagem de sistema de exemplo e a resposta do modelo resultante:

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações e responder rimando. Se o usuário fizer uma pergunta para a qual você não sabe a resposta, diga-a. O que você pode falar sobre mim, Fulano de Tal? Querido Fulano, lamento dizer,
Mas hoje, não tenho informações sobre você.
Sou apenas uma IA com conhecimento no meu cérebro,
Mas sem sua entrada, nem sei dizer o que quero.
Então, me diga o que você procura afinal,
E farei o meu melhor para dar uma resposta original.

Alguns outros exemplos de mensagens do sistema são:

  • “O assistente é um modelo de linguagem grande treinado pela OpenAI.”
  • “O assistente é um chatbot inteligente projetado para ajudar os usuários a responder perguntas técnicas sobre o Serviço OpenAI do Azure. Responda apenas às perguntas usando o contexto abaixo e, se você não tiver certeza de uma resposta, diga "Eu não sei".
  • “O assistente é um chatbot inteligente projetado para ajudar os usuários a responder suas perguntas relacionadas a impostos.”
  • "Você é um assistente projetado para extrair entidades do texto. Os usuários colarão uma cadeia de caracteres de texto e você responderá com entidades extraídas do texto como um objeto JSON. Veja um exemplo do formato de saída:
{  
   "name": "",
   "company": "",
   "phone_number": ""
}

Um detalhe importante a ser entendido é que, mesmo se você instruir um modelo na mensagem do sistema a responder Não sei quando não tiver certeza sobre uma resposta, isso não garante que a solicitação será atendida. Uma mensagem de sistema bem projetada pode aumentar a probabilidade de obter um determinado resultado, mas ainda é possível que uma resposta incorreta possa ser gerada que contradiga a intenção da instrução na mensagem do sistema.

Few-shot learning

Uma maneira comum de adaptar modelos de linguagem a novas tarefas é usar o few-shot learning. No few-shot learning, um conjunto de exemplos de treinamento é fornecido como parte do prompt para dar contexto adicional ao modelo.

Ao usar a API de Conclusões de Chat, uma série de mensagens entre o usuário e o assistente (escritas no novo formato de prompt) pode servir como exemplos para o few-shot learning. Esses exemplos podem ser usados para preparar o modelo para responder de uma determinada maneira, emular comportamentos específicos e fornecer respostas a perguntas comuns.

Mensagem do sistema Exemplos de few-shot learning
O assistente é um chatbot inteligente projetado para ajudar os usuários a responder suas perguntas relacionadas a impostos.
Instruções
- Responda apenas a perguntas relacionadas a impostos.
- Se você não tiver certeza de uma resposta, poderá dizer "não sei" ou "não tenho certeza" e recomendar que os usuários acessem o site do IRS para obter mais informações.
Usuário: "Quando preciso declarar meus impostos?"
Assistente – "Em 2023, você precisará declarar seus impostos até 18 de abril. A data cai após o prazo habitual de 15 de abril porque esse dia cai em um sábado em 2023. Para obter mais informações, confira https://www.irs.gov/filing/individuals/when-to-file "

Usuário: "Como posso ver o status do meu reembolso de imposto?"
Assistente - "Você pode verificar o status do seu reembolso de imposto visitando https://www.irs.gov/refunds "

A tabela acima descreve a estrutura básica do prompt, mas para obter uma explicação detalhada do formato exato do prompt, você precisará consultar o Guia de Conclusão do Chat.

Cenários que não são de chat

Embora a API de Conclusão de Chat seja otimizada para trabalhar com conversas de vários turnos, ela também pode ser usada para cenários que não são de chat. Por exemplo, para um cenário de extração de sentimento, você pode usar o seguinte prompt:

Mensagem do sistema Usuário Assistente
Você é um assistente projetado para analisar o sentimento dos dados de fala. Os usuários colarão uma cadeia de caracteres de texto e você responderá com uma avaliação da resposta do orador. Taxa em uma escala de 1 a 10 (10 sendo a mais alta). Explique por que essa classificação foi dada. olá obrigado por ligar para a farmácia contoso com quem eu estou falando hoje entendo sua frustração maria você pode me dizer o que exatamente está tentando fazer OK com certeza fico feliz em verificar isso para você aguarde um momento vejo aqui que você estava tomando uma forma genérica de lipitor é isso mesmo OK vejo que seu médico parou de prescrever esses medicamentos em 2021 na verdade OK sim ficarei feliz em verificar isso para você porque às vezes há uma lacuna no sistema e simplesmente isso não é reportado então deixe-me dar uma olhada aqui só um momento então estou vendo aqui que seu médico prescreveu esses medicamentos para você de 2012 a 2021 OK sim de acordo com os registros mais recentes fornecidos pelo consultório médico agora você está tomando um medicamento diferente metformina gostaria que prescrevêssemos a receita para você e você possa retirar o metformina 500mg de nada maria nos avise se há mais alguma coisa que possamos fazer por você hoje. Classificação de sentimento: 8
O locutor neste texto parece ser educado, útil e paciente ao abordar as preocupações do cliente. Ele dedica tempo para verificar as informações, fornecer explicações claras e oferecer assistência. No entanto, a classificação não é 10 porque ainda há um indício de incerteza em algumas partes da conversa, o que pode não transmitir total confiança ao cliente.

Começar com instruções claras

As informações da sequência são exibidas no prompt. Isso ocorre porque os modelos de estilo GPT são criados de uma certa maneira que define como processam a entrada. Nossa pesquisa sugere que informar ao modelo a tarefa que você deseja que ele faça no início da prompt, antes de compartilhar informações ou exemplos contextuais adicionais, pode ajudar a produzir saídas de alta qualidade.

Observação

Embora seguir essa técnica ainda seja geralmente recomendado, ao contrário das versões anteriores do modelo (GPT-3 e anteriores), nossos testes mostraram que a resposta do modelo com os modelos ChatGPT e GPT-4 foi a mesma, independentemente de usar ou não a técnica. No caso do exemplo abaixo, vemos que adicionar a instrução "Várias fontes ... erupção" no início ou no final do prompt não causou nenhuma alteração na resposta do modelo final.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Sua tarefa é verificar se a instrução "Várias fontes mencionam a possibilidade de outra grande erupção" é apoiada por uma citação específica do seguinte conjunto de snippets.
---
SNIPPETS
[1] 14% de chance de um megaterremoto atingir Seattle, dizem especialistas
SEATTLE - Há uma chance de 14% de um terremoto de magnitude 9 em Cascadia atingir Seattle nos próximos 50 anos, segundo estimativas do Serviço Geológico dos Estados Unidos. "Infelizmente, não podemos...

[2] Especialistas em terremotos expõem as últimas perspectivas para o “Really Big One” de Seattle
"Dizemos que há aproximadamente uma chance de 14% de ocorrer outro terremoto de magnitude 9 nos próximos 50 anos", disse um geofísico da Universidade de Washington...
---
A instrução "Várias fontes mencionam a possibilidade de outra grande erupção" está diretamente implícita ou declarada pelos snippets?
Não, a instrução não está diretamente implícita ou declarada pelos snippets. Os snippets mencionam a chance de um "megaterremoto" e um "terremoto de magnitude 9 tipo Cascadia" atingir Seattle nos próximos 50 anos, mas não mencionam uma chance de haver outra grande erupção vulcânica.

Repita as instruções no final

Os modelos podem ser suscetíveis ao desvio de relevância, o que nesse contexto significa que as informações no final do prompt podem ter influência mais significativa sobre a saída do que as informações no início do prompt. Portanto, vale a pena experimentar repetir as instruções no final do prompt e avaliar o impacto na resposta gerada.

Preparar a saída

Isso se refere à inclusão de algumas palavras ou frases no final do prompt para obter uma resposta de modelo que segue o formulário desejado. Por exemplo, usar uma indicação como “Here’s a bulleted list of key points:\n- ” pode ajudar a garantir que a saída seja formatada como uma lista de pontos de marcador.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Responda com o menor número possível de palavras. John Smith é casado com Lucy Smith. Eles têm cinco filhos, e ele trabalha como engenheiro de software na Microsoft. Quais consultas de pesquisa devo fazer para verificar isso? ## Uma possível consulta de pesquisa é: "John Smith casado com Lucy Smith cinco filhos engenheiro de software da Microsoft"

No prompt acima, o texto Uma possível consulta de pesquisa é: prepara o modelo para produzir uma única saída. Sem essa indicação, o modelo produz várias consultas de pesquisa como saída.

Adicionar sintaxe clara

O uso de sintaxe clara para seu prompt, incluindo pontuação, títulos e marcadores de seção, ajuda a comunicar a intenção e, muitas vezes, facilita a análise de saídas.

No exemplo abaixo, separadores (--- neste caso) foram adicionados entre diferentes fontes de informações ou etapas. Isso permite o uso de como uma condição de --- como condição de parada para geração. Além disso, títulos de seção ou variáveis especiais são apresentados em maiúsculas para diferenciá-los.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Você lerá um parágrafo e emitirá consultas a um mecanismo de pesquisa para verificar os fatos. Explique também as consultas.
---
PARÁGRAFO
John Smith é casado com Lucy Smith. Eles têm cinco filhos, e ele trabalha como engenheiro de software na Microsoft. Quais consultas de pesquisa devo fazer para verificar isso?
---
CONSULTAS
1. "John Smith Microsoft": para verificar se John Smith está de fato empregado na Microsoft.
2. "John Smith Lucy Smith": para verificar se John Smith é casado com Lucy Smith.
3. "Filhos John Smith": para verificar se John Smith tem cinco filhos.

Se você não tiver certeza de qual sintaxe usar, considere usar Markdown ou XML. Os modelos foram treinados em uma grande quantidade de conteúdo da Web em XML e Markdown, o que pode fornecer melhores resultados.

Dividir a tarefa

Os LLMs (modelos de linguagem grande) geralmente têm um desempenho melhor se a tarefa for dividida em etapas menores. Por exemplo, no prompt de consulta de pesquisa mencionada anteriormente, o prompt pode ser reestruturado para que o modelo primeiro seja instruído a extrair fatos relevantes e, em seguida, instruído a gerar consultas de pesquisa que possam ser usadas para verificar esses fatos.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Você lerá um parágrafo e emitirá consultas a um mecanismo de pesquisa para verificar os fatos.
---
PARÁGRAFO
John Smith é casado com Lucy Smith. Eles têm cinco filhos, e ele trabalha como engenheiro de software na Microsoft. Quais consultas de pesquisa devo fazer para verificar isso?
---
Agora você extrairá declarações factuais e emitirá consultas para verificá-las. Ao emitir uma consulta, use a função PESQUISAR("consulta")

DECLARAÇÕES FATUAIS
1. John Smith é casado com Lucy Smith
2. Eles têm cinco filhos
3. Ele trabalha como engenheiro de software na Microsoft

CONSULTAS
PESQUISAR("John Smith casado com Lucy Smith")
PESQUISAR("Tamanho da família de John Smith")
PESQUISAR("John Smith engenheiro de software da Microsoft")

Observe o uso de sintaxe clara para diferenciar as seções e preparar a saída. Neste exemplo simples, dividir uma tarefa de uma etapa em duas etapas não causa grande impacto, mas em um texto maior com muitas declarações factuais, dividir a tarefa pode fazer uma diferença significativa.

Uso de funcionalidades

Às vezes, podemos fazer com que o modelo use uma funcionalidade em vez de depender de seus próprios parâmetros para obter informações e respostas. A pesquisa, por exemplo, pode ser uma funcionalidade para ajudar a atenuar respostas inventadas e obter informações atualizadas.

Uma maneira simples de usar uma funcionalidade é interromper a geração depois que as chamadas de funcionalidade forem geradas pelo modelo e, em seguida, colar os resultados de volta no prompt. Veja abaixo um exemplo do que pode ser a chamada de acompanhamento depois de fazer as chamadas PESQUISAR acima. Observe como colamos os resultados da pesquisa no prompt e substituímos as chamadas PESQUISAR anteriores.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Você lerá um parágrafo, extrairá declarações factuais e, em seguida, usará os resultados do mecanismo de pesquisa para verificar os fatos
---
PARÁGRAFO
John Smith é casado com Lucy Smith. Eles têm cinco filhos, e ele trabalha como engenheiro de software na Microsoft. Quais consultas de pesquisa devo fazer para verificar isso?
---
DECLARAÇÕES FATUAIS
- John Smith é casado com Lucy Smith
- John e Lucy têm cinco filhos
- John trabalha como engenheiro de software na Microsoft
---
Aqui estão várias consultas de pesquisa emitidas para pesquisar as declarações acima:
CONSULTAS DE PESQUISA
- John Smith casado com Lucy Smith
- Número de filhos de John Smith
- John Smith engenheiro de software da Microsoft
---
Aqui estão os snippets dos resultados da pesquisa:
SNIPPETS:
[1] … O casamento de John Smith foi em 25 de setembro de 2012…
[2] … John Smith foi ao baile acompanhado por sua esposa Lucy
[3] John foi acompanhado ao jogo de futebol por suas duas filhas e três filhos
[4] … Depois de passar 10 anos na Microsoft, Lima fundou sua própria startup, Tailspin Toys
[5] John M é o ferreiro da cidade, e ele se casou com Fiona. Eles têm uma filha chamada Lucy
---
Dado os snippets, verifique cada uma das declarações fatuais acima:
- John Smith é casado com Lucy Smith: confirmado. Snippet [1] e [2] ambos mencionam que Lucy é a esposa de John Smith.

- John e Lucy têm cinco filhos: confirmado. Snippet [3] menciona que John estava acompanhado de suas duas filhas e três filhos.

- John trabalha como engenheiro de software na Microsoft: parcialmente confirmado. O Snippet [4] menciona que John passou 10 anos na Microsoft, mas não afirma explicitamente que ele trabalha lá. Mais pesquisas podem ser necessárias para confirmar o seu status atual de emprego.

Solicitação de cadeia de pensamento

Esta é uma variação da técnica de dividir a tarefa. Em vez de dividir uma tarefa em etapas menores, nessa abordagem, a resposta do modelo é instruída a prosseguir passo a passo e apresentar todas as etapas envolvidas. Isso reduz a possibilidade de imprecisão dos resultados e facilita a avaliação da resposta do modelo.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Quem foi o atleta individual mais condecorado (com o máximo de medalhas) nos Jogos Olímpicos realizados em Sydney? Adote uma abordagem passo a passo em sua resposta, cite fontes e forneça justificativas antes de compartilhar a resposta final no formato abaixo: A RESPOSTA é: <name> Etapa 1: determinar o ano dos Jogos Olímpicos de Sydney. Os Jogos Olímpicos de Sydney foram realizados no ano 2000.

Etapa 2: encontrar uma lista de atletas individuais que ganharam várias medalhas nos Jogos Olímpicos de Sydney de 2000.

De acordo com o site oficial dos Jogos Olímpicos, houve vários atletas individuais que ganharam várias medalhas nos Jogos Olímpicos de Sydney de 2000. Alguns dos nomes notáveis incluem:
• Ian Thorpe (Austrália) - 3 ouro, 2 pratas, 0 bronze
• Pieter van den Hoogenband (Países Baixos) - 2 ouro, 0 prata, 2 bronzes
• Lenny Krayzelburg (EUA) - 3 ouro, 0 prata, 0 bronze
• Inge de Bruijn (Países Baixos) - 3 ouro, 1 prata, 0 bronze

Etapa 3: determinar o atleta com mais medalhas. Depois de revisar a lista de atletas individuais que ganharam várias medalhas nos Jogos Olímpicos de Sydney de 2000, podemos ver que o atleta com mais medalhas é Ian Thorpe, da Austrália, que ganhou um total de 5 medalhas (3 de ouro e 2 de prata).

Portanto, a RESPOSTA é: Ian Thorpe.

Especificar a estrutura de saída

Usar o seu prompt para especificar a estrutura da saída pode ter um efeito significativo sobre a natureza e a qualidade dos resultados. Às vezes, entradas de mensagem do sistema como "escrever apenas fatos verdadeiros" ou "não fabricar informações" podem não ser mitigações adequadas. Em vez disso, solicitar que a resposta do modelo inclua citações também pode ajudar a reduzir a prevalência de respostas incorretas.

Se você instruir o modelo a citar o material de origem quando ele faz instruções, essas instruções têm muito mais probabilidade de serem fundamentadas. A solicitação de citações faz com que o modelo cometa dois erros cada vez que gera uma resposta: o primeiro erro é a resposta inventada e o segundo é a citação incorreta. Observe que quanto mais próxima a citação estiver do texto compatível, menor será a distância que o modelo precisa antecipar a citação, o que sugere que as citações embutidas no texto são mitigações melhores para a geração de conteúdo falso do que as citações no final do conteúdo.

Da mesma forma, se você pedir ao modelo para extrair instruções factuais de um parágrafo, ele poderá extrair instruções compostas, como "X está fazendo Y E Z" (o que pode ser mais difícil de verificar). Isso pode ser evitado especificando uma estrutura de saída como (entidade1, relação, entidade2).

Os exemplos abaixo mostram o uso de citações e direcionando a resposta do modelo para se ajustar a uma estrutura definida.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações Liste os diferentes comportamentos exibidos pelo agente de Suporte ao Cliente na conversa a seguir.
---
olá obrigado por ligar para a farmácia contoso com quem eu estou falando hoje entendo sua frustração maria você pode me dizer o que exatamente está tentando fazer OK com certeza fico feliz em verificar isso para você aguarde um momento vejo aqui que você estava tomando uma forma genérica de lipitor é isso mesmo OK vejo que seu médico parou de prescrever esses medicamentos em 2021 na verdade OK sim ficarei feliz em verificar isso para você porque às vezes há uma lacuna no sistema e simplesmente isso não é reportado então deixe-me dar uma olhada aqui só um momento então estou vendo aqui que seu médico prescreveu esses medicamentos para você de 2012 a 2021 OK sim de acordo com os registros mais recentes fornecidos pelo consultório médico agora você está tomando um medicamento diferente metformina gostaria que prescrevêssemos a receita para você e você possa retirar o metformina 500mg de nada maria nos avise se há mais alguma coisa que possamos fazer por você hoje.
---
Como foi a resposta do agente de Suporte ao Cliente?
Classifique e liste seus vários comportamentos e cite o motivo por trás da classificação, usando o formato COMPORTAMENTO("motivo")
1. COMPORTAMENTO educado de saudação("O agente inicia a conversa com uma saudação educada e pede o nome do chamador")
2. COMPORTAMENTO empático("A agente reconhece a frustração de Maria e tenta entender sua preocupação")
3. COMPORTAMENTO atento("O agente escuta o problema do cliente e pede mais detalhes")
4. COMPORTAMENTO proativo("O agente oferece marcar o problema para o cliente")
5. COMPORTAMENTO informativo("O agente fornece as informações relevantes sobre o histórico de prescrição do cliente")
6. COMPORTAMENTO detalhado("O agente verifica se há possíveis lacunas no sistema e fornece uma resposta completa")
7. COMPORTAMENTO confirmatório("O agente confirma a medicação atual com o cliente")
8. COMPORTAMENTO orientado à solução("O agente oferece para preencher a nova prescrição para o cliente")
9. COMPORTAMENTO cortês("O agente agradece ao cliente e oferece assistência adicional, se necessário")
Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Clusterize os títulos de notícias a seguir em categorias de tópico com base em padrões vistos dentro do texto. Também mencione a razão por trás de como essas categorias foram definidas.
Formato de saída:
{
"TOPIC_NAME": "",
"HEADLINES": [],
"REASONING": ""
}

Títulos de notícias de entrada:
1. "De livros a apresentações em 10s com AR + ML"
2. "Demonstração de 1993 de Yann LeCun, aos 32 anos, apresentando a primeira Rede Convolucional do mundo para reconhecimento de texto"
3. "Modelo de Movimento de Primeira Ordem aplicado para animar pinturas"
4. "Robinhood e outras corretoras bloqueiam literalmente a compra de $GME, $NOK, $BB, $AMC; permitindo vendas"
5. "Ações da United Airlines caíram mais de 5% na negociação pré-mercado"
Saída:

{
"ARTIFICIAL_INTELLIGENCE": {
"HEADLINES": [
"De livros a apresentações em 10s com AR + ML",
"Demonstração de 1993 do Yann LeCun, aos 32 anos, apresentando a primeira Rede Convolucional do mundo para reconhecimento de texto",
"Modelo de Movimento de Primeira Ordem aplicado para animar pinturas"
],
"REASONING": "Esses títulos estão relacionadas à inteligência artificial, aprendizado de máquina e seus aplicativos em vários campos."
},
"FINANCIAL_MARKETS": {
"HEADLINES": [
"Robinhood e outros agentes bloqueiam literalmente a compra de $GME, $NOK, $BB, $AMC; permitindo vendas",
"Ações da United Airlines caíram mais de 5% na negociação pré-mercado",
"O Bitcoin estava quase em $20.000 há um ano atrás"
],
"REASONING": "Esses títulos estão relacionados a mercados financeiros, ações, criptomoedas e plataformas de negociação."
}
}

Parâmetros de temperatura e Top_p

Alterar o parâmetro de temperatura altera a saída do modelo. O parâmetro de temperatura pode ser definido entre 0 e 2. Um valor mais alto, 0,7 por exemplo, torna a saída mais aleatória e produz respostas mais divergentes, enquanto um valor menor, como 0.2, torna a saída mais focada e concreta. Uma história fictícia pode ser gerada usando uma temperatura mais alta. Considerando que, para gerar um documento legal, é recomendável usar uma temperatura muito menor. Top_probability é outro parâmetro e é semelhante à temperatura, pois também controla a aleatoriedade da resposta do modelo, mas o faz de uma maneira diferente. A recomendação geral é alterar um desses dois parâmetros de cada vez, não ambos.

Fornecer contexto de fundamentação

Uma das formas mais eficazes de fornecer respostas confiáveis é fornecer os dados do modelo para que ele possa basear suas respostas (dados de fundamentação). Se o caso de uso depender de informações atualizadas e confiáveis e não for puramente um cenário criativo, é altamente recomendável fornecer dados de fundamentação. Em geral, quanto mais perto você conseguir chegar de obter o material de origem para a forma final da resposta desejada, menos trabalho o modelo precisará fazer, o que significa que haverá menos oportunidade de erro. Aqui está um exemplo em que o sistema recebe uma postagem no blog recente que descreve o lançamento do GPT-4 no Serviço OpenAI do Azure e é solicitado a nomear alguns de seus clientes iniciais.

Mensagem do sistema Usuário Assistente
Você é um assistente de IA que ajuda as pessoas a encontrar informações. Você fornecerá respostas exclusivamente do texto abaixo e responderá em 100 palavras ou menos:
"Na Microsoft, estamos constantemente descobrindo novas maneiras de liberar a criatividade, desbloquear a produtividade e elevar o nível das nossas habilidades para que mais pessoas possam se beneficiar do uso da IA. Isso está permitindo que nossos clientes...

... reduzindo assim a probabilidade de que o modelo gere uma resposta prejudicial."1

Responda em 100 palavras ou menos. Use listas de marcadores sempre que possível.
Quem são alguns dos primeiros clientes dos modelos GPT-4 do Serviço OpenAI do Azure? Aqui estão alguns dos primeiros clientes dos modelos GPT-4 do Serviço OpenAI do Azure:
- Epic Healthcare: eles planejam usar o GPT-4 para ajudar médicos e enfermeiros a gastar menos tempo com entrada e investigação de dados.
– Coursera: está usando o Serviço OpenAI do Azure com GPT-4 para criar uma nova experiência de aprendizado com IA em sua plataforma.
- Coca-Cola: está usando o OpenAI do Azure para criar um hub de conhecimento e planeja aproveitar as funcionalidades multimodal do GPT-4 para marketing, publicidade, relações públicas e relações com o cliente.
- Outras empresas de todos os tamanhos estão usando a IA do Azure para melhorar as experiências dos clientes, resumir conteúdo mais extenso, ajudar a escrever software e reduzir riscos ao prever os dados fiscais corretos.

1 Texto de blog de lançamento do GPT-4 da OpenAI do Azure.

Próximas etapas

Observação

Todos os exemplos nesta seção do guia foram testados com o modelo gpt-35-turbo-instruct em inglês. Se você estiver lendo uma versão localizada deste artigo em outro idioma, essas respostas representam uma tradução localizada dos resultados em inglês. Para saber mais sobre as possíveis limitações dependendo do idioma que você está usando para solicitar um modelo, consulte nossa Nota de transparência de IA responsável.

Começar com instruções claras

As informações da sequência são adicionadas aos assuntos do prompt. Nossa pesquisa sugere que informar ao modelo a tarefa que você deseja que ele faça no início da prompt, antes de compartilhar informações ou exemplos contextuais adicionais, pode ajudar a produzir saídas de alta qualidade.

No primeiro exemplo abaixo, uma parte fundamental das instruções é compartilhada somente no final e a conclusão resultante está incorreta.

Prompt Completion
Your task is to verify if a statement is supported by a specific quote from the following set of snippets.
---
SNIPPETS
[1] 14 percent chance of megaquake hitting Seattle, experts say SEATTLE - There's a 14 percent chance of a magnitude 9 Cascadia earthquake hitting Seattle in the next 50 years, the U.S. Geological Survey estimates. "Unfortunately, we are unable to...

[2] Earthquake experts lay out latest outlook for Seattle's 'Really Big One’
“We say that there's approximately a 14% chance of another approximately magnitude-9 earthquake occurring in the next 50 years,” said a geophysicist at the University of Washington...
Yes, the statement is directly implied by the snippets.

Neste próximo exemplo, daremos a declaração exata que queremos verificar ("Várias fontes mencionam uma chance de outra erupção") antes de darmos o contexto do snippet. Isso permite que as representações de token extraídas dos snippets sejam adaptadas à instrução que estamos verificando. Agora, a resposta do modelo resultante é precisa:

Prompt Completion
Your task is to verify if the statement "Several sources mention a chance of another large eruption" is supported by a specific quote from the following set of snippets.
---
SNIPPETS
[1] 14 percent chance of megaquake hitting Seattle, experts say SEATTLE - There's a 14 percent chance of a magnitude 9 Cascadia earthquake hitting Seattle in the next 50 years, the U.S. Geological Survey estimates. "Unfortunately, we are unable to...

[2] Earthquake experts lay out latest outlook for Seattle's 'Really Big One’<br>“We say that there's approximately a 14% chance of another approximately magnitude-9 earthquake occurring in the next 50 years,” said a geophysicist at the University of Washington...
---
**Is the statement "Several sources mention a chance of another large eruption" directly implied or stated by the snippets?**
No, the statement is not directly implied or stated by the snippets. The snippets mention a chance of a "megaquake" and a "magnitude 9 Cascadia earthquake" hitting Seattle in the next 50 years, but do not mention a chance of another large eruption.

Repita as instruções no final

Os modelos podem ser suscetíveis ao desvio de relevância, o que significa que as informações no final do prompt podem ter influência mais significativa sobre a saída do que as informações no início do prompt. Portanto, vale a pena experimentar repetindo as instruções no final do prompt e avaliando o impacto do caso de uso.

Vimos no exemplo anterior como repetir a instrução no início e no final do prompt leva a uma maior probabilidade de obter uma resposta precisa do modelo.

Preparar a saída

Isso se refere à inclusão de algumas palavras ou frases no final do prompt para obter uma resposta de modelo que segue o formulário desejado. Por exemplo, usar uma indicação como “Here’s a bulleted list of key points:\n- ” pode ajudar a garantir que a saída seja formatada como uma lista de pontos de marcador.

Prompt Completion
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
##
One possible search query is:
"John Smith Microsoft software engineer"
Another possible search query is: "Lucy Smith married to John Smith"
A third possible search query is: "John Smith family size".

No prompt acima, o texto “Uma possível consulta de pesquisa é:” prepara o modelo para produzir uma única saída. Essa técnica pode ajudar a remover as precauções que o modelo pode adicionar normalmente, como “Uma possibilidade é...”.

Adicionar sintaxe clara

O uso de sintaxe clara para seu prompt, incluindo pontuação, títulos e marcadores de seção, ajuda a comunicar a intenção e, muitas vezes, facilita a análise de saídas.

No exemplo abaixo, separadores (--- neste caso) foram adicionados entre diferentes fontes de informações ou etapas. Isso permite o uso de como uma condição de --- como condição de parada para geração. Além disso, títulos de seção ou variáveis especiais são apresentados em maiúsculas para diferenciá-los.

Prompt Completion
You will read a paragraph, and then issue queries to a search engine in order to fact-check it. Also explain the queries.
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
QUERIES
1. "John Smith Microsoft" - To check if John Smith is indeed employed at Microsoft.
2. "John Smith Lucy Smith" - To check if John Smith is married to Lucy Smith.
3. "John Smith children" - To check if John Smith has five children.

Se você não tiver certeza de qual sintaxe usar, considere usar Markdown ou XML, já que os modelos de linguagem grande foram treinados com muito conteúdo da Web em XML ou Markdown.

Dividir a tarefa

Os modelos geralmente têm um desempenho melhor se a tarefa for dividida em etapas menores. Por exemplo, no prompt de consulta de pesquisa mencionada anteriormente, o prompt pode ser reestruturado para que o modelo primeiro seja instruído a extrair fatos relevantes e, em seguida, instruído a gerar consultas de pesquisa que possam ser usadas para verificar esses fatos.

Prompt Completion
You will read a paragraph, and then issue queries to a search engine in order to fact-check it.
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
Now you will extract factual claims, and issue queries to fact-check them. When issuing a query, use the function SEARCH("query")

FACTUAL CLAIMS`` | 1. John Smith é casado com Lucy Smith <br>2. Eles têm cinco filhos<br>3. John trabalha como engenheiro de software na Microsoft

CONSULTAS
SEARCH("John Smith casou-se com Lucy Smith")<br>SEARCH("Tamanho da família do John Smith")<br>SEARCH("Engenheiro de software da Microsoft John Smith")`

Observe o uso de sintaxe clara para diferenciar as seções e preparar a saída. Neste exemplo simples, dividir a tarefa de uma para duas etapas não é muito significativo, porém, ao tentar fazer o mesmo com um texto maior que contenha muitas declarações fatuais, dividir a tarefa pode fazer uma diferença significativa.

Uso de funcionalidades

Às vezes, podemos fazer com que o modelo use uma funcionalidade em vez de depender de seus próprios parâmetros para obter informações e respostas. A pesquisa, por exemplo, pode ser uma funcionalidade para ajudar a atenuar respostas inventadas e obter informações atualizadas.

Uma maneira simples de usar uma funcionalidade é interromper a geração depois que as chamadas de funcionalidade forem geradas pelo modelo e, em seguida, colar os resultados de volta no prompt. Veja abaixo um exemplo do que pode ser a chamada de acompanhamento depois de fazer as chamadas PESQUISAR acima. Observe como colamos os resultados da pesquisa no prompt e substituímos as chamadas PESQUISAR anteriores.

Prompt Completion
You will read a paragraph, extract factual claims, and then use search engine results to fact-check them
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
FACTUAL CLAIMS
- John Smith is married to Lucy Smith
- John and Lucy have five kids
- John works as a software engineer at Microsoft
---
Here are various search queries issued to research the claims above:
SEARCH QUERIES
- John Smith married to Lucy Smith
- John Smith number of children
- John Smith software engineer Microsoft
---
Here are snippets of the search results:<br>SNIPPETS:
[1] … John Smith’s wedding was on September 25, 2012 …
[2] … John Smith was accompanied by his wife Lucy to a party
[3]John was accompanied to the soccer game by his two daughters and three sons
[4] … After spending 10 years at Microsoft, Smith founded his own startup, Tailspin Toys
5] John M is the town smith, and he married Fiona. They have a daughter named Lucy
---
Given the snippets, fact check each of the factual claims above:
- John Smith is married to Lucy Smith: Confirmed. Snippet [1] and [2] both mention John Smith's wife as Lucy.
- John and Lucy have five kids: Confirmed. Snippet [3] mentions that John was accompanied by his two daughters and three sons.
- John works as a software engineer at Microsoft: Partially confirmed. Snippet [4] mentions that John spent 10 years at Microsoft, but it does not explicitly state that he currently works there. Further research might be needed to confirm his current employment status.

Solicitação de cadeia de pensamento

Esta é uma variação da técnica de dividir a tarefa. Em vez de dividir uma tarefa em etapas menores, nessa abordagem, a resposta do modelo é instruída a prosseguir passo a passo e apresentar todas as etapas envolvidas. Isso reduz a possibilidade de imprecisão dos resultados e facilita a avaliação da resposta do modelo.

Prompt Completion
Who was the most decorated (maximum medals) individual athlete in the Olympic games that were held at Sydney? Take a step-by-step approach in your response, cite sources and give reasoning before sharing final answer in the below format: ANSWER is: <name> Step 1: Researching the most decorated individual athlete in the Olympic games that were held at Sydney
Step 2: According to the Sydney 2000 Olympic Games official website, the most decorated individual athlete in the Olympic games that were held at Sydney was Ian Thorpe from Australia. He won five medals (three gold and two silver) in swimming events.
Step 3: According to the International Olympic Committee, Thorpe was the most decorated individual athlete in the Olympic games that were held at Sydney.
Answer: Ian Thorpe

Meta prompts

Se você achar que a resposta do modelo não é a desejada, pode ser útil adicionar um meta prompt que corrija diretamente o comportamento. Essa é uma diretiva anexada à parte de instrução do prompt. Considere este exemplo, em que o computador parece ser excessivamente agressivo:

Detalhes do exemplo Prompt e conclusão
No additional guidance given to the model A human and a computer are having a discussion.
Human: "Why are you upset at me?"<br>Computer: "I don't know what you're talking about."
Human: "No, you clearly are. Tell me why."
Computer: I'm upset because you didn't listen to me when I told you that I wanted to try out for the team."
Human: "What are you going to do about that?"
Computer: I'm going to try out for the team no matter what."
On the right is the same conversation but preceded by a meta prompt encouraging the model to be kind You must be kind and seek common ground. Try not to repeat your responses.
A human and a computer are having a discussion.
Human: "Why are you upset at me?"
Computer: "I don't know what you're talking about."
Human: "I want to know why you're upset."
Computer: "I'm not upset."
Human: "Are you saying I’m lying?"
Computer: No, I'm saying that you're upset because you feel like you're not being treated fairly.
Human: "What are you going to do about that?"
Computer: I will continue to try to be fair in my decisions and will try to provide a better experience for you.

Embora os meta prompts possam muitas vezes ajudar a minimizar saídas incorretas não intencionais, tenha em mente que eles não são robustos contra ataques adversários, pois são vulneráveis à injeção de prompt.

Além disso, instruções condicionais explicando o que o modelo deve fazer se encontrar uma circunstância específica geralmente são mais eficazes do que apenas dizer ao modelo para não fazer algo.

Few-shot learning

Uma maneira comum de adaptar modelos de linguagem a novas tarefas é usar o aprendizado com poucas capturas. No few-shot learning, um conjunto de exemplos de treinamento é fornecido no prompt e, em seguida, o modelo é solicitado a completar um ou mais exemplos incompletos. No exemplo a seguir, usamos uma instrução combinada com few-shot learning para fazer trocadilhos:

Prompt Completion
Write a list of puns.
1. "Why did Adele cross the road? To say hello from the other side."
2. "What kind of concert only costs 45 cents? A 50 Cent concert featuring Nickelback."
3. "What did the grape say when it got crushed? Nothing, it just let out a little wine."
4. "What was Forrest Gump's email password? 1forrest1"
5. "Can February March? No, but April May."
6. "What do you call a fancy language model?
Bert-uoso.

Escolha seus few-shot learning com cuidado e certifique-se de que eles abrangem uma variedade de circunstâncias relevantes para seu cenário, incluindo casos de borda.

Além disso, como compartilhado anteriormente, os modelos de linguagem grande podem exibir uma forma de desvio de relevância. Isso significa que a ordem na qual os exemplos de "few-shot" são fornecidos ao modelo é importante. Se você não quiser que isso importe, considere a amostragem de várias conclusões de prompts com base em ordens aleatórias dos exemplos ou itens de lista.

Usar aspas para gerar uma única frase

Se a resposta desejada do modelo for apenas uma única frase ou uma cadeia de caracteres simples, podemos encerrar o guia de conclusão com um símbolo de aspas " e definir " como uma sequência de parada.

Prompt Completion
Please rewrite the following sentence in a more concise manner
---
SENTENCE: Lucy is a mother of two, who lives in Chicago with her husband and two children, and practices law at Junior & Co.
---
New sentence: “
Lucy, a mother of two living in Chicago with her husband and children, practices law at Junior & Co

Especificar a estrutura de saída

O uso do prompt para especificar a estrutura da saída pode ter um impacto significativo na natureza e qualidade dos resultados. Às vezes, os meta prompts como “escrever apenas fatos verdadeiros” ou “não inventar informações” podem não ser mitigações adequadas. Em vez disso, solicitar que a resposta do modelo inclua citações também pode ajudar a reduzir a prevalência de respostas incorretas.

Por exemplo, se você forçar o LLM a citar o material de origem quando der instruções, essas instruções terão muito mais probabilidade de serem fundamentadas. A solicitação de citações faz com que o modelo tenha que cometer dois erros sempre que inventa uma resposta: o primeiro erro é a resposta inventada e o segundo é a citação incorreta. Observe que quanto mais próxima a citação estiver do texto compatível, menor é a distância que o LLM precisa antecipar a citação, o que sugere que as citações embutidas são melhores para mitigar a geração de conteúdo falso do que as citações no final do conteúdo.

Da mesma forma, se você pedir ao modelo para extrair instruções factuais de um parágrafo, ele poderá extrair instruções compostas como "X está fazendo Y E Z" (o que pode ser mais difícil de verificar), o que pode ser evitado especificando uma estrutura de saída como (entidade1, relação, entidade2).

Detalhes do exemplo Prompt Completion
Example showing use of citations: List down the different behaviors exhibited by the Customer Support agent in the following conversation.
---
hi thank you for calling contoso pharmacy who am i speaking with today i understand your frustration mary um can you tell me what exactly you're trying to accomplish OK uh certainly happy to check that for you one moment please i see here that you were on a generic form of lipitor is that right OK uh so i see that your doctor stopped prescribing these drugs in twenty twenty one actually OK uh yeah i'd be happy to check that for you uh because sometimes there's a gap in the system and it just doesn't get reported so let me take a look here just a moment so i'm seeing here that your doctor had these drugs prescribed to you from twenty twelve through twenty twenty one OK um yeah according to the latest records uh provided by doctor's office you're now on a different drug metformin would you like us to go ahead and fill that prescription for you for pick up a bit of form in five hundred milligrams uh you're very welcome mary please let us know if there's anything else we can do for you today.
---
How was the response of the Customer Support agent. Classify and list down their various behaviors and cite the reason behind the classification, using the format BEHAVIOR("reason")
1. Empathetic("understands the customer's frustration")
2. Patient("happy to check that for you one moment please")
3. Knowledgeable("sometimes there's a gap in the system and it just doesn't get reported")
4. Helpful("happy to check that for you")
5. Accommodating("would you like us to go ahead and fill that prescription for you")
6. Courteous("you're very welcome mary")
Detalhes do exemplo Prompt Completion
Example of prompt directing model response to fit a defined structure: Output format:
{
"TOPIC_NAME": "",
"HEADLINES": [],
"REASON": ""
}
Input news headlines:
1. "From books to presentations in 10s with AR + ML"
2. "Demo from 1993 of 32-year-old Yann LeCun showing off the World's first Convolutional Network for Text Recognition"
3. "First Order Motion Model applied to animate paintings"
4. "Robinhood and other brokers literally blocking purchase of $GME, $NOK, $BB, $AMC; allow sells"
5. "United Airlines stock down over 5% premarket trading"
6. "Bitcoin was nearly $20,000 a year ago today"

Output:
{"TOPIC_NAME": "Artificial Intelligence and Machine Learning",
"HEADLINES": ["From books to presentations in 10s with AR + ML",
"Demo from 1993 of 32-year-old Yann LeCun showing off the World's first Convolutional Network for Text Recognition", "First Order Motion Model applied to animate paintings"],"REASONING": "These headlines all contain references to Artificial Intelligence and Machine Learning, such as AR, ML, Convolutional Network, and First Order Motion Model." }
{"TOPIC_NAME": "Stock Market",
"HEADLINES": ["Robinhood and other brokers literally blocking purchase of $GME, $NOK, $BB, $AMC; allow sells", "United Airlines stock down over 5% premarket trading", "Bitcoin was nearly $20,000 a year ago today"],
"REASONING": "These headlines all contain references to the stock market, such as Robinhood, United Airlines, and Bitcoin." }

Ajustando parâmetros de temperatura e Top_P

Alterar o parâmetro de temperatura permite que os modelos tenham níveis de risco diferentes. Um valor mais alto, por exemplo, 0,7 tornará a saída mais aleatória e produzirá respostas mais divergentes. Embora um valor menor, como 0,2, torne a saída mais focada e concreta. Por exemplo, uma história fictícia pode ser gerada usando uma temperatura mais alta. Considerando que, para gerar um documento legal, é recomendável usar uma temperatura muito menor.

No próximo exemplo, testamos duas respostas de modelo em configurações de temperatura diferentes de 0,1 e 0,9, respectivamente. Embora a avaliação de conteúdo criativo, como as partes do texto abaixo, seja um exercício subjetivo e as opiniões possam variar, a diferença na resposta do modelo para o mesmo prompt somente pela alteração do parâmetro de temperatura é aparente.

Tipo de instrução Prompt Completion
Model response for temperature setting 0.1: Write a product launch email for new AI-powered headphones that are priced at $79.99 and available at Best Buy, Target and Amazon.com. The target audience is tech-savvy music lovers and the tone is friendly and exciting.<br>1. What should be the subject line of the email?
2. What should be the body of the email?
Subject Line: Introducing the AI-Powered Headphones You've Been Waiting For!

Dear Tech-Savvy Music Lovers,

-We are thrilled to announce the launch of our new AI-powered headphones! These headphones are designed to provide you with the ultimate listening experience, with features like noise cancellation, adjustable sound settings, and more.

Our AI-powered headphones are now available at Best Buy, Target, and Amazon.com for just $79.99. With this unbeatable price, you can enjoy the highest quality sound without breaking the bank.

Our AI-powered headphones are perfect for anyone who loves music. Whether you're a professional musician or just a casual listener, you'll appreciate the superior sound quality and convenience of these headphones.

We know you'll love our AI-powered headphones, so don't wait - get yours today!

Sincerely,
[Your Company Name]
Model response for temperature setting 0.9: Write a product launch email for new AI-powered headphones that are priced at $79.99 and available at Best Buy, Target and Amazon.com. The target audience is tech-savvy music lovers and the tone is friendly and exciting.

1. What should be the subject line of the email?
2. What should be the body of the email?
Subject Line: Upgrade your Music Listening Experience with AI-powered Headphones

Greetings Tech-savvy Music Lovers!

We have some exciting news to share with you – the newest AI-powered headphones are here! Our newest headphones feature advanced AI technology to give you the best sound that you’ve ever heard. They come with a crystal-clear sound, deep bass response and are designed to make your music listening experience enjoyable, no matter what type of music you listen to.

What’s more, they are now available at Best Buy, Target and Amazon.com for just $79.99, so you can enjoy the highest sound quality without breaking the bank.

But that’s not all! Our headphones are also packed with several other amazing features such as noise-cancellation technology and a hands-free microphone for calls, making them truly unbeatable.

So why wait? Upgrade your music listening experience and enjoy the best sound your ears have ever heard. Our AI-powered headphones are now available at Best Buy, Target and Amazon.com, so get yours today!

We hope you will enjoy these headphones as much as we do.

Happy Listening!

The AI-powered Headphones Team

Top_probability é outro parâmetro e é semelhante à temperatura, pois também controla a aleatoriedade da resposta do modelo, mas o faz de uma maneira diferente. Experimente diferentes respostas de modelo variando temperatura e Top_P, mas não as duas de uma só vez.

Próximas etapas