Hallucination (in LLMs)
LLM에서 AI 환각의 원인과 위험을 살펴봅니다. Ultralytics YOLO26에서 RAG, RLHF 및 그라운딩을 사용하여 사실 오류를 완화하는 방법을 알아봅니다.
인공지능(AI) 분야에서 환각은 대규모 언어 모델(LLM)이 확신에 차 있고 문법적으로는 올바르지만 사실과 다르거나, 무의미하거나, 입력 소스에 충실하지 않은 콘텐츠를 생성하는 현상을 의미합니다. 충돌이나 눈에 띄는 결함을 일으킬 수 있는 일반적인 소프트웨어 오류와 달리, 환각을 일으키는 모델은 설득력 있는 날조자처럼 행동하여 유효한 사실과 동일한 권위로 잘못된 정보를 제시합니다. 이는 데이터 무결성이 가장 중요한 의료, 법률, 금융과 같은 민감한 분야에 생성형 AI를 도입하는 조직에 중대한 과제를 제기합니다.
환각은 왜 발생합니까?#
모델이 환각을 일으키는 이유를 이해하려면 모델이 어떻게 구축되는지 살펴보는 것이 도움이 됩니다. LLM은 일반적으로 정교한 예측 엔진으로 작동하는 Transformer 아키텍처를 기반으로 합니다. 모델은 검증된 사실이 담긴 구조화된 데이터베이스를 조회하는 대신, 학습 데이터에서 도출된 통계적 확률을 바탕으로 시퀀스의 다음 토큰을 예측합니다.
이러한 동작을 유발하는 요인은 다음과 같습니다:
- 확률적 추측: 모델은 사실의 진실성보다 유창성과 일관성을 우선시합니다. 특정 단어 시퀀스가 통계적으로 가능성이 높다면, 사실과 다르더라도 모델이 이를 생성할 수 있습니다. 이 개념은 의미를 이해하지 못한 채 언어 패턴을 모방하는 모델을 설명하는 확률적 앵무새에 관한 연구에서 자주 논의됩니다.
- 데이터 품질 문제: 학습에 사용되는 방대한 텍스트 말뭉치에 모순, 오래된 정보 또는 허구가 포함되어 있으면 모델이 이러한 부정확성을 재현할 수 있습니다.
- 출처 망각: LLM은 방대한 양의 정보를 모델 가중치로 압축합니다. 이 과정에서 특정 출처와의 연결이 끊기는 경우가 많아, 서로 다른 개념이나 사건이 잘못 결합되는 "작화"가 발생합니다.
환각의 실제 사례#
환각은 무해한 창의적 embellishment부터 심각한 사실 오류까지 다양한 형태로 나타날 수 있습니다:
- 법률적 날조: 법률 전문가가 AI를 사용해 법률 서면을 작성했지만, 모델이 주장을 뒷받침하기 위해 존재하지 않는 법원 판례와 인용을 지어낸 사례가 보고된 바 있습니다.
- 코드 생성: AI 어시스턴트를 사용하는 개발자는 모델이 실제로 존재하지 않는 소프트웨어 라이브러리의 import 또는 함수를 제안하는 "패키지 환각"을 경험할 수 있습니다. 이는 단순히 해당 이름이 표준 명명 규칙을 따르기 때문에 발생합니다.
- 전기 오류: 잘 알려지지 않은 인물에 대해 질문하면 모델이 잘못된 업적, 출생지 또는 경력 이력을 확신에 차서 해당 인물의 것으로 제시할 수 있으며, 사실상 여러 사람의 세부 정보를 혼합하게 됩니다.
완화 전략#
환각 발생 빈도를 줄이는 것은 AI 안전성의 주요 연구 과제입니다. 엔지니어와 연구자는 모델을 현실에 기반하도록 만들기 위해 다음과 같은 여러 기법을 사용합니다:
- 검색 증강 생성(RAG): 이 방법은 LLM을 외부의 신뢰할 수 있는 지식 베이스에 연결하며, 해당 지식 베이스는 벡터 데이터베이스에 색인되는 경우가 많습니다. 답변을 생성하기 전에 관련 문서를 검색하면 모델이 실제 데이터에 의해 제약됩니다.
- 사고 과정 프롬프트: 이 프롬프트 엔지니어링 기법은 복잡한 추론을 중간 단계로 나누어 모델이 "작업 과정을 보여주도록" 유도하며, 이를 통해 논리 오류가 줄어드는 경우가 많습니다.
- 인간 피드백 기반 강화 학습(RLHF): 파인튜닝 단계에서 사람 평가자가 모델의 응답에 순위를 매깁니다. 환각에는 불이익을 주고 진실성에는 보상을 제공함으로써 모델이 인간의 기대에 더 잘 부합하도록 학습합니다.
컴퓨터 비전으로 LLM 기반 현실 근거 확보#
멀티모달 AI 시스템에서는 시각 데이터를 사용하여 텍스트 생성을 현실에 근거하도록 만들 수 있습니다. LLM에 장면을 설명하도록 요청하면 실제로 존재하지 않는 객체를 환각할 수 있습니다. YOLO26과 같은 고정밀 객체 검출기를 통합하면 개발자는 현재 존재하는 객체의 사실 기반 목록을 LLM에 제공하여, 검증된 검출 결과로 출력 범위를 엄격히 제한할 수 있습니다.
다음 Python 예제에서는 ultralytics 패키지를 사용하여 검증된 객체 목록을 추출하는 방법을 보여줍니다. 이 목록은 이후 언어 모델 프롬프트의 사실 기반 제약 조건으로 사용할 수 있습니다.
from ultralytics import YOLO
# Load the YOLO26n model (latest generation, efficient and accurate)
model = YOLO("yolo26n.pt")
# Run inference on an image to get ground-truth detections
results = model("https://ultralytics.com/images/bus.jpg")
# Extract the class names of actually detected objects
detected_objects = [model.names[int(c)] for c in results[0].boxes.cls]
# This factual list prevents the LLM from hallucinating items
print(f"Verified Objects for Prompt Context: {detected_objects}")
# Output example: ['bus', 'person', 'person', 'person', 'person']관련 개념 구분#
환각을 다른 일반적인 AI 오류와 구분하는 것이 중요합니다:
- AI의 편향과 비교: 편향은 출력에 나타나는 체계적인 선입견(예: 한 인구 집단을 다른 집단보다 선호하는 것)을 의미하는 반면, 환각은 사실 정확성의 실패입니다. 응답에 편향이 없으면서도 환각이 포함될 수 있습니다(예: "달은 치즈로 만들어져 있습니다").
- 과적합과 비교: 과적합은 모델이 학습 데이터를 지나치게 밀접하게 암기하여 새로운 입력에 일반화하지 못할 때 발생합니다. 환각은 모델이 데이터가 부족한 영역으로 지나치게 일반화하려고 할 때 발생하는 경우가 많습니다.
- 오분류와 비교: 객체 검출에서 자동차를 트럭으로 분류하는 것은 분류 오류(정확도 문제)이며 환각이 아닙니다. 환각은 거짓 콘텐츠를 생성하는 생성 과정에만 해당합니다.
다운스트림 오류를 방지하기 위해 높은 데이터 무결성을 갖춘 데이터세트를 관리하고 모델을 학습하려는 경우, Ultralytics Platform은 주석 및 데이터세트 관리를 위한 종합적인 도구를 제공합니다. 또한 NIST AI 위험 관리 프레임워크의 지침은 프로덕션 환경에서 이러한 위험을 평가하고 완화하기 위한 표준을 제공합니다.









