View a markdown version of this page

Encourager les entrées multimodales - Amazon Nova

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.

Encourager les entrées multimodales

Les sections suivantes fournissent des conseils pour comprendre les images et les vidéos. Pour les instructions relatives au son, reportez-vous à la Invites de conversation vocale section.

Directives générales relatives au multimodal

Invites de l'utilisateur et instructions du système

Pour les cas d'utilisation liés à la compréhension multimodale, chaque demande doit inclure un texte d'invite utilisateur. Les instructions du système, qui ne peuvent contenir que du texte, sont facultatives.

Les instructions du système peuvent être utilisées pour spécifier un personnage pour le modèle et pour définir la personnalité générale et le style de réponse, mais elles ne doivent pas être utilisées pour une définition détaillée des tâches ou des instructions de formatage de sortie.

Incluez la définition des tâches, les instructions et les détails de mise en forme dans l'invite utilisateur pour avoir un effet plus fort que l'invite du système pour les cas d'utilisation multimodaux.

Ordre du contenu

Une demande de compréhension multimodale envoyée à Amazon Nova doit contenir un ou plusieurs fichiers et une invite utilisateur. L'invite de texte utilisateur doit être le dernier élément du message, toujours après le contenu de l'image, du document ou de la vidéo.

message = { "role": "user", "content": [ { "document|image|video|audio": {...} }, { "document|image|video|audio": {...} }, ... { "text": "<user prompt>" } ] }

Dans les cas où vous souhaitez faire référence à des fichiers spécifiques depuis l'invite de l'utilisateur, utilisez des éléments « texte » pour définir les étiquettes qui précèdent chaque bloc de fichier.

message = { "role": "user", "content": [ { "text": "<label for item 1>" }, { "document|image|video|audio": {...} }, { "text": "<label for item 2>" }, { "document|image|video|audio": {...} }, ... { "text": "<user prompt>" } ] }

Compréhension des documents et des images

Les sections suivantes fournissent des conseils sur la façon de créer des instructions pour les tâches qui nécessitent de comprendre ou d'analyser des images et des documents.

Extraction de texte à partir d'images

Les modèles Amazon Nova peuvent extraire du texte à partir d'images, une fonctionnalité appelée reconnaissance optique de caractères (OCR). Pour de meilleurs résultats, assurez-vous que la résolution de l'image saisie dans le modèle est suffisamment élevée pour que les caractères du texte soient faciles à discerner.

Pour les cas d'utilisation de l'extraction de texte, nous recommandons la configuration d'inférence suivante :

  • température : par défaut (0,7)

  • TopP : par défaut (0.9)

  • Ne pas activer le raisonnement

Les modèles Amazon Nova peuvent extraire du texte au format Markdown, HTML ou LaTe X. Le modèle d'invite utilisateur suivant est recommandé :

## Instructions Extract all information from this page using only {text_formatting} formatting. Retain the original layout and structure including lists, tables, charts and math formulae. ## Rules 1. For math formulae, always use LaTeX syntax. 2. Describe images using only text. 3. NEVER use HTML image tags `<img>` in the output. 4. NEVER use Markdown image tags `![]()` in the output. 5. Always wrap the entire output in ``` tags.

