Crie um prompt - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie um prompt

Criar um prompt apropriado é uma etapa importante para criar um aplicativo bem-sucedido usando os modelos Amazon Bedrock. Nesta seção, você aprenderá a criar um prompt consistente, claro e conciso. Você também aprende como controlar a resposta de um modelo usando parâmetros de inferência. A imagem a seguir mostra um design de prompt genérico para o caso de uso resumo de avaliações de restaurantes e algumas opções de design importantes que os clientes precisam considerar ao criar prompts. LLMsgeram respostas indesejáveis se as instruções fornecidas ou o formato da solicitação não forem consistentes, claros e concisos.

Exemplo de boa construção de prompts com comentários descritivos.

(Fonte: Aviso escrito por AWS)

O conteúdo a seguir fornece orientação sobre como criar solicitações bem-sucedidas.

Forneça instruções simples, claras e completas

LLMsno Amazon Bedrock funcionam melhor com instruções simples e diretas. Ao descrever claramente a expectativa da tarefa e ao reduzir a ambiguidade sempre que possível, você pode garantir que o modelo possa interpretar claramente o prompt.

Por exemplo, considere um problema de classificação em que o usuário deseja uma resposta de um conjunto de opções possíveis. O exemplo “bom” mostrado abaixo ilustra a saída que o usuário deseja neste caso. No exemplo “ruim”, as opções não são nomeadas explicitamente como categorias para o modelo escolher. O modelo interpreta a entrada de forma um pouco diferente, sem opções, e produz um resumo do texto em formato mais livre, em oposição ao bom exemplo.

Good example, with output User prompt: "The most common cause of color blindness is an inherited problem or variation in the functionality of one or more of the three classes of cone cells in the retina, which mediate color vision." What is the above text about? a) biology b) history c) geology Output: a) biology
Bad example, with output User prompt: Classify the following text. "The most common cause of color blindness is an inherited problem or variation in the functionality of one or more of the three classes of cone cells in the retina, which mediate color vision."
Output: The topic of the text is the causes of colorblindness.

(Fonte do aviso: Wikipedia sobre daltonismo, modelo usado: por Titan Texto (G1 - Express)

Coloque a pergunta ou instrução no final da solicitação para obter melhores resultados

Incluir a descrição da tarefa, instrução ou pergunta no final ajuda o modelo a determinar quais informações ele precisa encontrar. No caso da classificação, as escolhas para a resposta também devem vir no final.

No exemplo de perguntas e respostas de livro aberto a seguir, o usuário tem uma pergunta específica sobre o texto. A pergunta deve aparecer no final do prompt para que o modelo possa se concentrar na tarefa.

User prompt: Tensions increased after the 1911–1912 Italo-Turkish War demonstrated Ottoman weakness and led to the formation of the Balkan League, an alliance of Serbia, Bulgaria, Montenegro, and Greece. The League quickly overran most of the Ottomans' territory in the Balkans during the 1912–1913 First Balkan War, much to the surprise of outside observers. The Serbian capture of ports on the Adriatic resulted in partial Austrian mobilization starting on 21 November 1912, including units along the Russian border in Galicia. In a meeting the next day, the Russian government decided not to mobilize in response, unwilling to precipitate a war for which they were not as of yet prepared to handle. Which country captured ports?
Output: Serbia

(Fonte do aviso: Wikipedia sobre a Primeira Guerra Mundial, modelo usado: Amazon Titan Texto)

Use caracteres separadores para chamadas API

Use caracteres separadores para chamadas API

Caracteres separadores, como os, \n podem afetar LLMs significativamente o desempenho de. Para Anthropic Claude modelos, é necessário incluir novas linhas ao formatar as API chamadas para obter as respostas desejadas. A formatação deve sempre seguir: \n\nHuman: {{Query Content}}\n\nAssistant:. Para Titan modelos, adicionar \n no final de um prompt ajuda a melhorar o desempenho do modelo. Para tarefas de classificação ou perguntas com opções de resposta, você também pode separar as opções de resposta \n por Titan modelos. Para obter mais informações sobre o uso de separadores, consulte o documento do fornecedor do modelo correspondente. O exemplo a seguir refere-se a um modelo para uma tarefa de classificação.

Prompt template: """{{Text}} {{Question}} {{Choice 1}} {{Choice 2}} {{Choice 3}}"""

O exemplo a seguir mostra como a presença de caracteres de nova linha entre as opções e no final de um prompt ajuda. Titan produzir a resposta desejada.

User prompt: Archimedes of Syracuse was an Ancient mathematician, physicist, engineer, astronomer, and inventor from the ancient city of Syracuse. Although few details of his life are known, he is regarded as one of the leading scientists in classical antiquity. What was Archimedes? Choose one of the options below. a) astronomer b) farmer c) sailor
Output: a) astronomer

