

# 비전 이해 프롬프팅 모범 사례
<a name="prompting-video-understanding"></a>

**참고**  
이 설명서는 Amazon Nova 버전 1용입니다. Amazon Nova 2에서 멀티모달 프롬프트를 이해하는 방법에 대한 자세한 내용은 [멀티모달 입력 프롬프트](https://docs.aws.amazon.com/nova/latest/nova2-userguide/prompting-multimodal.html)를 참조하세요.

Amazon Nova 모델 패밀리에는 모델이 이미지와 비디오를 이해하고 분석할 수 있는 새로운 비전 기능이 탑재되어 있어 멀티모달 상호 작용을 위한 흥미로운 기회를 열어줍니다. 다음 섹션에서는 Amazon Nova에서 이미지 및 비디오 작업에 대한 지침을 간략하게 설명합니다. 여기에는 모범 사례, 코드 예제 및 고려해야 할 관련 제한 사항이 포함됩니다.

제공하는 이미지 또는 비디오의 품질이 높을수록 모델이 미디어 파일의 정보를 정확하게 이해할 가능성이 높아집니다. 이미지나 비디오가 선명하고 과도한 흐릿함이나 픽셀화가 없는지 확인하여 보다 정확한 결과를 보장합니다. 이미지 또는 비디오 프레임에 중요한 텍스트 정보가 포함된 경우 텍스트를 읽을 수 있고 너무 작지 않은지 확인합니다. 텍스트를 확대하기 위해 주요 시각적 컨텍스트를 잘라내지 마세요.

Amazon Nova 모델을 사용하면 base64 형식 또는 Amazon S3 URI를 통해 제공될 수 있는 페이로드에 단일 비디오를 포함할 수 있습니다. base64 메서드를 사용하는 경우 전체 페이로드 크기는 25MB보다 작아야 합니다. 그러나 이미지, 비디오, 문서의 이해를 위해 Amazon S3 URI를 지정할 수 있습니다. Amazon S3를 사용하면 전체 페이로드 크기 제한에 구애받지 않고 더 큰 파일과 여러 미디어 파일에 모델을 활용할 수 있습니다. Amazon Nova는 입력 비디오를 분석하고 질문에 답변하고, 비디오를 분류하고, 제공된 지침에 따라 비디오의 정보를 요약할 수 있습니다.

Amazon Nova 모델을 사용하면 페이로드에 여러 이미지를 포함할 수 있습니다. 총 페이로드 크기는 25MB 이하여야 합니다. Amazon Nova 모델은 전달된 이미지를 분석하고 질문에 답하고, 이미지를 분류하고, 제공된 지침에 따라 이미지를 요약할 수 있습니다.


**이미지 정보**  

| 미디어 파일 유형 | 지원되는 파일 형식 | 입력 방법 | 
| --- |--- |--- |
| 이미지 | PNG, JPG, JPEG, GIF, WebP | Base64 및 Amazon S3 URI | 


**비디오 정보**  

| 형식 | MIME 유형 | 비디오 인코딩 | 
| --- |--- |--- |
| MKV | 비디오/x-matroska | H.264 | 
| MOV | 비디오/quicktime |  H.264 H.265 ProRES  | 
| MP4 | 비디오/mp4 |  DIVX/XVID H.264 H.265 J2K(JPEG2000) MPEG-2 MPEG-4 파트 2 VP9  | 
| WEBM | 비디오/webm |  VP8 VP9  | 
| FLV | 비디오/x-flv | FLV1 | 
| MPEG | 비디오/mpeg | MPEG-1 | 
| MPG | 비디오/mpg | MPEG-1 | 
| WMV | 비디오/wmv | MSMPEG4v3(MP43) | 
| 3GPP | 비디오/3gpp | H.264 | 

비디오가 base64로 전달되는지(크기 제약 조건에 맞는 한) Amazon S3 로케이션을 통해 전달되는지에 관계없이 비디오 입력 토큰 수에는 차이가 없습니다.

3gp 파일 형식의 경우 API 요청에 전달된 ‘형식’ 필드는 ‘three\$1gp’ 형식이어야 합니다.

Amazon S3를 사용할 때 ‘Content-Type’ 메타데이터가 비디오에 대한 올바른 MIME 유형으로 설정되어 있는지 확인합니다.

**Topics**
+ [긴 비디오 및 움직임이 많은 비디오](#prompting-video-motion)
+ [Latency](#prompting-video-latency)
+ [비전 이해 프롬프팅 기술](prompting-vision-prompting.md)

## 긴 비디오 및 움직임이 많은 비디오
<a name="prompting-video-motion"></a>

모델은 1FPS(초당 프레임 수)를 기준으로 비디오 프레임을 샘플링하여 비디오를 이해합니다. 이는 비디오에서 세부 정보를 캡처하는 것과 사용되는 입력 토큰을 사용하는 것 간의 균형으로 비용, 지연 시간 및 최대 비디오 길이에 영향을 미칩니다. 일반적인 사용 사례에서는 초당 하나의 이벤트를 샘플링하는 것으로 충분하지만, 스포츠 비디오와 같이 움직임이 많은 비디오의 일부 사용 사례에서는 성능이 제대로 발휘되지 않을 수 있습니다.

긴 비디오를 처리하기 위해 16분 이상의 비디오에서는 샘플링 속도가 Amazon Nova Lite 및 Amazon Nova Pro의 비디오 길이 전체에 걸쳐 고정된 960프레임으로 감소합니다. 즉, 비디오가 16분을 넘을수록 FPS가 낮아지고 캡처되는 세부 정보가 줄어듭니다. 이렇게 하면 긴 비디오를 요약하는 등의 사용 사례는 가능하지만, 디테일이 중요한 움직임이 많은 비디오에서는 문제가 악화됩니다. Amazon Nova Premier의 경우 1FPS 샘플링 속도가 최대 3,200프레임 한도까지 적용됩니다.

대부분의 경우 전처리 단계와 여러 번의 직접 호출을 사용하여 긴 비디오에서 1 FPS 샘플링을 얻을 수 있습니다. 비디오를 더 작은 세그먼트로 분할한 다음 모델의 다중 모델 기능을 사용하여 각 세그먼트를 분석할 수 있습니다. 응답이 집계되고 텍스트 투 텍스트를 사용하는 마지막 단계에서 최종 답변이 생성됩니다. 이러한 방식으로 비디오를 분할하면 컨텍스트가 손실될 수 있다는 점에 유의하세요. 이는 RAG 사용 사례에 대한 청킹의 절충안과 유사하며 슬라이딩 윈도우와 같은 많은 동일한 완화 기술이 잘 전달됩니다.

비디오를 분할하면 분석이 병렬로 수행되므로 지연 시간이 줄어들 수 있지만 훨씬 더 많은 입력 토큰이 생성되어 비용에 영향을 줄 수 있습니다.

## Latency
<a name="prompting-video-latency"></a>

비디오는 크기가 클 수 있습니다. Amazon S3에 업로드하여 최대 1GB의 파일을 처리할 수 있는 수단을 제공하여 간접 호출 페이로드를 매우 간소화하지만 모델은 여전히 잠재적으로 많은 수의 토큰을 처리해야 합니다. Invoke 또는 Converse와 같은 동기식 Amazon Bedrock 직접 호출을 사용하는 경우 SDK가 적절한 타임아웃으로 구성되어 있는지 확인합니다.

그럼에도 불구하고 지연 시간이 중요한 경우 Amazon S3 URI가 선호되는 방법입니다. 이전 섹션에서 설명한 대로 비디오를 분할하는 것도 또 다른 전략입니다. 고해상도, 고프레임 속도의 비디오를 사전 처리하면 서비스 크기에 따른 대역폭과 처리량이 줄어들어 지연 시간이 감소할 수 있습니다.

# 비전 이해 프롬프팅 기술
<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)
+ [마크다운으로 문서 콘텐츠 추출](#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>


|  | **구조를 따르지 않음** | 최적화된 프롬프트 | 
| --- |--- |--- |
| User | [Image1.png] 이미지에서 무슨 일이 일어나고 있는지 설명합니다. |  [Image1.png] 이미지에서 무슨 일이 일어나고 있는지 설명합니다.  | 

## 비전 구성 요소가 있는 여러 미디어 파일
<a name="prompting-video-vision-components"></a>

여러 차례에 걸쳐 여러 미디어 파일을 제공하는 경우 각 이미지에 번호가 매겨진 레이블을 붙여 소개합니다. 예를 들어, 2개의 이미지를 사용하는 경우 `Image 1:`과 `Image 2:`라고 레이블을 지정합니다. 3개의 비디오를 사용하는 경우 `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>

텍스트 모델과 마찬가지로 이미지 이해 성능을 개선하기 위한 이미지 예제를 제공하는 것이 좋습니다(추론당 비디오 1개 제한으로 인해 비디오 예제를 제공할 수 없음). 시스템 프롬프트에 예제를 제공하는 대신 미디어 파일 뒤에 사용자 프롬프트에 예제를 배치하는 것이 좋습니다.


|  | 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)을 사용하여 응답을 추가로 수정할 수 있습니다. 좋은 응답이 무엇이어야 하는지에 대한 예제를 제공하고 모델은 답변을 생성하는 동안 응답의 측면을 모방할 수 있습니다.

## 마크다운으로 문서 콘텐츠 추출
<a name="prompting-video-markdown"></a>

Amazon Nova Premier는 문서에 포함된 차트를 이해하고 과학 논문과 같은 복잡한 도메인에서 콘텐츠를 읽고 이해할 수 있는 향상된 기능을 보여줍니다. 또한 Amazon Nova Premier는 문서 콘텐츠를 추출할 때 향상된 성능을 보여주며 이 정보를 마크다운 테이블 및 Latex 형식으로 출력할 수 있습니다.

다음 예제에서는 이미지에 있는 테이블과 함께 Amazon Nova Premier에 이미지의 내용을 마크다운 테이블로 변환하도록 지시하는 프롬프트를 제공합니다. 마크다운(또는 Latex 표현)이 생성된 후 도구를 사용하여 콘텐츠를 JSON 또는 기타 구조화된 출력으로 변환할 수 있습니다.

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

![\[문서 대신 이미지로 제공되는 데이터 테이블\]](http://docs.aws.amazon.com/ko_kr/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.
```