Each language version is independently generated for its own context, not a direct translation.
1. 기존 방식의 문제점: "조심스럽게 한 글자씩 쓰는 비서"
지금까지 컴퓨터가 사진 속 글자를 읽을 때 주로 썼던 방식은 ** autoregressive **(자기회귀) 방식이었습니다.
- 비유: 한 비서가 아주 조심스럽게 한 글자씩 순서대로 글을 써 내려가는 상황이라고想象해 보세요.
- "안녕하세요"라고 쓰려면, '안'을 쓰고, 그다음 '녕'을 쓰고, 그다음 '하'를 써야 합니다.
- 만약 문장이 100 자라면, 비서는 100 번이나 펜을 들어야 합니다.
- 문제점: 문서가 길어질수록 시간이 너무 오래 걸립니다. (예: 긴 계약서나 책 한 장을 읽는 데 시간이 많이 걸림)
2. DODO 의 아이디어: "한 번에 여러 줄을 동시에 채우는 마법사"
연구팀은 "글자는 사진에 이미 정해져 있으니, 한 번에 여러 글자를 동시에 맞춰볼 수 있지 않을까?"라고 생각했습니다. 이때 **확산 모델 **(Diffusion Model) 기술을 적용했습니다.
- 비유: 빈 종이가 있고, 그 위에 모든 글자가 가려진 상태라고 상상해 보세요.
- 기존 방식은 가려진 글자를 하나씩만 벗겨냈다면, DODO 는 한 번에 여러 글자의 가리개를 동시에 벗겨냅니다.
- "이 부분은 '안녕하세요'일 확률이 높고, 저 부분은 '감사합니다'일 것 같아"라고 여러 곳을 동시에 추측해서 채워 넣습니다.
- 장점: 100 자를 읽는 데 100 번이 아니라, 몇 번의 큰 동작으로 끝낼 수 있어 속도가 3 배 이상 빨라집니다.
3. 하지만, 여기서 함정이 있었습니다: "동시 작업의 부작용"
그런데 무작정 한 번에 여러 글자를 동시에 맞추려고 하면 큰 실수가 날 수 있었습니다.
- 비유: 한 번에 100 개의 빈칸을 채우려고 하는데, 글자 순서나 위치를 잘못 맞추는 경우가 생깁니다.
- 예를 들어, "안녕하세요"라고 써야 하는데, "안녕"을 10 칸 뒤에 쓰고 "하세요"를 1 칸 앞에 써버리는 식입니다.
- **창의적인 글쓰기 **(이미지 설명)는 "고양이가 나무에 올라가 있다"라고 쓰든 "나무에 고양이가 있다"라고 쓰든 의미가 통하니까 괜찮습니다.
- 하지만 OCR(문서 읽기)은 정확한 순서가 생명입니다. "안녕하세요"를 "하세요안녕"으로 쓰면 완전히 다른 뜻이 되거나 틀린 답이 됩니다.
- 기존 확산 모델은 이런 순서 오류를 수정할 수 없어서, 글자가 뒤죽박죽 섞이거나 아예 읽히지 않는 '파괴적인 결과'를 낳았습니다.
4. DODO 의 해결책: "작은 블록으로 나누어 동시에 채우기"
연구팀은 이 문제를 해결하기 위해 DODO라는 새로운 방식을 개발했습니다. 핵심은 "**블록 **(Block)"입니다.
- 비유: 긴 글을 한 번에 다 쓰려고 하지 말고, **작은 블록 **(예: 한 문단씩)으로 나누어 생각하세요.
- 첫 번째 블록: "안녕하세요" 부분을 한 번에 맞춰봅니다. (이제 이 부분은 고정됩니다.)
- 두 번째 블록: 첫 번째 블록이 확정되었으니, 그다음 "감사합니다" 부분을 한 번에 맞춰봅니다.
- 세 번째 블록: 앞선 블록들을 바탕으로 다음 부분을 채웁니다.
이렇게 **작은 덩어리 **(블록)를 적용하면:
- 속도: 한 번에 여러 글자를 동시에 채우므로 여전히 빠릅니다.
- 정확도: 앞의 블록이 확정되었으니, 뒤의 글자가 그 순서에 맞춰 자연스럽게 이어집니다. 글자 순서가 뒤섞이는 실수를 방지할 수 있습니다.
5. 결론: 왜 이것이 중요한가요?
- 기존 방식: 정확하지만 느림 (한 글자씩 순서대로).
- 기존 확산 모델: 빠르지만 정확하지 않음 (글자 순서가 뒤섞임).
- DODO: 정확하면서도 매우 빠름.
이 기술은 긴 문서, 복잡한 표, 수학 공식이 포함된 문서도 기존 방식보다 최대 3 배 더 빠르게 정확하게 읽을 수 있게 해줍니다. 마치 한 번에 여러 페이지를 동시에 스캔하고 정리하는 초고속 비서가 생긴 것과 같습니다.
한 줄 요약:
"글자를 읽을 때, 한 글자씩 천천히 쓰거나 (느림), 한 번에 다 쓰려다 실수하는 (틀림) 방식 대신, **작은 덩어리씩 나누어 동시에 정확하게 채워 넣는 **(빠르고 정확함) 새로운 방식을 개발했습니다."
Each language version is independently generated for its own context, not a direct translation.
1. 문제 제기 (Problem)
- OCR 의 본질적 특성: 광학 문자 인식 (OCR) 은 이미지에서 텍스트를 추출하는 작업으로, 시각적 입력이 고유한 출력 시퀀스를 결정하는 **매우 결정론적 (deterministic)**이고 **엄격 (rigid)**한 작업입니다. 이미지 캡션이나 VQA 와 달리, OCR 은 의미적 유연성이 거의 없으며 오직 하나의 정확한 텍스트 시퀀스만이 정답입니다.
- 기존 AR 모델의 한계: 현재 대부분의 최신 Vision-Language Model(VLM) 은 자기회귀 (Autoregressive, AR) 방식을 사용합니다. 이는 토큰을 하나씩 순차적으로 생성하므로, 긴 문서 처리 시 계산 비용이 많이 들고 지연 시간 (latency) 이 발생합니다.
- 기존 Diffusion 모델의 실패: 병렬 생성이 가능한 **마스킹 확산 모델 (Masked Diffusion Models, MDM)**은 이론적으로 OCR 에 적합해 보이지만, 실제로 적용하면 실패합니다.
- 구조적 불안정성: 전역적 (global) 인 확산 모델은 시퀀스 길이와 절대적 위치 정렬에 대한 불확실성을 내포합니다.
- 복구 불가능한 오류: 캡션 작업에서는 모델이 문맥을 재구성하여 오류를 수정할 수 있지만, OCR 은 고정된 텍스트를 요구하므로 길이 불일치나 위치 어긋남이 발생하면 텍스트가 잘리거나 (truncate) 허위 생성 (hallucination) 이 일어나며, 이를 나중에 수정할 수 없습니다.
2. 방법론 (Methodology)
저자들은 이러한 문제를 해결하기 위해 **DODO (Discrete OCR Diffusion Models)**를 제안합니다. 이는 OCR 작업을 위해 **블록 이산 확산 (Block Discrete Diffusion)**을 Vision-Language Model 에 처음 적용한 프레임워크입니다.
- 블록 확산 (Block Diffusion) 전략:
- 전체 시퀀스를 한 번에 생성하는 대신, 시퀀스를 **연속적인 블록 (예: 256 토큰)**으로 분할합니다.
- 각 블록은 이전 블록 (접두사) 을 조건으로 하여 순차적으로 처리되지만, 블록 내에서는 병렬적으로 토큰을 생성합니다.
- 이 구조는 **국소적 정렬 (local alignment)**을 강제하고, 전역적 확산에서 발생하는 긴 범위의 정렬 오류 (synchronization errors) 를 방지합니다.
- KV 캐싱 (KV-Caching) 최적화:
- DODO: 양방향 어텐션을 사용하여 이전 블록의 표현을 동적으로 재계산합니다. (정확도 우선)
- DODO-fast: 블록-인과적 (block-causal) 어텐션 마스크를 사용하여, 확정된 이전 블록의 키-값 (Key-Value) 을 캐싱하고 재사용합니다. 이는 추론 속도를 획기적으로 높입니다.
- 학습 및 추론 설정:
- 블록 크기: 텍스트 전용 모델 (32 토큰) 보다 훨씬 큰 256 토큰의 블록 크기를 사용합니다. OCR 의 높은 확신도 (high-confidence) 특성을 활용하여 병렬 효율을 극대화합니다.
- 샘플링 전략: 신뢰도 임계값 (Confidence Thresholding) 방식을 사용하여, 모델이 높은 확신을 가진 토큰만 마스크를 해제하고 다음 단계로 넘어가도록 하여 정확도를 유지하면서 속도를 조절합니다.
3. 주요 기여 (Key Contributions)
- 구조적 불일치 규명: 표준 마스킹 확산 모델과 OCR 의 엄격한 요구 사항 사이의 구조적 불일치를 최초로 식별하고 설명했습니다. (위치 고정 오류와 길이 불일치가 OCR 에 치명적임을 입증)
- DODO 프레임워크 제안: OCR 을 위해 블록 이산 확산을 적용한 최초의 VLM 을 개발했습니다. 생성을 순차적으로 조건부인 블록으로 분해함으로써 전역 확산의 경직성을 해결하고 동적 길이 적응을 가능하게 했습니다.
- 성능 입증: DODO 는 최첨단 자기회귀 (AR) 모델과 동급의 정확도를 유지하면서, 기존 AR 베이스라인 대비 최대 3 배 빠른 추론 속도를 달성했습니다.
4. 실험 결과 (Results)
- 데이터셋: OmniDocBench (레이아웃이 복잡한 문서) 와 Fox-Page-EN (순수 텍스트) 에서 평가했습니다.
- 정확도 (NED - Normalized Edit Distance):
- 기존 확산 기반 VLM 들 (Dimple, LaViDa 등) 은 OCR 작업에서 높은 오류율 (>0.5 NED) 을 보였습니다.
- DODO는 OmniDocBench 에서 0.066의 NED 를 기록하여, 기존 확산 모델보다 월등히 높은 성능을 보였으며, 전문 OCR 모델 (MonkeyOCR, Mistral OCR 등) 과도 경쟁 가능한 수준에 도달했습니다.
- 특히 DODO 는 동일한 아키텍처 기반의 자기회귀 모델 (Qwen2.5-VL) 보다 더 높은 정확도를 보였습니다.
- 처리량 (Throughput):
- DODO-fast는 KV 캐싱을 활용하여 **초당 약 63 토큰 (TPS)**을 처리하며, 기존 AR 모델 (약 21 TPS) 대비 약 3 배 빠른 속도를 달성했습니다.
- 표준 DODO(캐싱 없음) 역시 AR 모델보다 빠른 속도를 보였으며, 이는 병렬 디코딩으로 인한 순차적 단계 수의 감소가 재계산 비용을 상쇄했음을 의미합니다.
5. 의의 및 결론 (Significance)
- 패러다임 전환: OCR 과 같은 결정론적 작업에서도 확산 모델이 자기회귀 모델의 정확도를 유지하면서 병렬 처리의 이점을 얻을 수 있음을 입증했습니다.
- 실용적 가치: DODO-fast 를 통해 정확한 KV 캐싱이 가능해짐에 따라, 확산 기반 모델이 지연 시간이 중요한 (latency-critical) 실제 OCR 애플리케이션에서도 실용적인 대안이 될 수 있음을 보였습니다.
- 미래 전망: 이 연구는 단순한 이론적 가능성을 넘어, 구조적 안전장치 (블록 확산) 를 통해 확산 모델의 병렬성 잠재력을 실제 OCR 성능으로 전환하는 새로운 기준을 제시합니다.
요약하자면, DODO는 OCR 의 엄격한 특성을 고려하여 확산 모델의 병렬 생성 능력을 최적화한 혁신적인 모델로, 높은 정확도와 3 배 빠른 속도를 동시에 달성하여 문서 디지털화 분야의 새로운 표준을 제시합니다.