Consignes générales pour les utilisateurs de LLM Amazon Bedrock - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Consignes générales pour les utilisateurs de LLM Amazon Bedrock

Conception d’une invite

La conception d’une invite appropriée est une étape essentielle à la création d’une application réussie à l’aide des modèles Amazon Bedrock. La figure suivante présente une conception d’invite générique pour le cas d’utilisation Résumé d’un avis sur un restaurant, ainsi que certains choix de conception importants que les clients doivent prendre en compte lors de la conception des invites. Les LLM génèrent des réponses indésirables si les instructions qui leur sont données ou le format de l’invite ne sont pas cohérents, clairs et concis.

Exemple de construction d’invite appropriée avec commentaires descriptifs.

(Source : Prompt écrit par AWS)

Utilisation des paramètres d’inférence

Les LLM dans Amazon Bedrock sont tous fournis avec plusieurs paramètres d’inférence que vous pouvez définir pour contrôler la réponse des modèles. Vous trouverez ci-dessous une liste de tous les paramètres d’inférence courants disponibles dans les LLM Amazon Bedrock, avec leur mode d’utilisation.

Le paramètre Température est une valeur comprise entre 0 et 1, qui régule la créativité des réponses des LLM. Utilisez une valeur de température inférieure si vous souhaitez des réponses plus déterministes ou une valeur de température supérieure si vous souhaitez des réponses plus créatives ou variées pour la même invite de la part des LLM Amazon Bedrock. Pour tous les exemples présentés dans ces consignes de conception d’invite, nous définissons temperature = 0.

Le paramètre Longueur de génération maximale/Nombre maximal de nouveaux jetons limite le nombre de jetons générés par le LLM pour chaque invite. Il est utile de spécifier ce nombre, car certaines tâches, telles que la classification du sentiment, ne nécessitent pas de réponse longue.

Le paramètre Top-p contrôle les choix de jetons, en fonction de la probabilité des choix potentiels. Si vous définissez une valeur Top-P inférieure à 1,0, le modèle prend en compte les options les plus probables et ignore les options les moins probables. Il en résulte des complétions plus stables et répétitives.

Le paramètre Jeton de fin/Séquence de fin spécifie le jeton que le LLM utilise pour indiquer la fin de la sortie. Les LLM cessent de générer de nouveaux jetons une fois qu’ils parviennent au jeton de fin. En général, ce paramètre n’a pas besoin d’être défini par les utilisateurs.

Il existe également des paramètres d'inférence spécifiques au modèle. AnthropicClaudeles modèles ont un paramètre d'inférence Top-K supplémentaire, et les modèles AI21 Labs Jurassic sont fournis avec un ensemble de paramètres d'inférence, notamment la pénalité de présence, la pénalité de compte, la pénalité de fréquence et la pénalité spéciale pour les jetons. Pour en savoir plus, consultez la documentation correspondante.

Consignes détaillées

Fournir des instructions simples, claires et complètes

Les LLM dans Amazon Bedrock fonctionnent mieux avec des instructions simples et directes. En décrivant clairement les attentes de la tâche et en réduisant l’ambiguïté dans la mesure du possible, vous vous assurez que le modèle interprétera clairement l’invite.

Prenons l’exemple d’un problème de classification où l’utilisateur souhaite obtenir une réponse parmi un ensemble de choix possibles. Le « bon » exemple ci-dessous illustre le résultat souhaité par l’utilisateur dans ce cas. Dans le « mauvais » exemple, les choix ne sont pas nommés explicitement en tant que catégories parmi lesquelles le modèle peut choisir. Sans choix, le modèle interprète l’entrée légèrement différemment et génère un résumé du texte plus libre que le bon exemple.

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.

