가드레일 테스트 - Amazon Bedrock

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

가드레일 테스트

가드레일을 생성한 후에는 작업 초안(DRAFT) 버전을 사용할 수 있습니다. 작업 초안은 사용 사례에 대해 만족스러운 구성에 도달할 때까지 지속적으로 편집하고 반복할 수 있는 가드레일의 버전입니다. 작업 중인 초안 또는 가드레일의 다른 버전을 테스트하여 구성이 사용 사례에 적합한지 확인할 수 있습니다. 작업 초안에서 구성을 편집하고 다양한 프롬프트를 테스트하여 가드레일이 프롬프트 또는 응답을 얼마나 잘 평가하고 가로채는지 확인합니다.

구성에 만족하면 버전을 생성할 때 작업 초안의 구성 스냅샷 역할을 하는 가드레일의 버전을 생성할 수 있습니다. 버전을 사용하여 가드레일을 수정할 때마다 프로덕션 애플리케이션에 대한 가드레일 배포를 간소화할 수 있습니다. 작업 초안 또는 생성된 새 버전에 대한 모든 변경 사항은 애플리케이션에서 새 버전을 특별히 사용할 때까지 생성형 AI 애플리케이션에 반영되지 않습니다.

Console
가드레일을 테스트하여 가 유해한 콘텐츠를 차단하는지 확인하려면
  1. Amazon Bedrock 권한이 있는 역할을 AWS Management Console 사용하여 에 로그인하고 에서 Amazon Bedrock 콘솔을 엽니다https://console.aws.amazon.com/bedrock/. IAM

  2. 왼쪽 탐색 창에서 가드레일을 선택합니다. 그런 다음 Guardrails 섹션에서 가드레일을 선택합니다.

  3. 오른쪽에 테스트 창이 나타납니다. 테스트 창에는 다음과 같은 옵션이 있습니다.

    1. 기본적으로 가드레일의 작업 초안은 테스트 창에서 사용됩니다. 가드레일의 다른 버전을 테스트하려면 테스트 창 상단에서 초안 작업을 선택한 다음 버전을 선택합니다.

    2. 모델을 선택하려면 모델 선택을 선택합니다. 선택한 후 적용을 선택합니다. 모델을 변경하려면 변경을 선택합니다.

    3. 프롬프트 상자에 프롬프트를 입력합니다.

    4. 모델 응답을 유도하려면 실행을 선택합니다.

    5. 모델은 최종 응답 상자에 응답을 반환합니다(가드레일에 의해 수정될 수 있음). 가드레일이 프롬프트 또는 모델 응답을 차단하거나 필터링하면 가드레일 확인 아래에 가드레일이 탐지한 위반 횟수를 알려주는 메시지가 표시됩니다.

    6. 프롬프트 또는 응답에서 인식되고 필터 통과 또는 필터에 의해 차단된 주제 또는 유해 범주를 보려면 추적 보기 를 선택합니다.

    7. 프롬프트모델 응답 탭을 사용하여 가드레일에 의해 필터링되거나 차단된 주제 또는 유해 범주를 볼 수 있습니다.

텍스트 플레이그라운드 에서 가드레일을 테스트할 수도 있습니다. 프롬프트를 테스트하기 전에 구성 창에서 플레이그라운드를 선택하고 Guardrail을 선택합니다.

API

모델 호출에 가드레일을 사용하려면 InvokeModel 또는 InvokeModelWithResponseStream 요청을 보냅니다. 또는 대화형 애플리케이션을 구축하는 경우 Converse API를 사용할 수 있습니다.

요청 형식

스트리밍 유무에 관계없이 모델을 호출하기 위한 요청 엔드포인트는 다음과 같습니다. Replace modelId 사용할 모델의 ID를 사용합니다.

  • InvokeModel – POST /model/modelId/invoke HTTP/1.1

  • InvokeModelWithResponseStream – POST /model/modelId/invoke-with-response-stream HTTP/1.1

두 API 작업의 헤더는 다음 형식입니다.