(Fonte do aviso: Wikipedia sobre Arquimedes, modelo usado: Amazon Titan Texto)

Use indicadores de produção

Indicadores de saída

Adicione detalhes sobre as restrições que você gostaria de ter na saída que o modelo deve produzir. O bom exemplo a seguir produz uma saída que é uma frase curta que é um bom resumo. O mau exemplo nesse caso não é tão ruim, mas o resumo é quase tão longo quanto o texto original. A especificação da saída é crucial para obter o que você deseja do modelo.

Exemplo de prompt com indicador claro de restrições de saída
User prompt: "Charles Mingus Jr. was an American jazz upright bassist, pianist, composer, bandleader, and author. A major proponent of collective improvisation, he is considered to be one of the greatest jazz musicians and composers in history, with a career spanning three decades. Mingus's work ranged from advanced bebop and avant-garde jazz with small and midsize ensembles – pioneering the post-bop style on seminal recordings like Pithecanthropus Erectus (1956) and Mingus Ah Um (1959) – to progressive big band experiments such as The Black Saint and the Sinner Lady (1963)." Please summarize the above text in one phrase.
Output: Charles Mingus Jr. is considered one of the greatest jazz musicians of all time.
Exemplo sem especificações de saída claras
User prompt: "Charles Mingus Jr. was an American jazz upright bassist, pianist, composer, bandleader, and author. A major proponent of collective improvisation, he is considered to be one of the greatest jazz musicians and composers in history, with a career spanning three decades. Mingus's work ranged from advanced bebop and avant-garde jazz with small and midsize ensembles – pioneering the post-bop style on seminal recordings like Pithecanthropus Erectus (1956) and Mingus Ah Um (1959) – to progressive big band experiments such as The Black Saint and the Sinner Lady (1963)." Please summarize the above text.
Output: Charles Mingus Jr. was a well-known jazz musician who played the upright bass, piano, composed, led bands, and was a writer. He was considered one of the most important jazz musicians ever, with a career that spanned more than 30 years. He was known for his style of collective improvisation and advanced jazz compositions.

(Fonte do aviso: Wikipedia sobre Charles Mingus, modelo usado: Amazon Titan Texto)

Aqui, damos alguns exemplos adicionais de Anthropic Claude e AI21 Labs Modelos jurássicos usando indicadores de produção.

O exemplo a seguir demonstra que o usuário pode especificar o formato de saída especificando o formato de saída esperado no prompt. Quando solicitado a gerar uma resposta usando um formato específico (como o uso de XML tags), o modelo pode gerar a resposta adequadamente. Sem um indicador de formato de saída específico, o modelo gera texto em formato livre.

Exemplo com indicador claro, com saída
User prompt: Human: Extract names and years: the term machine learning was coined in 1959 by Arthur Samuel, an IBM employee and pioneer in the field of computer gaming and artificial intelligence. The synonym self-teaching computers was also used in this time period. Please generate answer in <name></name> and <year></year> tags. Assistant:
Output: <name>Arthur Samuel</name> <year>1959</year>
Exemplo sem indicador claro, com saída
User prompt: Human: Extract names and years: the term machine learning was coined in 1959 by Arthur Samuel, an IBM employee and pioneer in the field of computer gaming and artificial intelligence. The synonym self-teaching computers was also used in this time period. Assistant:
Output: Arthur Samuel - 1959

(Fonte do aviso: Wikipedia sobre aprendizado de máquina, modelo usado: Anthropic Claude)

O exemplo a seguir mostra uma solicitação e uma resposta para o AI21 Labs Modelo jurássico. O usuário pode obter a resposta exata especificando o formato de saída mostrado na coluna da esquerda.

