LLM 가드레일(Guardrails)은 대형 언어 모델이 생성하는 응답의 품질을 자동으로 측정하고, 기준을 벗어난 출력을 걸러내거나 재생성하도록 강제하는 소프트웨어 레이어다. 환각(hallucination)과 과도한 장황함(verbosity)은 LLM 배포 시 가장 흔하게 마주치는 문제이며, 가드레일은 이를 프로덕션 단계에서 사전에 차단하는 역할을 한다.
등장 배경
LLM은 대화 능력과 유창함을 극대화하는 방향으로 학습되다 보니 두 가지 고질적인 문제를 안고 있다.
장황함(verbosity): 단순한 질문에도 여러 단락의 상세하고 감탄사 가득한 문장을 쏟아낸다. 이는 읽기 피로를 유발하고 핵심 메시지를 희석시킨다.
환각(hallucination): 생성하는 단어 수가 많아질수록 학습 데이터의 실제 지식에서 벗어나 “그럴듯한 거짓말”을 만들어낼 확률이 높아진다. 즉 장황함과 환각은 양의 상관관계를 가진다.
이 두 문제를 해결하려면 모델 출력이 사용자에게 전달되기 전에 자동으로 검사·교정하는 인프라가 필요하다. 그것이 가드레일이다.
핵심 측정 지표
가독성·복잡도 점수
텍스트 복잡도를 수치화해 “복잡도 예산(complexity budget)”으로 관리할 수 있다.
| 지표 | 설명 | 라이브러리 |
|---|---|---|
| ARI (Automated Readability Index) | 텍스트 이해에 필요한 학년 수준을 추정 | Textstat |
| Flesch-Kincaid | 영어 가독성 점수 (높을수록 쉬움) | Textstat |
| Gunning Fog | 복잡한 단어 비율 기반 가독성 | Textstat |
| Perplexity | 모델이 자신의 출력에 얼마나 확신하는지 | 자체 계산 |
ARI 10.0은 미국 10학년(고등학교 1학년) 수준을 의미한다. 일반 사용자 대상 서비스라면 ARI 8–10 범위를 복잡도 예산으로 설정하는 것이 일반적이다.
환각 탐지
환각 탐지는 더 복잡하며, 크게 세 가지 방식으로 접근한다:
- 사실 검증(Fact Checking): 외부 지식 베이스나 검색 결과와 비교
- 일관성 검사(Consistency Checking): 동일 질문에 여러 번 응답시켜 모순 여부 확인
- 소스 귀속(Source Attribution): RAG 파이프라인에서 응답이 실제 문서에 근거하는지 확인
가드레일 구현 방식
1. 복잡도 예산 + 재프롬프팅 루프
가장 단순한 패턴이다. ARI 같은 가독성 점수를 계산하고, 임계값을 초과하면 “더 간결하게 다시 써라”는 프롬프트를 추가로 실행한다.
import textstat
ari_score = textstat.automated_readability_index(response)
if ari_score > complexity_budget:
# 재프롬프팅 루프 실행
response = simplify_chain.invoke({"text": response})자세한 구현은 llm-guardrails-tutorial-hallucination-verbosity 참조.
2. 전용 가드레일 프레임워크
| 도구 | 특징 | 라이선스 |
|---|---|---|
| Guardrails AI | 검증 규칙(validator)을 선언적으로 정의, Python SDK | Apache 2.0 |
| NeMo Guardrails | NVIDIA 개발, Colang 언어로 대화 흐름 제어 | Apache 2.0 |
| LLM Guard | 입력·출력 스캐너 파이프라인, PII 탐지 포함 | MIT |
3. 구조화 출력 강제
JSON Schema나 Pydantic 모델로 응답 형식을 강제하면, 형식 위반 자체가 환각의 신호가 된다. OpenAI의 Structured Outputs, Instructor 라이브러리 등이 이 범주에 속한다.
적용 대상
- 고객 응대 챗봇: 부정확한 정보 전달 방지, 응답 길이 제한
- 의료·법률 AI: 사실 근거 없는 조언 차단
- RAG 시스템: 검색된 문서에 없는 내용 생성 방지
- 콘텐츠 생성 파이프라인: 가독성 수준 일관성 유지
설치 (Textstat)
pip install textstat langchain_huggingface langchain_community관련 문서
- llm-guardrails-tutorial-hallucination-verbosity — Textstat + LangChain으로 LLM 환각·장황함 측정 및 제어하기