AI 모델의 고질적 결함, 텍스트 퇴행과 무한 루프 현상

DharmaOCR가 4월 Hugging Face를 통해 구조화 OCR 전문 모델과 방법론 논문을 공개했다. 해당 모델은 브라질 포르투갈어 텍스트의 구조화된 문서 추출 작업을 대상으로 벤치마크를 수행했다. 이 과정에서 모델이 전사(Transcription) 대신 동일한 문구를 반복해서 생성하는 '텍스트 퇴행(Text Degeneration)' 현상이 주요 분석 대상으로 다뤄졌다. 텍스트 퇴행은 모델이 특정 구간에서 멈추지 않고 동일한 토큰을 계속 생성하며 최대 토큰 제한에 도달할 때까지 반복하는 무한 루프 오류를 의미한다. 이러한 현상은 단순한 디코딩 오류가 아니라 학습 목적 함수와 확률 질량이 특정 영역에 과하게 집중되면서 발생하는 시스템 수준의 실패로 정의된다.

SFT의 구조적 한계와 텍스트 퇴행의 임계치

오픈소스 모델군에 적용된 기본(Vanilla) 상태의 텍스트 퇴행률은 1% 미만에서 33% 이상까지 넓게 분포했다. 개발진이 지도 미세 조정(SFT, Supervised Fine-Tuning)을 적용해 퇴행률을 낮췄으나, 실제 서비스에 적용 가능한 수준까지는 도달하지 못했다. SFT는 토큰 단위로 학습하며 각 예측을 개별적으로 평가하는 구조를 가진다. 이로 인해 반복 루프가 발생하더라도 이를 전체 완료 수준의 실패로 인식해 페널티를 부여하지 못하는 구조적 한계가 발생한다. 결과적으로 작업 중심의 미세 조정만으로는 퇴행 오류를 완전히 제거할 수 없는 성능 임계치가 존재하며, 모델의 작업 수행 역량과 퇴행 저항력은 서로 독립적으로 움직이는 것으로 나타났다.

DPO 도입을 통한 텍스트 퇴행 오류의 획기적 감소

DharmaOCR가 SFT 이후 2단계 학습으로 직접 선호도 최적화(DPO, Direct Preference Optimization)를 적용해 모든 테스트 모델군에서 퇴행 오류를 감소시켰다. DPO 적용 결과 텍스트 퇴행률은 평균 59.4% 감소했으며, 최대 감소폭은 87.6%에 달했다. 구체적으로 Nanonets-OCR2-3B 모델의 경우 퇴행률이 1.61%에서 0.20%로 하락했다. DPO는 토큰별 확률을 맞추는 SFT와 달리 결과물 전체를 선택(Chosen) 또는 거부(Rejected)로 라벨링하여 학습하는 구조를 취한다. 이를 통해 모델은 퇴행이 발생한 전체 시퀀스를 명시적으로 잘못된 결과로 인식하며, 확률 분포를 직접 수정해 퇴행 오류를 억제한다.

확률 분포의 기하학적 구조와 어트랙터(Attractor)의 원리

텍스트 퇴행은 특정 토큰이 자신의 조건부 분포를 지배하며 형성되는 '어트랙터(Attractor)'라는 기하학적 구조에서 기인한다. 모델이 추론 중 이 고확률 영역에 진입하면 다음 단계에서도 동일한 토큰에 높은 확률을 부여하게 되고, 이는 다시 확률을 높이는 자기 강화 루프로 이어진다. 개발자가 흔히 사용하는 반복 페널티(Repetition penalties), 온도 조절(Temperature adjustments), 조기 중단 로직(Early-abort logic)은 샘플링 단계에서 증상을 억제하는 임시방편에 불과하다. 이러한 추론 층의 개입은 겉으로 드러나는 결과물만 필터링할 뿐, 반복을 만들어내는 내부 확률 분포의 구조 자체는 수정하지 못해 어트랙터가 그대로 유지되는 한계를 보인다.

실패 데이터를 학습 신호로 전환하는 DPO 파이프라인 설계

DharmaOCR 파이프라인은 SFT 모델이 추론 과정에서 생성한 퇴행 출력물을 제거하지 않고 이를 '거부(Rejected)' 예시로 활용하는 설계 방식을 채택했다. 시스템은 정확한 전사본을 선택(Chosen) 데이터로, 무한 루프가 발생한 출력물을 거부 데이터로 짝지어 선호도 쌍(Preference pairs)을 구성했다. 이는 챗봇 정렬에서 쓰이는 도움됨이나 무해함 같은 주관적 판단 대신, 전사 성공 여부라는 객관적인 이진 신호를 학습에 이용한 것이다. 모델이 스스로 빠졌던 함정을 부정적 신호로 사용하여 확률 질량을 다른 곳으로 분산시킴으로써, 추론 단계의 개입 없이도 모델 내부의 확률 분포 수준에서 근본적인 해결책을 구현했다.