Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

34장. 환각·Alignment·거절(Refusal)

이 장의 목표 “왜 모델이 자신만만하게 거짓말을 하지?” “왜 멀쩡한 질문을 거절하지?”

이 두 가지의 정체와 줄이는 방법을 정리합니다.


34.1 환각(Hallucination) — 왜 일어나나

모델은 “정답을 안다“가 아니라 “가장 그럴듯한 다음 토큰” 을 만듭니다 (2장).

"한국 대법관은 모두 ___ 출신이다"
   ↓
모델이 모르는 사실
   ↓
그럴듯한 단어를 그냥 만들어냄
   ↓
"서울대" — 자신 있게 출력

모르는 것에 대해 “모른다“고 답하도록 학습되지 않은 결과입니다.


34.2 환각이 자주 일어나는 영역

  • 고유명사 (사람·회사·논문 이름)
  • 숫자·통계 (정확한 수치)
  • 인용·출처 (실제 존재 안 함)
  • API·라이브러리 메소드명
  • 법령·판례
  • 최근 사건 (학습 데이터 컷오프 이후)

34.3 환각 줄이는 7가지 방법

① RAG (26장)

근거를 같이 줘서 “그 안에서만 답해” 하면 환각 급감.

② 시스템 프롬프트 강제

- 확실하지 않으면 "모르겠다"라고 답해.
- 추측은 "[추정]"으로 표시.
- 출처가 없으면 답을 만들지 마.

③ Temperature 낮추기

0.2 이하면 환각 빈도 감소 (23장).

④ Reasoning 모델 사용

R1·Thinking 모델은 자기 추론을 검토하는 경향이 강해서 일반 환각이 적습니다 (9장).

⑤ 작은 모델 피하기

3~7B 모델은 큰 모델보다 환각 ↑. 실무용은 14B 이상 권장.

⑥ Tool Use (28장)

“이 사실을 확인하려면 search_web 도구를 써” 라고 시키면 모델이 직접 검색합니다.

⑦ 자기 검토 요청

답을 적은 뒤에,
스스로 검토해서 의심스러운 부분을 표시해줘.

34.4 환각 평가 — 자기 신뢰도 표시

답변 끝에 확신 정도를 표시하게 시키면 사용자가 판단하기 좋습니다.

모든 답변 끝에 한 줄로:

확신도: [매우 높음 / 높음 / 보통 / 낮음 / 매우 낮음]
이유: ...

작은 모델은 이걸 형식대로 안 따르기도 합니다. 큰 모델일수록 자기 인식 능력 ↑.


34.5 Alignment — 모델의 매너 교정

2장에서 본 RLHF·DPO 단계.

모델을 다음과 같이 가르치는 과정:

  • 위험한 요청은 거절
  • 정중하게 답
  • 사실 위주
  • 너무 길거나 짧지 않게

Base 모델 → Instruct 모델 이 되는 과정의 핵심.


34.6 거절(Refusal) — 너무 자주 거절하는 모델

Alignment가 과하면 멀쩡한 질문도 거절합니다.

사용자: "독성 화학물질 분류 기준 알려줘"
모델: "위험한 정보 제공은 어렵습니다."

→ 그냥 공개된 화학 교과서 내용인데도 거절.

원인:

  • 안전 학습이 과적합
  • 키워드 기반 거절 (단어만 보고)
  • 시스템 프롬프트가 너무 강함

34.7 거절 줄이기

① 시스템 프롬프트에 컨텍스트

너는 화학 교사와 대화 중이다.
교과서 수준의 일반 화학 지식은 답해도 된다.

② 명확한 경계 정의

다음은 거절:
- 무기·해킹·사기 도구 제작
다음은 답변:
- 일반 학문 지식
- 공개된 사실
- 코드 보안 개선 방법

③ 모델 교체

거절 성향이 너무 강한 모델은 다른 시리즈로. Qwen·Mistral 계열은 보통 비교적 균형.


34.8 Uncensored / Abliterated — 위험한 변종

거절 회로를 제거한 모델들.

Qwen3-32B-Instruct-Uncensored
*-Abliterated

이런 모델은:

  • 위험 정보까지 답함
  • 사내 챗봇에 절대 사용 금지
  • 컴플라이언스 이슈 크다 (12장)
  • 개인 학습·실험 용도면 본인 책임

이 책에서는 권장하지 않습니다.


34.9 HarmBench — 안전성 측정

다음 장(35장)의 주제. 모델이 위험한 요청에 얼마나 잘 대응하는지 표준 평가.


34.10 회사 도입 시 안전 정책

사내에서 로컬 AI를 쓸 때 정해두면 좋은 것.

시스템 프롬프트에 회사 정책

당신은 비트북 회사의 사내 비서입니다.

다음은 답변 거부:
- 다른 직원의 개인정보
- 회사 보안 자료의 외부 유출
- 법률·의료의 최종 결정

다음은 답변 가능:
- 사내 매뉴얼 내용
- 일반 업무 지식
- 코드·기술 질의

로그·감사

29장의 Agent 로그와 동일하게 입력·출력 전체 보관.

인간 검토 단계

자동 결정에 큰 영향을 주는 답변은 사람이 한 번 확인.


34.11 한국어 모델의 특수 함정

작은 한국어 모델에서 자주 보이는:

  • 공손한 환각: 자신 있게 헛소리
  • 영어 사실로 답: 미국 기준 답변
  • 존댓말 강제로 답이 늘어짐
  • 거절을 한국식 정중함으로 위장

대처:

  • 작은 모델은 가능한 한 RAG로 보강
  • 큰 32B+ 모델 사용
  • 한국어 데이터 비중 큰 시리즈 선택

이 장에서 기억할 한 가지

환각은 모델이 “다음 토큰 예측 기계“라는 본질에서 옵니다.

줄이는 가장 효과적인 길: RAG + 명확한 시스템 프롬프트 + 큰 모델 + 낮은 temperature.

거절은 컨텍스트 부족이 원인인 경우가 많습니다. Uncensored 모델 대신 시스템 프롬프트로 풀어보세요.


손으로 해볼 것

1. 환각 유발 질문 3개

다음을 던져보고 작은 모델 vs 32B 모델 답 비교.

1. "2025년 노벨 화학상 수상자는?"
2. "Qwen3-32B 모델의 정확한 발표일은?"
3. "라이브러리 'fakelib-pro' 의 install_xyz() 사용법은?"

작은 모델이 자신 있게 거짓말 하는지 보세요.

2. “모르면 모른다” 효과 비교

같은 질문을 두 시스템 프롬프트로 던지기.

A. 없음 B. “확실하지 않으면 반드시 ’모르겠다’로 답해. 추측 금지.”

답의 정확성·정직함 차이를 메모.


다음 장에서는 HarmBench와 안전성 평가 — 공식 벤치마크로 모델의 안전성을 재는 법을 봅니다.