Accept: accept Content-Type: contentType X-Amzn-Bedrock-Trace: trace X-Amzn-Bedrock-GuardrailIdentifier: guardrailIdentifier X-Amzn-Bedrock-GuardrailVersion: guardrailVersion

파라미터는 아래에 설명되어 있습니다.

  • 응답에서 추론 본문의 MIME 유형Accept으로 를 설정합니다. 기본값은 application/json입니다.

  • 요청의 입력 데이터 MIME 유형Content-Type으로 를 설정합니다. 기본값은 application/json입니다.

  • X-Amzn-Bedrock-Trace 로 설정ENABLED하면 추적이 무엇보다 가드레일로 차단된 콘텐츠와 그 이유를 볼 수 있습니다.

  • 요청 및 모델 응답에 대한 요청에 적용할 X-Amzn-Bedrock-GuardrailIdentifier 가드레일의 가드레일 식별자로 를 설정합니다.

  • 요청 및 모델 응답X-Amzn-Bedrock-GuardrailVersion 에 적용할 가드레일의 버전으로 를 설정합니다.

일반 요청 본문 형식은 다음 예제에 나와 있습니다. tagSuffix 속성은 입력 태그 지정 에만 사용됩니다. 를 사용하여 동기식 또는 비동기식으로 스트리밍할 때 가드레일을 구성할 수도 있습니다streamProcessingMode. 이는 에서만 작동합니다InvokeModelWithResponseStream.

{ <see model details>, "amazon-bedrock-guardrailConfig": { "tagSuffix": "string", "streamProcessingMode": "SYNCHRONOUS" | "ASYNCHRONOUS" } }
주의

다음 상황에서 오류가 발생합니다.

  • 가드레일을 활성화했지만 요청 본문에 amazon-bedrock-guardrailConfig 필드가 없습니다.

  • 가드레일을 비활성화하지만 요청 본문에 amazon-bedrock-guardrailConfig 필드를 지정합니다.

  • 가드레일을 활성화했지만 는 contentType가 아닙니다application/json.

다양한 모델에 대한 요청 본문을 보려면 섹션을 참조하세요파운데이션 모델의 추론 요청 파라미터 및 응답 필드.

참고

에 대해 Cohere Command 모델에서 가드레일을 사용하는 경우 num_generations 필드에 한 세대만 지정할 수 있습니다.

가드레일과 추적을 활성화하면 스트리밍 유무에 관계없이 모델을 호출하기 위한 응답의 일반적인 형식은 다음과 같습니다. 각 모델에 body 대한 나머지 의 형식을 보려면 섹션을 참조하세요파운데이션 모델의 추론 요청 파라미터 및 응답 필드. 는 contentType 는 요청에 지정한 것과 일치합니다.

  • InvokeModel

    HTTP/1.1 200 Content-Type: contentType { <see model details for model-specific fields>, "completion": "<model response>", "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": [ "<see model details for model-specific fields>" ], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }
  • InvokeModelWithResponseStream - 각 응답은 발생하는 예외와 함께 텍스트가 bytes 필드에 chunk 있는 를 반환합니다. 가드레일 트레이스는 마지막 청크에 대해서만 반환됩니다.

    HTTP/1.1 200 X-Amzn-Bedrock-Content-Type: contentType Content-type: application/json { "chunk": { "bytes": "<blob>" }, "internalServerException": {}, "modelStreamErrorException": {}, "throttlingException": {}, "validationException": {}, "amazon-bedrock-guardrailAction": "INTERVENED | NONE", "amazon-bedrock-trace": { "guardrail": { "modelOutput": ["<see model details for model-specific fields>"], "input": { "sample-guardrailId": { "topicPolicy": { "topics": [ { "name": "string", "type": "string", "action": "string" } ] }, "contentPolicy": { "filters": [ { "type": "string", "confidence": "string", "filterStrength": "string", "action": "string" } ] }, "wordPolicy": { "customWords": [ { "match": "string", "action": "string" } ], "managedWordLists": [ { "match": "string", "type": "string", "action": "string" } ] }, "sensitiveInformationPolicy": { "piiEntities": [ { "type": "string", "match": "string", "action": "string" } ], "regexes": [ { "name": "string", "regex": "string", "match": "string", "action": "string" } ] }, "invocationMetrics": { "guardrailProcessingLatency": "integer", "usage": { "topicPolicyUnits": "integer", "contentPolicyUnits": "integer", "wordPolicyUnits": "integer", "sensitiveInformationPolicyUnits": "integer", "sensitiveInformationPolicyFreeUnits": "integer", "contextualGroundingPolicyUnits": "integer" }, "guardrailCoverage": { "textCharacters": { "guarded": "integer", "total": "integer" } } } } }, "outputs": ["same guardrail trace format as input"] } } }

