

# 视觉理解提示技巧
<a name="prompting-vision-prompting"></a>

**注意**  
本文档适用于 Amazon Nova 版本 1。有关如何在 Amazon Nova 2 中提示多模态理解的信息，请访问[提示多模态输入](https://docs.aws.amazon.com/nova/latest/nova2-userguide/prompting-multimodal.html)。

以下视觉提示技巧将帮助您为 Amazon Nova 创建效果更好的提示。

**Topics**
+ [放置位置很重要](#prompting-video-placement)
+ [带有视觉组件的多个媒体文件](#prompting-video-vision-components)
+ [使用用户指令来改进视觉理解任务的指令遵循](#prompting-video-instructions)
+ [少量样本](#prompting-video-exemplars)
+ [边界框检测](#prompting-video-bounding)
+ [更丰富的输出或风格](#prompting-video-richer-output)
+ [将文档内容提取到 Markdown 中](#prompting-video-markdown)
+ [视觉理解的推理参数设置](#prompting-video-parameters)
+ [视频分类](#prompting-video-classification)

## 放置位置很重要
<a name="prompting-video-placement"></a>

建议在添加任何文档之前先放置媒体文件（例如图像或视频），然后再放置用于指导模型的指令文本或提示。虽然图像放置在文本之后或图像穿插文本，也可以充分发挥作用，但如果应用场景允许，*\$1media\$1file\$1-then-\$1text\$1* 结构仍是首选方法。

在进行视觉理解时，可以使用以下模板将媒体文件放在文本之前。

```
{
      "role": "user",
      "content": [
        {
          "image": "..."
        },
        {
          "video": "..."
        },
        {
          "document": "..."
        },
        {
          "text": "..."
        }
      ]
}
```

### 示例：媒体放在文字之前
<a name="vision-collapsible"></a>


|  | **未采用建议结构** | 优化后的提示 | 
| --- |--- |--- |
| 用户 | 解释图像中发生了什么 [Image1.png] |  [Image1.png] 解释图像中发生了什么？  | 

## 带有视觉组件的多个媒体文件
<a name="prompting-video-vision-components"></a>

如果轮流提供多个媒体文件，请为每张图像添加带编号的标签。例如，若使用两张图像，请加上 `Image 1:` 和 `Image 2:` 标签。若使用三个视频，请加上 `Video 1:`、` Video 2:` 和 `Video 3:` 标签。图像之间或图像与提示之间不需要换行符。

可按照以下模板放置多个媒体文件：

```
messages = [
        {
            "role": "user",
            "content": [
                {"text":"Image 1:"},
                {"image": {"format": "jpeg", "source": {"bytes": img_1_base64}}},
                {"text":"Image 2:"},
                {"image": {"format": "jpeg", "source": {"bytes": img_2_base64}}},
                {"text":"Image 3:"},
                {"image": {"format": "jpeg", "source": {"bytes": img_3_base64}}},
                {"text":"Image 4:"},
                {"image": {"format": "jpeg", "source": {"bytes": img_4_base64}}},
                {"text":"Image 5:"},
                {"image": {"format": "jpeg", "source": {"bytes": img_5_base64}}},
                {"text":user_prompt},
            ],
        }
    ]
```


| 未优化的提示 | 优化后的提示 | 
| --- |--- |
|  描述第二张图像中可以看到的内容。 [Image1.png] [Image2.png]  |  [Image1.png] [Image2.png] 描述第二张图像中可以看到的内容。  | 
|  随附的文档中是否描述了第二张图像？ [Image1.png] [Image2.png] [Document1.pdf]  |  [Image1.png] [Image2.png] [Document1.pdf] 随附的文档中是否描述了第二张图像？  | 

媒体文件类型的上下文词元很长，因此在某些情况下，模型可能不会遵守提示开头所示的系统提示。在这种情况下，建议将所有系统指令移至用户回合，并按照 *\$1media\$1file\$1-then-\$1text\$1* 的一般指导进行操作。这不会影响使用 RAG、座席或“工具使用”的系统提示。

## 使用用户指令来改进视觉理解任务的指令遵循
<a name="prompting-video-instructions"></a>

对于视频理解，上下文中的词元数量使 [放置位置很重要](#prompting-video-placement) 中的推荐显得非常重要。将系统提示用于更通用的内容，例如语气和风格。建议将与视频相关的指令保留为用户提示的一部分，以便提高性能。

以下模板可用于改进指令：

```
{
    "role": "user",
    "content": [
       {
           "video": {
                "format": "mp4",
                "source": { ... }
           }
       },
       {
           "text": "You are an expert in recipe videos. Describe this video in less than 200 words following these guidelines: ..."
       }
    ]
}
```

就像文本一样，我们建议对图像和视频应用思维链来获得更好的性能。我们还建议您将思维链指令放在系统提示中，同时将其他指令放在用户提示中。

**重要**  
Amazon Nova Premier 模型是 Amazon Nova 系列中智能程度更高的模型，能够处理更复杂的任务。如果任务需要高级思维链思维，建议使用[让 Amazon Nova 有时间思考（思维链）](https://docs.aws.amazon.com/nova/latest/userguide/prompting-chain-of-thought.html)中提供的提示模板。此方法可以帮助增强模型的分析和问题解决能力。

## 少量样本
<a name="prompting-video-exemplars"></a>

与文本模型一样，建议提供图像示例以提高图像理解性能（由于每个推理单个视频的限制，无法提供视频样本）。建议将示例放在媒体文件之后的用户提示中，而不是在系统提示中提供。


|  | 0-Shot | 2-Shot | 
| --- |--- |--- |
| User |  | [Image 1] | 
| Assistant |  | The image 1 description | 
| User |  | [Image 2] | 
| Assistant |  | The image 2 description | 
| User | [图像 3] 解释图像中发生了什么 | [图像 3] 解释图像中发生了什么 | 

## 边界框检测
<a name="prompting-video-bounding"></a>

如果需要识别对象的边界框坐标，则可使用 Amazon Nova 模型在 [0, 1000) 范围内输出边界框。获得这些坐标后，即可根据图像尺寸调整坐标的大小，作为一种后处理步骤。有关如何完成此后处理步骤的更多详细信息，请参阅 [Amazon Nova Image Grounding notebook](https://github.com/aws-samples/amazon-nova-samples/blob/main/multimodal-understanding/repeatable-patterns/13-image-grounding/image_grounding.ipynb)。

以下是边界框检测的示例提示：

```
Detect bounding box of objects in the image, only detect {item_name} category objects with high confidence, output in a list of bounding box format.
Output example:
[
    {"{item_name}": [x1, y1, x2, y2]},
    ...
]

Result:
```

## 更丰富的输出或风格
<a name="prompting-video-richer-output"></a>

视频理解输出可能很短。如果想要更长的输出，建议为模型创建角色。您可以引导这个角色以您想要的方式做出回应，类似于使用系统角色。

可以通过[单样本学习和少样本学习技术](prompting-examples.md)对回复进行进一步修改。举例说明一个好的回复应是怎样，模型可以在生成答案的同时模仿该回复的各个方面。

## 将文档内容提取到 Markdown 中
<a name="prompting-video-markdown"></a>

Amazon Nova Premier 展示了增强的理解文档中嵌入的图表的能力，以及阅读和理解科学论文等复杂领域内容的能力。此外，Amazon Nova Premier 在提取文档内容时表现出了更高的性能，并且可以将这些信息输出为 Markdown Table 和 Latex 格式。

以下示例提供了图像中的表格，并提示 Amazon Nova Premier 将图像内容转换为 Markdown 表格。Markdown（或 Latex 表示形式）创建完毕后，您可以使用工具将内容转换为 JSON 或其他结构化输出。

```
Make a table representation in Markdown of the image provided.
```

![\[以图像而非文档形式提供的数据表\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/images/tableInImage.png)


下面是模型提供的输出：

```
| No. | DATE       | DESCRIPTION | AMOUNT |
|-----|------------|-------------|--------|
| 1   | 2021-04-19 | Guest room  | $180   |
| 2   | 2021-04-19 | Breakfast   | $30    |
| 3   | 2021-04-20 | Guest room  | $180   |
| 4   | 2021-04-20 | Laundry     | $15    |
| 5   | 2021-04-20 | Dinner      | $70    |
| 6   | 2021-04-20 | Breakfast   | $30    |
| 7   | 2021-04-21 | Guest room  | $180   |
| 8   | 2021-04-21 | Breakfast   | $30    |
| 9   | 2021-04-21 | Dinner      | $70    |
| 10  | 2021-04-21 | Laundry     | $15    |
|     |            | Subtotal    | $800   |
|     |            | Discounts   | $24    |
|     |            | Taxes       | $68.9  |
|     |            | Total       | $844.9 |
```

此输出使用自定义表记法，其中 `||` 用作列分隔符，`&&` 用作行分隔符。

## 视觉理解的推理参数设置
<a name="prompting-video-parameters"></a>

对于视觉理解用例，建议首先将推理参数 `temperature` 设置为 **0** 并将 `topK` 设置为 **1**。观察模型的输出后，您可以根据用例调整推理参数。这些值通常取决于所需的任务和偏差，增加温度设置会导致答案产生更多变化。

## 视频分类
<a name="prompting-video-classification"></a>

为了有效地将视频内容分类到适当的类别中，请提供模型可用于分类的类别。请考虑以下示例提示：

```
[Video]

Which category would best fit this video? Choose an option from the list below:
\Education\Film & Animation\Sports\Comedy\News & Politics\Travel & Events\Entertainment\Trailers\How-to & Style\Pets & Animals\Gaming\Nonprofits & Activism\People & Blogs\Music\Science & Technology\Autos & Vehicles
```

**为视频添加标签**  
Amazon Nova Premier 展示了用于创建视频标签的改进功能。为了获得最佳效果，请使用以下要求用逗号分隔标签的指令“使用逗号分隔每个标签”。以下是一个示例提示：

```
[video]

"Can you list the relevant tags for this video? Use commas to separate each tag."
```

**视频的密集字幕**  
Amazon Nova Premier 展示了提供密集字幕的增强功能，即为视频中的多个片段生成的详细文本描述。以下是一个示例提示：

```
[Video]

Generate a comprehensive caption that covers all major events and visual elements in the video.
```