La sortie est enveloppée dans des clôtures de code Markdown complètes ou partielles (```). Vous pouvez supprimer les barrières de code à l'aide d'un code similaire au suivant :

def strip_outer_code_fences(text): lines = text.split("\n") # Remove only the outer code fences if present if lines and lines[0].startswith("```"): lines = lines[1:] if lines and lines[-1].startswith("```"): lines = lines[:-1] return "\n".join(lines).strip()

Extraction d'informations structurées à partir d'images ou de textes

Les modèles Amazon Nova peuvent extraire des informations à partir d'images au format JSON analysable par machine, un processus appelé extraction d'informations clés (KIE). Pour exécuter KIE, fournissez les informations suivantes :

  • Schéma JSON. Une définition de schéma formelle qui suit la spécification du schéma JSON.

  • Un ou plusieurs des éléments suivants : un fichier de document, une image ou un texte de document

Le document ou l'image doit toujours être placé avant que l'utilisateur ne le demande.

Pour les cas d'utilisation de KIE, nous recommandons la configuration d'inférence suivante :

  • température : 0

  • Raisonnement : le raisonnement n'est pas obligatoire mais peut améliorer les résultats lorsque des entrées contenant uniquement des images ou des schémas complexes sont utilisés.

Modèles d’invites

Given the image representation of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema}
Given the OCR representation of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema} OCR: {document_text}
Given the image and OCR representations of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema} OCR: {document_text}

Détection d'objets et de leur position dans les images

Les modèles Amazon Nova 2 permettent d'identifier les objets et leur position dans les images, une tâche parfois appelée « mise à la base des images » ou « localisation d'objets ». Les applications pratiques incluent l'analyse et le balisage d'images, l'automatisation de l'interface utilisateur, la retouche d'images, etc.

Quels que soient la résolution d'entrée de l'image et le rapport hauteur/largeur, le modèle utilise un espace de coordonnées qui divise l'image en 1 000 unités horizontalement et 1 000 unités verticalement, l'emplacement x:0 y:0 étant le coin supérieur gauche de l'image.

Les cadres de délimitation sont décrits en utilisant le format [x1, y1, x2, y2] représentant respectivement la gauche, le haut, la droite et le bas. Les coordonnées bidimensionnelles sont représentées à l'aide du format. [x, y]

Pour les cas d'utilisation liés à la détection d'objets, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • Ne pas activer le raisonnement

Modèles d'invite : détection générale des objets

Nous recommandons les modèles d'invite utilisateur suivants.

Détection de plusieurs instances à l'aide de cadres de délimitation :

Please identify {target_description} in the image and provide the bounding box coordinates for each one you detect. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Détection d'une seule région à l'aide d'un cadre de délimitation :

Please generate the bounding box coordinates corresponding to the region described in this sentence: {target_description}. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Détection de plusieurs instances avec des points centraux :

Please identify {target_description} in the image and provide the center point coordinates for each one you detect. Represent the point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Détection d'une seule région avec un point central :

Please generate the center point coordinates corresponding to the region described in this sentence: {target_description}. Represent the center point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Analyse de la sortie du modèle :

Chacune des instructions recommandées ci-dessus produira une chaîne séparée par des virgules contenant une ou plusieurs descriptions encadrées sous une forme similaire à la suivante. Il peut y avoir une légère variation quant à savoir s'il s'agit d'un «. » est inclus à la fin de la chaîne. Par exemple, [356, 770, 393, 872], [626, 770, 659, 878].

Vous pouvez analyser les informations de coordonnées générées par le modèle à l'aide d'une expression régulière, comme illustré dans l'exemple de code Python suivant.

def parse_coord_text(text): """Parses a model response which uses array formatting ([x, y, ...]) to describe points and bounding boxes. Returns an array of tuples.""" pattern = r"\[([^\[\]]*?)\]" return [ tuple(int(x.strip()) for x in match.split(",")) for match in re.findall(pattern, text) ]

Pour remapper les coordonnées normalisées d'un cadre de délimitation à l'espace de coordonnées de l'image d'entrée, vous pouvez utiliser une fonction similaire à l'exemple Python suivant.

def remap_bbox_to_image(bounding_box, image_width, image_height): return [ bounding_box[0] * image_width / 1000, bounding_box[1] * image_height / 1000, bounding_box[2] * image_width / 1000, bounding_box[3] * image_height / 1000, ]
Modèles rapides : détection de plusieurs classes d'objets avec des positions

Lorsque vous souhaitez identifier plusieurs catégories d'éléments dans une image, vous pouvez inclure une liste de classes dans votre invite en utilisant l'une des approches de mise en forme suivantes.

Pour les classes communément comprises que le modèle est susceptible de bien comprendre, listez les noms de classe (sans guillemets) entre crochets :

[car, traffic light, road sign, pedestrian]

Pour les classes nuancées, peu communes ou issues de domaines spécialisés que le modèle ne connaît peut-être pas, incluez une définition pour chaque classe entre parenthèses. Cette tâche étant complexe, attendez-vous à ce que les performances du modèle se dégradent.

[taraxacum officinale (Dandelion - bright yellow flowers, jagged basal leaves, white puffball seed heads), digitaria spp (Crabgrass - low spreading grass with coarse blades and finger-like seed heads), trifolium repens (White Clover - three round leaflets and small white pom-pom flowers), plantago major (Broadleaf Plantain - wide oval rosette leaves with tall narrow seed stalks), stellaria media (Chickweed - low mat-forming plant with tiny star-shaped white flowers)]

Utilisez l'un des modèles d'invite utilisateur suivants en fonction du format de sortie JSON que vous préférez.

Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Include separate entries for each detected object as an element of a list. Formulate your output as JSON format: [ { "class 1": [x1, y1, x2, y2] }, ... ]
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Include separate entries for each detected object as an element of a list. Formulate your output as JSON format: [ { "class": class 1, "bbox": [x1, y1, x2, y2] }, ... ]
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Group all detected bounding boxes by class. Formulate your output as JSON format: { "class 1": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...], ... }
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Group all detected bounding boxes by class. Formulate your output as JSON format: [ { "class": class 1, "bbox": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...] }, ... ]

Analyse de la sortie du modèle

La sortie sera codée au format JSON qui peut être analysé avec n'importe quelle bibliothèque d'analyse JSON.

Modèles rapides : détection des limites de l'interface utilisateur de capture d'écran

Nous recommandons les modèles d'invite utilisateur suivants.

Détection de la position des éléments de l'interface utilisateur en fonction d'un objectif :

In this UI screenshot, what is the location of the element if I want to {goal}? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.

Détection de la position des éléments de l'interface utilisateur en fonction du texte :

In this UI screenshot, what is the location of the element if I want to click on "{text}"? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.

Analyse de la sortie du modèle :

Pour chacune des instructions de détection des limites de l'interface utilisateur ci-dessus, vous pouvez analyser les informations de coordonnées générées par le modèle à l'aide d'une expression régulière, comme indiqué dans l'exemple de code Python ci-dessous.

def parse_coord_text(text): """Parses a model response which uses array formatting ([x, y, ...]) to describe points and bounding boxes. Returns an array of tuples.""" pattern = r"\[([^\[\]]*?)\]" return [ tuple(int(x.strip()) for x in match.split(",")) for match in re.findall(pattern, text) ]

Compréhension des vidéos

Les sections suivantes fournissent des conseils sur la façon de créer des instructions pour les tâches qui nécessitent de comprendre ou d'analyser des vidéos.

Récapitulatif des vidéos

Les modèles Amazon Nova peuvent générer des résumés de contenu vidéo.

Pour les cas d'utilisation du résumé vidéo, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • Certains cas d'utilisation peuvent bénéficier de l'activation du raisonnement fondé sur le modèle

Aucun modèle d'invite spécifique n'est requis. Votre invite utilisateur doit clairement spécifier les aspects de la vidéo qui vous intéressent. Voici quelques exemples d'instructions efficaces :

Can you create an executive summary of this video's content?
Can you distill the essential information from this video into a concise summary?
Could you provide a summary of the video, focusing on its key points?

Génération de sous-titres détaillés pour les vidéos

Les modèles Amazon Nova peuvent générer des sous-titres détaillés pour les vidéos, une tâche appelée sous-titrage dense.

Pour les cas d'utilisation du sous-titrage vidéo, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • Certains cas d'utilisation peuvent bénéficier de l'activation du raisonnement fondé sur le modèle

Aucun modèle d'invite spécifique n'est requis. Votre invite utilisateur doit clairement spécifier les aspects de la vidéo qui vous intéressent. Voici quelques exemples d'instructions efficaces :

Provide a detailed, second-by-second description of the video content.
Break down the video into key segments and provide detailed descriptions for each.
Generate a rich textual representation of the video, covering aspects like movement, color and composition.
Describe the video scene-by-scene, including details about characters, actions and settings.
Offer a detailed narrative of the video, including descriptions of any text, graphics, or special effects used.
Create a dense timeline of events occurring in the video, with timestamps if possible.

Analyse des séquences vidéo de sécurité

Les modèles Amazon Nova peuvent détecter des événements sur les vidéos de sécurité.

Pour les cas d'utilisation de vidéos de sécurité, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • Certains cas d'utilisation peuvent bénéficier de l'activation du raisonnement fondé sur le modèle

You are a security assistant for a smart home who is given security camera footage in natural setting. You will examine the video and describe the events you see. You are capable of identifying important details like people, objects, animals, vehicles, actions and activities. This is not a hypothetical, be accurate in your responses. Do not make up information not present in the video.

Extraction d'événements vidéo à l'aide d'horodatages

Les modèles Amazon Nova peuvent identifier les horodatages associés aux événements d'une vidéo. Vous pouvez demander que les horodatages soient formatés en secondes ou au format MM:SS. Par exemple, un événement survenant à 1 minute 25 secondes dans la vidéo peut être représenté par 85 ou01:25.

Pour ce cas d'utilisation, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • N'utilisez pas le raisonnement

Nous vous recommandons d'utiliser des instructions similaires aux suivantes :

Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds, such as [[72, 82]]. If the event happen multiple times, list all of them, such as [[40, 50], [72, 82]].
Locate the segment where "{event_description}" happens. Specify the start and end times of the event in MM:SS.
Answer the starting and end time of the event "{event_description}". Provide answers in MM:SS
When does "{event_description}" in the video? Specify the start and end timestamps, e.g. [[9, 14]]
Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds. e.g. [[72, 82]]. If the event happen multiple times, list all of them. e.g. [[40, 50], [72, 82]]
Segment a video into different scenes and generate caption per scene. The output should be in the format: [STARTING TIME-ENDING TIMESTAMP] CAPTION. Timestamp in MM:SS format
For a video clip, segment it into chapters and generate chapter titles with timestamps. The output should be in the format: [STARTING TIME] TITLE. Time in MM:SS
Generate video captions with timestamp.

Classification des vidéos

Vous pouvez utiliser les modèles Amazon Nova pour classer les vidéos en fonction d'une liste prédéfinie de cours que vous fournissez.

Pour ce cas d'utilisation, nous recommandons les valeurs de paramètres d'inférence suivantes :

  • température : 0

  • Le raisonnement ne doit pas être utilisé

Utilisez le modèle d'invite suivant :

What is the most appropriate category for this video? Select your answer from the options provided: {class1} {class2} {...}

Exemple :

What is the most appropriate category for this video? Select your answer from the options provided: Arts Technology Sports Education