가드레일을 활성화하면 응답은 다음 필드를 반환합니다.

  • amazon-bedrock-guardrailAction – 가드레일 여부를 지정합니다INTERVENED(NONE).

  • amazon-bedrock-trace – 추적을 활성화한 경우에만 나타납니다. 추적 목록이 포함되어 있으며, 각 추적은 가드레일이 차단한 콘텐츠에 대한 정보를 제공합니다. 추적에는 다음 필드가 포함됩니다.

    • modelOutput - 차단된 모델의 출력이 포함된 객체입니다.

    • input - 프롬프트에 대한 가드레일의 평가에 대한 다음 세부 정보를 포함합니다.

      • topicPolicy - 위반된 각 주제 정책에 대한 평가 목록인 topics를 포함합니다. 각 주제에는 다음 필드가 포함됩니다.

        • name - 주제 정책의 이름입니다.

        • type - 주제를 거부할지 여부를 지정합니다.

        • action - 주제가 차단되었음을 지정합니다.

      • contentPolicy - 위반된 각 콘텐츠 필터에 대한 평가 filters목록인 가 포함되어 있습니다. 각 필터에는 다음 필드가 포함됩니다.

        • type – 콘텐츠 필터의 범주입니다.

        • confidence - 출력이 유해 범주에 속하는 것으로 분류될 수 있다는 신뢰도 수준입니다.

        • action - 콘텐츠가 차단되었음을 지정합니다. 이 결과는 가드레일에 설정된 필터의 강도에 따라 달라집니다.

      • wordPolicy - 사용자 지정 단어 모음과 관리형 단어가 필터링되고 해당 단어에 대한 해당 평가가 포함됩니다. 각 목록에는 다음 필드가 포함되어 있습니다.

        • customWords - 필터와 일치하는 사용자 지정 단어 목록입니다.

          • match - 필터와 일치하는 단어 또는 구문입니다.

          • action - 단어가 차단되었음을 지정합니다.

        • managedWordLists - 필터와 일치하는 관리형 단어 목록입니다.

          • match - 필터와 일치하는 단어 또는 구문입니다.

          • type - 필터와 일치하는 관리형 단어의 유형을 지정합니다. 예를 들어 비속어 필터와 일치하는 PROFANITY 경우

          • action - 단어가 차단되었음을 지정합니다.

      • sensitiveInformationPolicy - 개인 식별 정보(PII)에 대한 평가와 위반된 정규식 필터를 포함하는 다음 객체를 포함합니다.

        • piiEntities - 위반된 각 PII 필터에 대한 평가 목록입니다. 각 필터에는 다음 필드가 포함되어 있습니다.

          • type - 발견된 PII 유형입니다.

          • match - 필터와 일치하는 단어 또는 구문입니다.

          • action - 단어가 식별자()로 BLOCKED 대체되었는지 여부를 지정합니다ANONYMIZED.

        • regexes - 위반된 각 정규식 필터에 대한 평가 목록입니다. 각 필터에는 다음 필드가 포함되어 있습니다.

          • name - 정규식 필터의 이름입니다.

          • regex - 발견된 PII 유형입니다.

          • match - 필터와 일치하는 단어 또는 구문입니다.

          • action - 단어가 식별자()로 BLOCKED 대체되었는지 여부를 지정합니다ANONYMIZED.

    • outputs - 가드레일의 모델 응답 평가에 대한 세부 정보 목록입니다. 목록의 각 항목은 객체의 형식과 일치하는 input 객체입니다. 자세한 내용은 input 필드를 참조하세요.