

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 지표를 사용하여 검색 및 생성 RAG 평가 작업 만들기
<a name="knowledge-base-evaluation-create-randg-custom"></a>

사용자 지정 지표를 사용하는 평가 작업을 생성하려면 다음을 제공해야 합니다.
+ 평가자 모델이 사용할 자세한 지침이 포함된 프롬프트
+ 사용자 지정 지표에 사용할 평가자 모델

또한 평가자 모델이 생성기 모델의 응답을 평가하는 데 사용할 수 있는 등급 척도(출력 스키마)를 지정할 수 있습니다.

AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 Amazon Bedrock API를 사용하여 사용자 지정 지표로 평가 작업을 생성할 수 있습니다. 다음 지침에 따라 평가 작업을 생성합니다. 지표에 대한 프롬프트를 생성하고 생성 중에 지정하는 등급 척도를 정의하는 방법에 대한 지침과 지침은 [사용자 지정 지표에 대한 프롬프트 생성](kb-evaluation-custom-metrics-prompt-formats.md) 섹션을 참조하세요.

하나 이상의 사용자 지정 지표를 사용하여 평가 작업을 생성하면 Amazon Bedrock은 지표 정의를 지정한 출력 S3 버킷에 JSON 파일로 저장합니다. `s3://S3-output-bucket-name/job-name/job-uuid/custom_metrics`로 이동하여 이러한 파일에 액세스할 수 있습니다. 사용자 지정 지표의 JSON 정의 형식을 보려면 [사용자 지정 지표를 생성하기 위한 JSON 파일 생성](model-evaluation-custom-metrics-prompt-formats.md#model-evaluation-custom-metrics-prompt-formats-json) 섹션을 참조하세요.

다음 지침에 따라 작업을 생성하려면 프롬프트 데이터세트도 필요합니다. 아직 생성하지 않은 경우 [Amazon Bedrock에서 RAG 평가를 위한 프롬프트 데이터세트 생성](knowledge-base-evaluation-prompt.md) 섹션을 참조하세요.

지원되는 평가자 모델 목록은 [지원되는 모델](evaluation-kb.md#evaluation-kb-supported) 섹션을 참조하세요.

------
#### [ Console ]

1. [Amazon Bedrock 콘솔](https://console.aws.amazon.com/bedrock/home)을 엽니다.

1. 왼쪽 창의 **추론 및 평가**에서 **평가**를 선택합니다.

1. **RAG 평가** 창에서 **생성**을 선택합니다.

1. 다음을 수행하여 RAG 평가 세부 정보를 입력합니다.

   1. **평가 세부 정보** 창의 **평가 이름** 아래에 평가 작업의 이름을 입력합니다. 선택하는 이름은 AWS 리전 내에서 고유해야 합니다.

   1. 선택적으로 **설명 - *선택*** 사항에서 평가 작업에 대한 설명을 입력합니다.

   1. **평가자 모델에서** **모델 선택**을 선택하고 평가를 수행할 평가자 모델을 선택합니다.

1. 평가 작업에 대한 추론 소스를 입력합니다. Amazon Bedrock RAG 평가를 사용하면 [프롬프트 데이터세트](knowledge-base-evaluation-prompt.md)에 자체 추론 응답 데이터를 제공하여 Amazon Bedrock Knowledge Bases 또는 기타 RAG 소스의 성능을 평가할 수 있습니다. Amazon Bedrock 지식 기반을 선택하려면 다음을 수행합니다.

   1. **추론 소스** 창의 **소스 선택**에서 **Bedrock 지식 기반**을 선택합니다.

   1. **지식 기반 선택**에서 드롭다운 목록을 사용하여 지식 기반을 선택합니다.

1. 자체 추론 응답 데이터를 가져오려면 다음을 수행합니다.

   1. **추론 소스** 창의 **소스 선택**에서 **자체 추론 응답 가져오기**를 선택합니다.

   1. **소스 이름**에 응답 데이터를 생성하는 데 사용한 RAG 소스의 이름을 입력합니다. 입력하는 이름은 [프롬프트 데이터세트](knowledge-base-evaluation-prompt.md)의 `knowledgeBaseIdentifier` 파라미터와 일치해야 합니다.

1. **추론 소스** 창의 **평가 유형**에서 **검색 및 응답 생성**을 선택합니다.

1. **지표** 창에서 평가자 모델을 선택하여 사용할 기본 제공 지표를 선택합니다.

1. 사용자 지정 지표를 하나 더 추가하려면 먼저 지표를 평가하는 데 사용할 평가자 모델을 선택합니다. **사용자 지정 지표** 창에서 다음을 수행합니다.

   1. **모델 선택**을 선택합니다.

   1. 팝업에서 사용할 모델을 선택합니다.

   1. **적용**을 선택합니다.

1. **지표 이름**에서 지표의 이름을 입력합니다.

1. 지표를 지정하는 JSON 파일을 제공하거나 템플릿에서 기존 내장 지표 프롬프트를 편집하거나, 평가자 모델이 사용할 프롬프트를 콘솔에 직접 입력하여 지표를 구성할 수 있습니다.

   JSON 파일에서 지표를 생성하려면 다음을 수행합니다.

   1. **지표 유형 선택**에서 **JSON 파일 가져오기**를 선택합니다.

   1. **JSON 파일 가져오기**에서 **파일 선택**을 선택합니다.

   1. 파일 선택기를 사용하여 사용자 지정 지표 정의가 있는 JSON 파일을 선택하고 **열기**를 선택합니다. JSON 파일을 사용하여 사용자 지정 지표를 지정하는 스키마에 대해 알아보고 일부 예제 파일을 보려면 [사용자 지정 지표를 생성하기 위한 JSON 파일 생성](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-json) 섹션을 참조하세요.

   1. (선택 사항) 다른 지표를 생성하려면 **사용자 지정 지표 추가**를 선택합니다. 평가 작업에 대해 최대 10개의 사용자 지정 지표를 생성할 수 있습니다.

      사용자 지정 지표 생성을 완료했으면 14단계로 이동하여 평가 작업에 대한 데이터세트를 구성합니다.

1. 기본 제공 템플릿에서 사용자 지정 지표를 생성하려면 다음을 수행합니다.

   1. **지표 유형 선택**에서 **템플릿 사용**을 선택합니다.

   1. **템플릿 선택**에서 드롭다운 목록을 사용하여 사용자 지정 지표의 시작점으로 사용할 기존 내장 지표 프롬프트를 선택합니다.

   1. **지침**에서 자체 사용 사례에 맞게 선택한 프롬프트를 편집합니다. 모범 사례 및 사용자 지정 지표 프롬프트를 생성할 때 필요한 요소 목록은 [사용자 지정 지표에 대한 프롬프트 생성](kb-evaluation-custom-metrics-prompt-formats.md) 섹션을 참조하세요.

   1. 평가 작업이 순위 점수로 구조화된 출력을 출력하도록 하려면 **출력 스키마를 활성화(권장)된 상태**로 둡니다. 지표 구성에 출력 스키마를 포함할 필요는 없지만 이를 정의하는 것이 좋습니다. 스키마를 사용하지 않는 경우 보는 결과에는 점수 또는 데이터 시각화가 없는 설명만 포함됩니다.

   1. **규모 유형**에서 사용 사례에 따라 **숫자** 또는 **문자열**을 선택하고 텍스트 상자에 규모 및 설명 정의를 입력합니다. 출력 규모 정의에 대한 지침 및 모범 사례는 [출력 스키마 지정(평가 규모)](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-schema) 섹션을 참조하세요.

   1. (선택 사항) 다른 지표를 생성하려면 **사용자 지정 지표 추가**를 선택합니다. 평가 작업에 대해 최대 10개의 사용자 지정 지표를 생성할 수 있습니다.

      사용자 지정 지표 생성을 완료했으면 14단계로 이동하여 평가 작업에 대한 데이터세트를 구성합니다.

1. 콘솔에서 사용자 지정 지표를 처음부터 생성하려면 다음을 수행합니다.

   1. **지표 유형 선택**에서 **사용자 지정**을 선택합니다.

   1. **지침**에서 텍스트 상자에 사용자 지정 지표에 대한 프롬프트를 직접 입력합니다. 모범 사례 및 사용자 지정 지표 프롬프트를 생성할 때 필요한 요소 목록은 [프롬프트 구성 및 모범 사례](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-create) 섹션을 참조하세요.

   1. 평가 작업이 순위 점수로 구조화된 출력을 출력하도록 하려면 **출력 스키마를 활성화(권장)된 상태**로 둡니다. 지표 구성에 출력 스키마를 포함할 필요는 없지만 이를 정의하는 것이 좋습니다. 스키마를 사용하지 않는 경우 보는 결과에는 점수 또는 데이터 시각화가 없는 설명만 포함됩니다.

   1. **규모 유형**에서 사용 사례에 따라 **숫자** 또는 **문자열**을 선택하고 텍스트 상자에 규모 및 설명 정의를 입력합니다. 출력 규모 정의에 대한 지침 및 모범 사례는 [출력 스키마 지정(평가 규모)](kb-evaluation-custom-metrics-prompt-formats.md#kb-evaluation-custom-metrics-prompt-formats-schema) 섹션을 참조하세요.

   1. (선택 사항) 다른 지표를 생성하려면 **사용자 지정 지표 추가**를 선택합니다. 평가 작업에 대해 최대 10개의 사용자 지정 지표를 생성할 수 있습니다.

      사용자 지정 지표 생성을 완료했으면 다음 단계로 진행하여 평가 작업에 대한 데이터세트를 구성합니다.

1. 다음을 수행하여 데이터세트 및 결과의 입력 및 출력 위치를 정의합니다.

   1. **데이터세트** 창의 **프롬프트 데이터세트 선택**에서 프롬프트 데이터세트의 Amazon S3 URI를 입력하거나 **S3 찾아보기**를 선택하고 파일을 선택합니다. 검색 전용 평가 작업에 필요한 프롬프트 데이터세트 형식의 정의를 보려면 [검색 전용 RAG 평가 작업을 위한 프롬프트 데이터세트 생성](knowledge-base-evaluation-prompt-retrieve.md) 섹션을 참조하세요.

   1. **평가 결과**에서 Amazon Bedrock의 Amazon S3 위치를 입력하여 결과를 저장하거나 **S3 찾아보기**를 선택하여 위치를 선택합니다.

1. **Amazon Bedrock IAM 역할 - 권한**에서 **새 서비스 역할 생성 및 사용**을 선택하여 Amazon Bedrock이 평가 작업에 대한 새 IAM 역할을 생성하도록 하거나 **기존 서비스 역할 사용**을 선택하여 기존 IAM 역할을 선택합니다. 평가 작업을 생성하고 실행하는 데 필요한 권한 목록은 [사전 조건](knowledge-base-evaluation-create.md#knowledge-base-evaluation-create-prereqs) 섹션을 참조하세요.

1. (선택 사항) 자체 KMS 키를 사용하여 평가 데이터를 암호화하려면 **KMSkey - *선택*** 사항에서 **암호화 설정 사용자 지정(고급)**을 선택하고 AWS KMS 키를 선택합니다. 기본적으로 Amazon Bedrock은 AWS 소유 KMS 키를 사용하여 평가 작업 데이터를 암호화합니다.

1. **생성**을 선택하여 평가 작업 생성을 완료합니다.

------
#### [ AWS CLI ]

**Amazon Bedrock 지식 기반에 대한 검색 및 생성 평가 작업 생성**
+ 예제 JSON 파일을 사용하여 다음 AWS CLI 명령을 실행합니다.

  ```
  aws bedrock create-evaluation-job --cli-input-json file://my_eval_job.json
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-Custom-Metric",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieval-only/retrieve-eval.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance",
                          "CustomMetric-Correctness-FloatRatingScale"
                      ]
                  }
              ],
              "customMetricConfig": {
                  "customMetrics": [
                      {
                          "customMetricDefinition": {
                              "name": "CustomMetric-Correctness-FloatRatingScale",
                              "instructions": "<Your complete custom metric prompt including at least one {{input variable}}>",
                              "ratingScale": [
                                  {
                                      "definition": "Not at all",
                                      "value": {
                                          "floatValue": 0
                                      }
                                  },
                                  {
                                      "definition": "Somewhat",
                                      "value": {
                                          "floatValue": 1
                                      }
                                  },
                                  {
                                      "definition": "Mostly",
                                      "value": {
                                          "floatValue": 2
                                      }
                                  }
                              ]
                          }
                      }
                  ],
                  "evaluatorModelConfig": {
                      "bedrockEvaluatorModels": [
                          {
                              "modelIdentifier": "anthropic.claude-3-haiku-20240307-v1:0"
                          }
                      ]
                  }
              },
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "mistral.mistral-large-2402-v1:0"
                      }
                  ]
              }
          }
      },
      "inferenceConfig": {
          "ragConfigs": [
              {
                  "knowledgeBaseConfig": {
                      "retrieveAndGenerateConfig": {
                          "type": "KNOWLEDGE_BASE",
                          "knowledgeBaseConfiguration": {
                              "knowledgeBaseId": "<Your Knowledge Base ID>",
                              "modelArn": "mistral.mistral-large-2402-v1:0",
                              "generationConfiguration": {
                                  "promptTemplate": {
                                      "textPromptTemplate": "$search_results$ hello world template"
                                  }
                              },
                              "orchestrationConfiguration": {
                                  "queryTransformationConfiguration": {
                                      "type": "QUERY_DECOMPOSITION"
                                  }
                               }
                          }
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```
**참고**  
예제 JSON 파일에는 두 개의 `evaluatorModelConfig` 객체가 포함되어 있습니다. `customMetricConfig` 객체 내부의 객체는 사용자 지정 지표와 함께 사용할 평가자 모델을 지정합니다. 다른 인스턴스는 기본 제공 지표에 사용할 모델을 지정합니다. 이 두 객체를 올바르게 지정하도록 주의하세요.

**자체 추론 응답 데이터를 사용하여 검색 및 생성 평가 작업 생성**
+ 예제 JSON 파일을 사용하여 다음 AWS CLI 명령을 실행합니다.

  ```
  aws bedrock create-evaluation-job --cli-input-json file://my_eval_job.json
  ```

  ```
  {
      "jobName": "my_rag_eval",
      "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-Custom-Metric",
      "applicationType": "RagEvaluation",
      "evaluationConfig": {
          "automated": {
              "datasetMetricConfigs": [
                  {
                      "taskType": "General",
                      "dataset": {
                          "name": "text_dataset",
                          "datasetLocation": {
                              "s3Uri": "s3://amzn-s3-demo-bucket/input/retrieval-only/retrieve-eval.jsonl"
                          }
                      },
                      "metricNames": [
                          "Builtin.ContextCoverage",
                          "Builtin.ContextRelevance",
                          "CustomMetric-Correctness-FloatRatingScale"
                      ]
                  }
              ],
              "customMetricConfig": {
                  "customMetrics": [
                      {
                          "customMetricDefinition": {
                              "name": "CustomMetric-Correctness-FloatRatingScale",
                              "instructions": "<Your complete custom metric prompt including at least one {{input variable}}>",
                              "ratingScale": [
                                  {
                                      "definition": "Not at all",
                                      "value": {
                                          "floatValue": 0
                                      }
                                  },
                                  {
                                      "definition": "Somewhat",
                                      "value": {
                                          "floatValue": 1
                                      }
                                  },
                                  {
                                      "definition": "Mostly",
                                      "value": {
                                          "floatValue": 2
                                      }
                                  }
                              ]
                          }
                      }
                  ],
                  "evaluatorModelConfig": {
                      "bedrockEvaluatorModels": [
                          {
                              "modelIdentifier": "anthropic.claude-3-haiku-20240307-v1:0"
                          }
                      ]
                  }
              },
              "evaluatorModelConfig": {
                  "bedrockEvaluatorModels": [
                      {
                          "modelIdentifier": "mistral.mistral-large-2402-v1:0"
                      }
                  ]
              }
          }
      },
     "inferenceConfig": {
          "ragConfigs": [
              {
                  "precomputedRagSourceConfig": {
                      "retrieveAndGenerateSourceConfig": {
                          "ragSourceIdentifier": "my_rag_source"
                      }
                  }
              }
          ]
      },
      "outputDataConfig": {
          "s3Uri": "s3://amzn-s3-demo-bucket/output/"
      }
  }
  ```
**참고**  
예제 JSON 파일에는 두 개의 `evaluatorModelConfig` 객체가 포함되어 있습니다. `customMetricConfig` 객체 내부의 객체는 사용자 지정 지표와 함께 사용할 평가자 모델을 지정합니다. 다른 인스턴스는 기본 제공 지표에 사용할 모델을 지정합니다. 이 두 객체를 올바르게 지정하도록 주의하세요.

------