가드레일은 프롬프트 문구가 아니라 코드입니다
요약
LLM 애플리케이션의 안전성을 보장하기 위해 프롬프트가 아닌 코드 기반의 가드레일 구축이 필수적임을 설명합니다. 입력과 출력 양방향에서 작동하는 가드레일 계층과 비용 효율적인 계층화 전략, 그리고 상태 유지를 위한 메모리의 중요성을 다룹니다.
핵심 포인트
- 프롬프트만으로는 모델의 행동을 완벽히 제어할 수 없으므로 코드 기반 가드레일이 필요함
- 입력 가드레일은 프롬프트 인젝션을 차단하고, 출력 가드레일은 환각 및 유해 콘텐츠를 검증함
- 비용과 지연 시간을 줄이기 위해 결정론적 검사를 우선하는 계층화(Tiering) 전략이 권장됨
- 지속적인 메모리를 활용하면 다회차 대화에서의 공격 패턴과 모순을 효과적으로 감지 가능함
모든 프로덕션 LLM 애플리케이션은 결국 동일한 벽에 부딪힙니다. 시스템 프롬프트(System prompt)는 한 가지를 말하지만, 모델은 다른 행동을 하며, "프롬프트를 더 명시적으로 작성하라"는 식의 해결책으로는 이를 고칠 수 없습니다. 언어 모델은 주어진 컨텍스트(Context)를 바탕으로 가장 확률이 높은 다음 토큰(Token)을 생성합니다. 모델은 해당 토큰이 귀하의 콘텐츠 정책, 개인정보 보호 의무, 또는 현실과 일치하는지 확인하지 않습니다.
가드레일(Guardrails)은 그러한 확인 작업을 수행하는 계층입니다. 가드레일은 모델 주변에 작성하거나 배포하는 일반적인 소프트웨어이며, 부드러운 지침을 강제된 규칙으로 바꾸는 역할을 합니다.
두 개의 삽입 지점, 둘 다 필수적임
입력 가드레일(Input guardrails)은 모델이 메시지를 보기 전에 실행됩니다. 이는 프롬프트 인젝션(Prompt injection) 시도를 차단하고, 주제에서 벗어나거나 유해한 입력을 필터링하며, 제3자 엔드포인트(Endpoint)로 전송되어서는 안 될 민감한 데이터를 비식별화(Redact)하고, 요청이 시스템의 의도된 범위 내에 있는지 확인합니다.
출력 가드레일(Output guardrails)은 응답이 사용자에게 도달하기 전에 실행됩니다. 이는 환각(Hallucination)된 주장을 잡아내고, 유해한 콘텐츠를 필터링하며, 모델이 스스로 생성한 민감한 정보를 비식별화하고, 근거 자료(Grounding sources)를 바탕으로 답변을 검증하며, 형식 및 정책 규칙을 강제합니다.
어느 하나가 다른 하나의 공백을 메울 수는 없습니다. 입력 가드레일은 완전히 무해한 질문에 대해 모델이 유해한 결과물을 생성하는 것을 막을 수 없습니다. 출력 가드레일은 고객의 개인 데이터를 이미 외부 API로 전송해 버린 사실을 되돌릴 수 없습니다. 만약 하나의 계층만 구축한다면, 그것은 완전한 제어가 아니라 부분적인 제어일 뿐입니다.
저렴한 확인 절차를 우선적으로
가드레일 파이프라인(Guardrail pipeline)은 안전의 문제인 동시에 비용의 문제입니다. 모든 확인 절차는 지연 시간(Latency)을 추가하며, 확인 절차 자체가 모델인 경우에는 토큰(Token) 비용을 발생시킵니다.
유효한 패턴은 계층화(Tiering)입니다. 모든 항목에 대해 정규 표현식(Regex)을 이용한 카드 번호 및 식별자 검사, 허용 목록(Allowlist), 길이 및 형식 검증, 단순 분류기(Classifier) 통과와 같은 빠르고 결정론적인(Deterministic) 검사를 실행합니다. 비용이 많이 드는 검사는 통과된 항목에 대해서만, 그리고 그 위험이 정당화되는 경우에만 실행됩니다: 2차 분류기(Secondary classifiers), 임베딩 유사도(Embedding similarity), 사실 검증을 위한 함의 모델(Entailment models), 지식 그래프(Knowledge graph) 조회 등이 이에 해당합니다.
대부분의 트래픽은 비용이 많이 드는 계층에 도달하지 않으며, 이것이 바로 계층화의 핵심 목적입니다.
메모리가 계산 방식을 바꾸는 지점
상태 비저장(Stateless) 가드레일은 한 번에 하나의 메시지만 평가하므로, 일부 공격과 실패를 사실상 감지할 수 없게 만듭니다. 여러 턴(Turn)에 걸쳐 분산된 주입(Injection) 시도는 개별적으로는 무해해 보입니다. 한 시간 전에 동일한 시스템이 말했던 내용과 모순되는 조작된 사실도 단독으로 보면 문제가 없어 보입니다.
무엇을 물었는지, 무엇에 답했는지, 그리고 무엇이 이미 검증되었는지에 대한 지속적인 메모리(Persistent memory)는 가드레일 계층에 비교할 수 있는 대상을 제공합니다. 이를 통해 모순 검사(Contradiction checks)가 가능해집니다. 반복적인 탐색(Probing)은 일련의 무관한 메시지가 아닌 하나의 패턴으로 인식됩니다. 검증된 사실은 매 턴마다 재검증할 필요가 없으므로 비용을 다시 낮출 수 있습니다.
컴플라이언스(Compliance) 사례는 이미 와 있습니다
이는 더 이상 미래의 이야기가 아닙니다. EU AI Act는 고위험 시스템에 대해 인간의 감독, 투명성 및 안전 메커니즘을 요구합니다. AI 시스템을 위한 SOC 2는 데이터 처리 및 출력 품질에 대한 입증 가능한 통제를 요구합니다. HIPAA 적용 대상 기관은 모델 출력에서 보호 대상 건강 정보(PHI)를 제외해야 합니다. GDPR의 삭제 권리(Right to erasure)는 AI 시스템이 처리하는 데이터에도 적용됩니다.
이 중 그 어떤 것도 프롬프트 엔지니어링(Prompt engineering)만으로는 충족될 수 없습니다. 이들은 검사하고, 차단하며, 로그를 남기는 코드를 통해서만 충족됩니다.
얻게 되는 것
실질적인 이점은 안전뿐만 아니라 속도입니다. 환각(Hallucination) 탐지율과 콘텐츠 필터링 정확도를 명시할 수 있는 팀은 수동 검토와 선의에 의존하는 팀보다 새로운 AI 기능을 더 빠르게 출시합니다. 가드레일은 확률론적(Probabilistic) 시스템을 검토 가능하게 만드는 핵심 요소입니다.
아키텍처 패턴(Architecture patterns)과 성능 트레이드오프(Performance trade-offs)를 포함한 전체 상세 내용은 여기에서 확인할 수 있습니다: https://www.adaptiverecall.com/ai-guardrails/
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기