할루시네이션이란 무엇인가: 문서 AI가 없는 값을 만들어 내는 문제 완전 정리
할루시네이션(Hallucination)이란, 모델이 근거를 확인하지 못한 상황에서 모른다고 답하는 대신 가장 그럴듯한 값을 만들어 내보내는 현상으로, 문서 처리에서는 원본에 없는 금액이나 날짜가 결과에 나타나는 형태로 드러납니다.
문서 업무에서 할루시네이션이 특히 위험한 이유
틀린 값보다 그럴듯한 값이 더 위험합니다.
대화형 AI에서 사실이 어긋나면 사용자가 이상하다고 느끼고 다시 확인합니다. 문서 처리에서는 그렇게 되지 않습니다. 세금계산서에서 공급자명을 추출했는데 원본에 없는 상호가 그럴듯한 형태로 채워져 나오면, 검수자는 그 값을 의심할 이유를 찾지 못합니다. 형식이 맞고 자릿수가 맞고 문맥에도 어울리기 때문입니다.
그래서 문서 업무에서는 정확도 1%의 차이가 처리 건수 1%의 오류로 끝나지 않습니다. 월 1만 5천 건을 처리하는 심사 업무라면 1%는 150건이고, 그 150건은 사람이 걸러 내지 못한 채 기간계 시스템에 등록됩니다. 값이 비어 있으면 담당자가 알아채지만 값이 채워져 있으면 넘어갑니다. 빈칸을 채우려는 성질이 문서 AI에서 가장 다루기 어려운 문제인 이유가 여기에 있습니다.
할루시네이션의 정확한 정의: 인식 오류와 무엇이 다른가
인식 오류와 할루시네이션, 세 가지 축의 차이
첫째, 원인이 다릅니다. 인식 오류는 원본에 있는 글자를 잘못 읽는 문제입니다. 획이 뭉개지거나 겹쳐서 다른 글자로 판독되는 경우가 여기에 속합니다. 할루시네이션은 원본에 근거가 없는데 값이 생성되는 문제입니다. 읽기 실패가 아니라 생성 과잉입니다.
둘째, 드러나는 방식이 다릅니다. 인식 오류는 대개 어색한 결과를 냅니다. 존재하지 않는 단어나 깨진 숫자로 나타나므로 후처리 규칙이나 사람 검수에서 걸러집니다. 할루시네이션은 그럴듯한 결과를 냅니다. 형식 검증도 통과하고 사람 눈에도 자연스럽기 때문에 원본과 대조하지 않으면 발견되지 않습니다.
셋째, 대응 방법이 다릅니다. 인식 오류는 이미지 품질 개선과 모델 정확도 향상으로 줄입니다. 할루시네이션은 정확도를 올려서 해결되지 않습니다. 확신이 낮을 때 값을 만들지 않도록 생성 자체를 통제하는 설계가 필요합니다. 공공 행정문서 90만 장에서 1천 장을 무작위로 추출해 측정한 결과를 보면, 키 인식 정확도는 97.3%와 80.4%로 벌어졌지만 값 인식 정확도는 96.0%와 48.7%로 훨씬 크게 벌어졌습니다. 값을 찾지 못했을 때 어떻게 행동하는지가 이 격차를 만듭니다.
두 문제는 대체 관계가 아닙니다. 인식 정확도가 낮으면 근거를 확인하지 못하는 상황이 늘어나 할루시네이션의 발생 여지도 함께 커집니다. 인식 품질 위에 생성 통제를 올리는 순서가 맞습니다.
할루시네이션을 통제하는 5가지 설계 요건
실제 운영에 들어가는 할루시네이션 통제의 5가지 요건
첫째, 확신이 낮으면 값을 확정하지 않아야 합니다. 모든 항목에 반드시 값을 채우도록 설계하면 모델은 근거가 없어도 무언가를 만들어 냅니다. 값을 비우고 검토 대상으로 넘기는 선택지가 모델의 출력 안에 있어야 합니다.
둘째, 값마다 원문 위치를 함께 돌려주어야 합니다. 추출된 값이 원본의 어느 좌표에서 나왔는지가 함께 오면, 근거가 없는 값은 위치를 제시하지 못하므로 곧바로 드러납니다. 검수자가 의심스러운 항목만 짚어 확인할 수 있게 되는 효과도 있습니다.
셋째, 신뢰도 점수를 항목 단위로 제공해야 합니다. 문서 전체에 하나의 점수를 붙이면 어느 항목을 봐야 할지 알 수 없습니다. 항목별 확신 정도가 있어야 기준값 이하만 검수 화면에 띄우는 운영이 가능해집니다.
넷째, 검증 규칙을 함께 돌려야 합니다. 날짜의 앞뒤 관계, 금액 합계의 일치, 서류 간 이름 대조처럼 업무가 요구하는 조건은 모델이 아니라 규칙으로 잡습니다. 여러 문서에서 같은 항목을 대조하는 교차검증은 생성된 값을 걸러 내는 데 특히 효과적입니다.
다섯째, 값이 없는 상태를 구분해야 합니다. 실제 접수 문서에는 판단이 필요한 빈칸이 많습니다. 마침표 두 개만 찍힌 칸, 흰 막대로 덮인 칸, 인쇄된 단위 글자만 남고 값이 없는 행, 열네 칸이 통째로 비어 있는 표가 나타납니다. 해당 없음인지 기재 누락인지 스캔 손실인지 문서 안에 근거가 없는 경우가 있으므로, 이런 항목은 임의로 채우지 않고 상태를 표시해 넘기는 설계가 필요합니다.
할루시네이션 통제의 실제 적용 방법
추출 기준에 예외 처리를 함께 씁니다
프로젝트 초기에 만드는 항목 정의서에는 무엇을 추출할지뿐 아니라 언제 추출하지 않을지를 함께 적어야 합니다. 서명 또는 인처럼 인쇄된 안내 문구는 값이 아니라 자리 표시이므로 추출 대상에서 빼야 하고, 접수된 신청서는 반환되지 않는다는 식의 안내 문장도 마찬가지입니다. 이 구분이 정의되어 있지 않으면 모델은 인쇄된 글자를 입력값으로 오해합니다.
한 카드 금융기관의 자동화에서도 안내 문구와 실제 입력값을 구분하는 문서 이해가 핵심 과제로 다루어졌습니다. 무엇을 뽑을지보다 무엇을 뽑지 않을지가 결과 품질을 좌우하는 경우가 많습니다.
검수 화면을 통제 장치로 씁니다
생성 통제는 모델 안에서만 이루어지지 않습니다. 추출 결과를 검수 화면에 띄우되 신뢰도가 낮은 항목만 강조하고, 각 값을 클릭하면 원문의 해당 위치가 표시되는 구성을 갖추면 검수 시간이 크게 줄어듭니다.
여기에 문서 유형별 추출 항목과 스키마를 관리하는 화면을 함께 두면, 새로운 서식이 들어왔을 때 추출 기준을 수정해 대응할 수 있습니다. 기준을 버전으로 남기고 같은 문서로 이전 버전과 비교하는 절차를 두면 변경이 성능을 떨어뜨렸는지 확인할 수 있습니다.
성격이 다른 두 기술로 이중 검증합니다
한 가지 방식으로만 판정하면 그 방식이 놓치는 지점이 그대로 통과합니다. 그래서 실무에서는 성격이 다른 두 기술을 겹쳐 둡니다.
하나는 텍스트와 구조를 인식하는 쪽입니다. 글자가 실제로 그 자리에 있었는지, 표의 어느 셀에서 나왔는지를 확인합니다. 다른 하나는 문맥과 업무 의미를 이해하는 쪽입니다. 그 값이 해당 항목으로서 말이 되는지, 문서 전체의 맥락과 어긋나지 않는지를 봅니다.
두 판정이 엇갈리거나 정해진 형식을 벗어나는 결과는 자동으로 분리합니다. 근거가 부족한 값이 후속 시스템에 그대로 반영되지 않도록 막는 장치이며, 이 구조를 3 Zero AI Worker 전략에서는 Zero Hallucination이라는 이름으로 다룹니다.
국내 환경에서의 할루시네이션 통제
국내 문서에는 값을 잘못 만들어 내기 쉬운 조건이 몇 가지 있습니다.
먼저 숫자 표기입니다. 천 단위 구분에 마침표를 쓴 문서를 그대로 읽으면 이천만 원이 이십 원이 됩니다. 앞자리가 같고 가운데 한 자리만 다른 두 금액이 최초 신고와 경정 청구 항목으로 나란히 놓이는 서식도 있습니다. 이런 문서에서는 자릿수 검증과 항목 경로 확인을 규칙으로 함께 돌려야 합니다.
다음은 항목 번호 표기입니다. 사업 목적 열한 개가 모두 1번으로 시작되는 등기 서식이 실제로 존재합니다. 항목이 열한 개인지 하나가 반복되는지를 판단해야 하는데, 근거 없이 번호를 다시 매기면 원본에 없는 구조가 만들어집니다.
마지막은 문서 상태입니다. 여러 번 재전송된 팩스에서는 서로 다른 날짜 표기가 한 줄에 겹쳐 접수일을 정할 근거가 문서 안에 없는 경우가 생깁니다. 이런 항목은 값을 만들지 않고 판단 불가로 넘기는 것이 옳은 처리입니다.
자주 묻는 질문
부분적으로만 그렇습니다. 인식 정확도가 높으면 근거를 확인하지 못하는 상황이 줄지만, 값을 찾지 못했을 때 어떻게 행동하는지는 별개의 설계 문제입니다.
실데이터 기반 PDF 문서 10만 건 검증에서 0.3% 미만이 확인된 사례가 있습니다. 문서 종류와 항목 정의에 따라 달라지므로 자사 문서로 측정하시는 편이 정확합니다.
값과 함께 반환되는 원문 위치와 신뢰도로 판별합니다. 위치를 제시하지 못하거나 확신이 낮은 항목을 검수 대상으로 분리하는 방식이 실무에서 쓰입니다.
임의로 채우지 않고 상태를 표시해 넘깁니다. 해당 없음인지 기재 누락인지 판단할 근거가 문서 안에 없는 경우가 있으므로, 이 판단은 업무 규칙으로 정해 두는 편이 맞습니다.
업무가 요구하는 조건까지입니다. 날짜 순서와 금액 합계, 서류 간 이름 대조처럼 사람이 확인하던 항목을 규칙으로 옮기면 대부분의 생성 오류가 걸러집니다.
효과가 큽니다. 한 문서에서 만들어진 값은 다른 문서의 같은 항목과 어긋나므로, 교차검증 단계에서 불일치로 드러납니다.