Amazon Bedrock Guardrails를 사용한 유해 콘텐츠 감지 및 필터링
Source: Dev.to
기술 개요
Amazon Bedrock Guardrails는 애플리케이션과 응답을 생성하는 데 사용되는 기본 모델(FM) 사이에 위치하는 중앙 집중식 제어 레이어를 제공합니다. Guardrails를 사용하면 적용되는 모델에 관계없이 일관되게 적용되는 강제 안전, 프라이버시 및 규정 준수 규칙을 정의할 수 있습니다.
아키텍처 관점에서 Guardrails는 인바운드 프롬프트와 아웃바운드 응답 모두에 대해 평가되어, 모델이나 최종 사용자에게 도달하기 전에 위험한 콘텐츠가 차단되거나 변환되도록 보장합니다.
고수준 아키텍처 흐름
-
사용자 요청이 애플리케이션에 들어옴
- 사용자가 애플리케이션과 상호작용합니다(예: 챗봇, 은행 포털, 콜센터 시스템 등).
- 요청은 API 또는 UI 레이어를 통해 애플리케이션 백엔드로 전달됩니다.
-
Bedrock 가드레일을 통한 프롬프트 평가
- 요청이 기본 모델에 전송되기 전에, 애플리케이션은 연관된 가드레일 구성과 함께 Amazon Bedrock을 호출합니다.
- 가드레일은 사용자 프롬프트를 다음 항목에 대해 검사합니다:
- 해롭거나 독성 있는 언어
- 금지된 주제(예: 금융 또는 법률 조언)
- 민감한 데이터 패턴(PII, 구성에 따라)
- 프롬프트가 정의된 정책을 위반하면, Bedrock은:
- 요청 차단
- 사전 정의된 안전 응답 반환
- 감사 및 모니터링을 위해 이벤트 기록
-
모델 호출 (프롬프트가 허용된 경우)
- 가드레일 평가를 통과한 프롬프트만 선택된 기본 모델(예: Claude, Titan 또는 기타 Bedrock‑지원 모델)로 전달됩니다.
- 이는 안전 로직을 모델 자체와 분리하고, 모델을 교체하거나 업그레이드해도 일관된 동작을 보장합니다.
-
가드레일을 통한 응답 평가
- 기본 모델이 응답을 생성한 후, 가드레일이 다시 적용됩니다—이번에는 모델 출력에 대해 적용됩니다.
- 가드레일은 다음을 수행할 수 있습니다:
- 독성 또는 위험한 응답을 감지하고 차단
- 금지된 조언이나 정책 위반 방지
- 개인 식별 정보(PII)를 삭제하거나 마스킹
-
최종 응답이 사용자에게 반환됨
- 가드레일 규칙을 준수하는 응답만 애플리케이션에 반환되어 사용자에게 표시됩니다.
- 응답이 정책을 위반하면 대신 제어된 대체 메시지가 반환됩니다.
예시 아키텍처 사용 사례
| 사용 사례 | 가드레일 역할 |
|---|---|
| 챗봇 아키텍처 | 추론 전 사용자 입력을 검증하고 추론 후 모델 출력을 스캔하여 남용되거나 유해한 콘텐츠가 사용자에게 표시되지 않도록 합니다. |
| 금융 서비스 아키텍처 | 투자 조언과 관련된 프롬프트나 응답을 차단하는 정책 집행 레이어 역할을 수행하여 규제 위험을 감소시키면서도 일반 금융 정보를 허용합니다. |
| 컨택 센터 요약 파이프라인 | 대화 기록은 Bedrock을 통해 전송되며, 가드레일이 PII를 감지하고 삭제하도록 구성되어 요약본이 S3, OpenSearch, CRM 플랫폼과 같은 하위 시스템에 저장되기 전에 처리됩니다. |
왜 이 아키텍처가 중요한가
안전 제어를 애플리케이션 로직 및 모델 선택과 분리함으로써 Amazon Bedrock Guardrails는 다음을 가능하게 합니다:
- 다중 AI 워크로드에 걸친 중앙 집중식 거버넌스
- 모델에 구애받지 않는 안전 적용
- 코드 변경 없이도 감사, 규정 준수 및 정책 업데이트를 용이하게
이 접근 방식은 팀이 생성 AI 애플리케이션을 확장하면서도 환경 전반에 걸쳐 예측 가능하고 제어된, 규정을 준수하는 동작을 유지하도록 합니다.
Amazon Bedrock Guardrails 정책 및 적용 기능
Amazon Bedrock Guardrails는 프롬프트 처리 및 모델 추론 중에 평가되는 일련의 구성 가능한 보호 장치(정책)를 제공합니다. 각 정책 유형은 독립적으로 활성화할 수 있으며 애플리케이션별 위험 허용도에 맞게 조정할 수 있습니다.
콘텐츠 필터
- 사용자 프롬프트와 모델 응답에서 유해한 텍스트 또는 이미지 콘텐츠를 감지하고 차단합니다.
- 카테고리: 증오, 모욕, 성적, 폭력, 부정행위, 프롬프트 공격(탈옥 시도)
- 카테고리별로 허용 수준(예: 관대 vs. 엄격)을 설정할 수 있습니다.
- Classic 및 Standard 티어 모두 이 카테고리를 지원합니다.
- Standard 티어는 코드 수준 요소(주석, 변수/함수 이름, 문자열 리터럴)까지 감지를 확장합니다. 이는 개발자 도구, 코드 어시스턴트, AI 생성 스크립트에 특히 중요합니다.
금지 주제
- 범위 밖이거나 허용되지 않는 주제를 명시적으로 정의합니다.
- 금지된 주제가 사용자 질의 또는 모델 응답에 나타날 경우, 요청을 차단하거나 안전한 대체 응답으로 교체할 수 있습니다.
- Standard 티어에서는 코드 요소(주석, 변수, 함수 이름, 문자열) 내부에서도 감지를 적용해 숨겨진 정책 위반을 방지합니다.
- 규제 환경(예: 의료·투자 조언 차단)에서 흔히 사용됩니다.
단어 필터
- 특정 단어, 구문, 혹은 욕설을 정확히 일치시켜 차단합니다.
- 다음과 같은 비즈니스별 제한을 적용하는 데 유용합니다:
- 공격적인 언어
- 경쟁사 이름
- 브랜드 오용
민감 정보 필터
- 프롬프트와 응답 모두에서 개인 식별 정보(PII)를 감지하고 차단하거나 마스킹합니다.
- 감지는 확률적이며 다음과 같은 표준 형식의 엔터티를 지원합니다:
- 사회보장번호
- 생년월일
- 주소
- 기본 제공 PII 감지 외에도 필요에 따라 사용자 정의 정규식 패턴이나 엔터티 유형으로 필터를 확장할 수 있습니다.
위의 모든 정책은 조직 고유의 컴플라이언스 및 안전 요구 사항을 충족하도록 결합, 우선순위 지정 및 맞춤 설정이 가능합니다.
조직별 식별자를 위한 사용자 정의 정규식
조직 고유의 식별자(예: 고객 ID 또는 내부 참조 번호)를 식별하기 위해 사용자 정의 정규식을 구성할 수 있습니다.
이 정책은 S3, OpenSearch, CRM, 또는 분석 플랫폼과 같은 하위 시스템에 출력물을 저장하는 애플리케이션에 필수적입니다.
정책 위반 처리
정책을 정의하는 것 외에도, 다음 상황에서 반환되는 사용자 맞춤형 메시지를 구성할 수 있습니다:
- 사용자 입력이 정책을 위반할 경우, 또는
- 모델 응답이 가드레일 평가에 실패할 경우
이를 통해 애플리케이션은 일반적인 오류나 무응답 대신 안전하고 일관되게 실패하도록 할 수 있습니다.
Source: …
아키텍처의 통합 옵션
Guardrails는 두 가지 주요 방식으로 사용할 수 있습니다.
-
모델 추론 중
- Guardrails는 Bedrock 추론 API 호출 시 guardrail ID와 버전을 지정하여 적용됩니다.
- 이 모드에서는 Guardrails가 다음을 모두 평가합니다:
- 입력 프롬프트
- 모델 출력
-
독립형 Guardrail 평가
ApplyGuardrailAPI를 사용하면 기반 모델을 호출하지 않고도 Guardrails를 적용할 수 있습니다.- 다음과 같은 경우에 유용합니다:
- 사용자 입력 사전 검증
- 외부 시스템에서 나온 출력 후처리
- 추론 전에 RAG 파이프라인에서 정책 적용
RAG 및 대화형 애플리케이션용
RAG 또는 다중 턴 대화 아키텍처에서는 다음을 제외하고 사용자의 현재 입력만 평가하고자 할 수 있습니다:
- 시스템 지시문
- 검색된 결과
- 대화 기록
- Few‑shot 예시
이러한 접근 방식은 가드레일이 내부 컨텍스트나 시스템이 생성한 콘텐츠를 잘못 표시하는 것이 아니라 사용자 의도에 집중하도록 보장합니다.