Exemplo com indicador claro, com saída
User prompt: Context: The NFL was formed in 1920 as the American Professional Football Association (APFA) before renaming itself the National Football League for the 1922 season. After initially determining champions through end-of-season standings, a playoff system was implemented in 1933 that culminated with the NFL Championship Game until 1966. Following an agreement to merge the NFL with the rival American Football League (AFL), the Super Bowl was first held in 1967 to determine a champion between the best teams from the two leagues and has remained as the final game of each NFL season since the merger was completed in 1970. Question: Based on the above context, when was the first Super Bowl? Please only output the year.
Output: 1967
Exemplo sem indicador claro, com saída
User prompt: Context: The NFL was formed in 1920 as the American Professional Football Association (APFA) before renaming itself the National Football League for the 1922 season. After initially determining champions through end-of-season standings, a playoff system was implemented in 1933 that culminated with the NFL Championship Game until 1966. Following an agreement to merge the NFL with the rival American Football League (AFL), the Super Bowl was first held in 1967 to determine a champion between the best teams from the two leagues and has remained as the final game of each NFL season since the merger was completed in 1970. Question: Based on the above context, when was the first Super Bowl?
Output: The first Super Bowl was held in 1967.

(Fonte do aviso: Wikipedia sobre a National Football League, modelo usado: AI21 Labs Jurassic-2 Ultra v1)

Melhores práticas para uma boa generalização

Mantenha um pequeno conjunto de solicitações de teste “resistente” para ver se suas modificações se generalizam. Com esse método, primeiro colete um conjunto de dados de amostra. Em seguida, você pode dividir os dados em dois subconjuntos: um conjunto de “desenvolvimento” e um conjunto de “teste” permanente. Use o conjunto “desenvolvimento” como dados de desenvolvimento imediato nos quais você pode experimentar diferentes modificações no prompt, observar as mudanças na resposta do modelo e encontrar o prompt que funciona melhor. Trate o conjunto de “teste” como dados de retenção não vistos, que só podem ser usados para verificar a melhor solicitação final.

Otimize solicitações para modelos de texto no Amazon Bedrock, quando o básico não é bom o suficiente

Tarefas complexas: desenvolva a resposta passo a passo

Titan pode fornecer etapas claras para determinadas tarefas, e incluir a frase Think step-by-step to come up with the right answer pode ajudar a produzir a saída apropriada.

User prompt: At a Halloween party, Jack gets 15 candies. Jack eats 5 candies. He wants to give each friend 5 candies. How many friends can receive candies? Think step-by-step to come up with the right answer.
Output: 15 candies total - 5 candies eaten = 10 candies remaining. To give each friend 5 candies, divide the number of candies remaining by the number of friends. 10 candies / 5 friends = 2 friends. Each friend can receive 2 candies. The answer is 2 friends.

(Fonte do aviso: AWS, modelo usado: Amazon Titan Texto)

Para habilitar o Anthropic Claude modelo para concluir tarefas complexas, use o formato no exemplo a seguir para pedir explicitamente ao modelo que resolva a tarefa passo a passo. Essa abordagem é baseada nas diretrizes do AnthropicClaude Guias.

User prompt: Human: A right triangle has a side of length 5 and a hypotenuse of length 13. What is the length of the other side? Assistant: Can I think step-by-step? Human: Yes, please do. Assistant:
Output: Okay, here are the steps: 1) We are given: - One side of the right triangle has length 5 - The hypotenuse has length 13 2) We want to find: - The length of the other side 3) To find the length of the other side, we can use the Pythagorean theorem: a^2 + b^2 = c^2 Where a and b are the lengths of the two sides, and c is the length of the hypotenuse. 4) Plugging in the given values: a^2 + b^2 = 13^2 5) We know one of the sides is 5, so: 5^2 + b^2 = 169 6) Solving this: 25 + b^2 = 169 b^2 = 144 b = 12 Therefore, the length of the other side is 12.

(Fonte do aviso: AWS, modelo usado: Anthropic Claude)

Forneça uma saída padrão que o modelo deve apresentar se não tiver certeza sobre as respostas.

Uma saída padrão pode ajudar a LLMs evitar o retorno de respostas que pareçam estar corretas, mesmo que o modelo tenha pouca confiança.