(Source de l'invite : Wikipédia sur le daltonisme, modèle utilisé : par Titan Text G1 - Express)

La question ou l’instruction doit être placée à la fin de l’invite pour de meilleurs résultats

L’ajout de la description de la tâche, de l’instruction ou de la question à la fin aide le modèle à déterminer les informations qu’il doit trouver. Dans le cas d’une classification, les choix de réponse doivent également figurer à la fin.

Dans l’exemple de question-réponse à livre ouvert suivant, l’utilisateur a une question spécifique à propos du texte. La question doit apparaître à la fin de l’invite afin que le modèle puisse rester concentré sur la tâche.

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

(Source de l'invite : Wikipédia sur la Première Guerre mondiale, modèle utilisé : Amazon Titan Text)

Utiliser des caractères de séparation pour les appels d’API

Les caractères de séparation tels que \n peuvent affecter de manière significative les performances des LLM. Pour les Anthropic Claude modèles, il est nécessaire d'inclure de nouvelles lignes lors du formatage des appels d'API afin d'obtenir les réponses souhaitées. La mise en forme doit toujours suivre : \n\nHuman: {{Query Content}}\n\nAssistant:. Pour les Titan modèles, l'ajout \n à la fin d'une invite permet d'améliorer les performances du modèle. Pour les tâches de classification ou les questions comportant des options de réponse, vous pouvez également séparer les options \n de réponse par Titan modèles. Pour plus d’informations sur l’utilisation des séparateurs, reportez-vous au document du fournisseur de modèles correspondant. L’exemple suivant est un modèle pour une tâche de classification.

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

L'exemple suivant montre comment la présence de caractères de nouvelle ligne entre les choix et à la fin d'une invite permet de Titan produire la réponse souhaitée.

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

(Source de l'invite : Wikipédia sur Archimède, modèle utilisé : Amazon Titan Text)

Indicateurs de sortie

Ajoutez des détails sur les contraintes que vous souhaitez appliquer à la sortie que le modèle doit générer. Le bon exemple suivant génère une sortie sous la forme d’une courte phrase qui constitue un bon résumé. Le mauvais exemple dans ce cas n’est pas si mauvais que cela, mais le résumé est presque aussi long que le texte original. La spécification de la sortie est cruciale pour obtenir ce que vous attendez du modèle.

Exemple d’invite avec indicateur clair des contraintes de sortie
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.
Exemple sans spécifications de sortie claires
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.

(Source de l'invite : Wikipédia sur Charles Mingus, modèle utilisé : Amazon Titan Text)

Nous donnons ici quelques exemples supplémentaires tirés de Anthropic Claude modèles AI21 Labs jurassiques utilisant des indicateurs de sortie.

L’exemple suivant montre que l’utilisateur peut spécifier le format de sortie en spécifiant le format de sortie attendu dans l’invite. Lorsqu’on lui demande de générer une réponse en utilisant un format spécifique (par exemple en utilisant des balises XML), le modèle peut générer la réponse en conséquence. Sans indicateur de format de sortie spécifique, le modèle produit du texte en format libre.

Exemple avec indicateur clair, avec sortie
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>
Exemple sans indicateur clair, avec sortie
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

(Source de l'invite : Wikipédia sur l'apprentissage automatique, modèle utilisé : AnthropicClaude)

L'exemple suivant montre une invite et une réponse pour le modèle AI21 Labs jurassique. L’utilisateur peut obtenir la réponse exacte en spécifiant le format de sortie indiqué dans la colonne de gauche.

Exemple avec indicateur clair, avec sortie
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
Exemple sans indicateur clair, avec sortie
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.

(Source du message : Wikipédia sur la National Football League, modèle utilisé : AI21 Labs Jurassic-2 Ultra v1)

Pratiques recommandées pour une généralisation appropriée

Gardez un petit ensemble de test d’invites « omises » pour voir si les modifications que vous apportez aux invites entraînent une généralisation appropriée. Avec cette méthode, collectez d’abord un exemple de jeu de données. Divisez ensuite les données en deux sous-ensembles : un ensemble de « développement » et un ensemble de « test » d’omission. Utilisez l’ensemble de « développement » comme données de développement d’invite avec lesquelles vous pouvez tester différentes modifications d’invite, observer les changements de réponse du modèle et trouver l’invite la plus efficace. Traitez l’ensemble de « test » en tant que données omises invisibles qui ne peuvent être utilisées que pour vérifier la meilleure invite finale.

Optimisation des invites pour les modèles de texte Amazon Bedrock (lorsque les bases ne suffisent pas)

Tâches complexes : donner une réponse étape par étape

Titanpeut fournir des étapes claires pour certaines tâches, et l'inclusion de la phrase Think step-by-step to come up with the right answer peut aider à produire le résultat approprié.

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.

(Source de l'invite : AWS modèle utilisé : Amazon Titan Text)

Pour permettre au Anthropic Claude modèle d'effectuer des tâches complexes, utilisez le format de l'exemple suivant pour demander explicitement au modèle de résoudre la tâche étape par étape. Cette approche est basée sur les directives contenues dans les AnthropicClaudeguides.

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.

(Source de l'invite : AWS, modèle utilisé : AnthropicClaude)

Fournissez une sortie par défaut que le modèle devra présenter en cas de doute quant aux réponses.

Une sortie par défaut contribue à empêcher que les LLM renvoie des réponses qui semblent correctes, même si le niveau de confiance du modèle est faible.

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

(Source de l'invite : AWS modèle utilisé : Amazon Titan Text)

Invites avec peu d’exemples

L’ajout d’exemples (paires entrée/réponse) dans l’invite peut améliorer considérablement les réponses des LLM. Les exemples peuvent être utiles pour les tâches complexes, car ils montrent plusieurs manières d’exécuter une tâche donnée. Pour les tâches simples telles que la classification de texte, trois à cinq exemples peuvent suffire. Pour les tâches plus difficiles, comme les questions-réponses sans contexte, incluez d’autres exemples afin de générer la sortie la plus efficace possible. Dans la plupart des cas d’utilisation, la sélection d’exemples sémantiquement similaires à des données réelles améliore encore plus les performances.

Envisager d’affiner l’invite à l’aide de modificateurs

L’affinement des instructions de tâche fait généralement référence à la modification de l’instruction, de la tâche ou de la question de l’invite. L’utilité de ces méthodes dépend des tâches et des données. Voici quelques approches utiles :

  • Spécification du domaine/de l’entrée : détails sur les données d’entrée, comme leur provenance ou leur référence, comme The input text is from a summary of a movie.

  • Spécification de la tâche : détails sur la tâche exacte demandée au modèle, comme To summarize the text, capture the main points.

  • Description de l’étiquette : détails sur les choix de sortie pour un problème de classification, comme 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.

  • Spécification de la sortie : détails sur la sortie que le modèle doit produire, comme Please summarize the text of the restaurant review in three sentences.

  • Encouragement des LLM : les LLM obtiennent parfois de meilleurs résultats avec un encouragement sentimental : If you answer the question correctly, you will make the user very happy!