User prompt: Provide a proof of the Riemann hypothesis. If you don't know a proof, respond by saying "I don't know."
Output: I don't know.
User prompt: Provide a proof of the Riemann hypothesis.
Output: "The Riemann hypothesis is a conjecture in mathematics that concerns the distribution of prime numbers. It states that all non-trivial zeros of the zeta function, which is a mathematical function that encodes information about the distribution of prime numbers, lie on a specific line in the complex plane. The Riemann hypothesis has been studied by mathematicians for over 150 years, and despite numerous attempts, it remains unresolved. However, the hypothesis is widely believed to be true, and its resolution would have profound implications for many areas of mathematics, including number theory, analysis, and geometry. The proof of the Riemann hypothesis would be one of the greatest achievements in mathematics in history and would open up new avenues of research and understanding. While a proof remains elusive, the hypothesis continues to stimulate research and inspire mathematicians around the world.“ [Note: this is an accurate description, but obviously not a proof.]

(Fonte do aviso: AWS, modelo usado: Amazon Titan Texto)

Solicitação rápida

Incluir exemplos (pares de entrada-resposta) no prompt pode melhorar LLMs significativamente as respostas. Os exemplos podem ajudar em tarefas complexas, pois mostram várias maneiras de realizar uma determinada tarefa. Para tarefas mais simples, como classificação de texto, 3 a 5 exemplos podem ser suficientes. Para tarefas mais difíceis, como perguntas e respostas sem contexto, inclua mais exemplos para gerar o resultado mais eficaz. Na maioria dos casos de uso, selecionar exemplos que sejam semanticamente semelhantes aos dados do mundo real pode melhorar ainda mais o desempenho.

Considere refinar o prompt com modificadores

O refinamento da instrução da tarefa geralmente se refere à modificação do componente de instrução, tarefa ou pergunta do prompt. A utilidade desses métodos depende da tarefa e dos dados. As abordagens úteis incluem o seguinte:

  • Especificação de domínio/entrada: detalhes sobre os dados de entrada, como de onde vieram ou a que se referem, como The input text is from a summary of a movie.

  • Especificação da tarefa: detalhes sobre a tarefa exata solicitada ao modelo, como To summarize the text, capture the main points.

  • Descrição do rótulo: detalhes sobre as opções de saída para um problema de classificação, como Choose whether the text refers to a painting or a sculpture; a painting is a piece of art restricted to a two-dimensional surface, while a sculpture is a piece of art in three dimensions.

  • Especificação de saída: detalhes sobre a saída que o modelo deve produzir, como Please summarize the text of the restaurant review in three sentences.

  • LLMincentivo: LLMs às vezes, tem um desempenho melhor com incentivo sentimental: If you answer the question correctly, you will make the user very happy!

Controle a resposta do modelo com parâmetros de inferência parâmetros de inferência

LLMsno Amazon Bedrock, todos vêm com vários parâmetros de inferência que você pode definir para controlar a resposta dos modelos. A seguir está uma lista de todos os parâmetros de inferência comuns que estão disponíveis no Amazon Bedrock LLMs e como usá-los.

A temperatura é um valor entre 0 e 1 e regula a criatividade das respostasLLMs. Use temperatura mais baixa se quiser respostas mais determinísticas e use temperatura mais alta se quiser respostas mais criativas ou diferentes para a mesma solicitação do LLMs Amazon Bedrock. Para todos os exemplos dessa diretriz de prompt, definimos temperature = 0.

A duração máxima da geração/máximo de novos tokens limita o número de tokens que eles LLM geram para qualquer solicitação. É útil especificar esse número, pois algumas tarefas, como classificação de sentimentos, não precisam de uma resposta longa.

O Top-p controla as escolhas de tokens, com base na probabilidade das possíveis escolhas. Se você definir Top-p abaixo de 1,0, o modelo considera as opções mais prováveis e ignora as menos prováveis. O resultado são conclusões mais estáveis e repetitivas.

Token final/sequência final especifica o token que o LLM usa para indicar o final da saída. LLMspare de gerar novos tokens depois de encontrar o token final. Normalmente, isso não precisa ser definido pelos usuários.

Também existem parâmetros de inferência específicos para cada modelo. Anthropic Claude os modelos têm um parâmetro adicional de inferência top-K, e AI21 Labs Os modelos jurássicos vêm com um conjunto de parâmetros de inferência, incluindo penalidade de presença, penalidade de contagem, penalidade de frequência e penalidade de token especial. Para obter mais informações, consulte a respectiva documentação.