블로그

Diffusion으로 OCR 디코딩 가속하기

김형국,28 min read

이 글은 공개 예정인 technical report의 핵심 결과를 요약한 것입니다. 측정 프로토콜과 전체 표는 리포트에서 확인하실 수 있습니다. Technical report, 모델 weight, 코드 모두 공개할 예정이며 링크는 준비되는 대로 이곳에 추가하겠습니다.

  • Technical report — TBD
  • 모델 weight — TBD
  • 코드 — TBD

들어가며

영수증, 카드 등의 정보를 손으로 옮겨적는 일은 상당히 귀찮습니다. 하물며 몇 십, 많으면 몇 백 페이지를 넘어가는 책자를 텍스트로 옮겨적는 일은 아무리 한컴타자 ‘별 헤는 밤’에서 700타 이상의 성적을 낼 수 있는 고수들에게도 매우 오랜 시간이 걸리는 작업입니다. 다행히도 오늘날에는 AI를 통한 OCR로 사람의 힘을 안 들이고도 이미지 속 텍스트를 빠르고 정확하게 옮겨적을 수 있습니다. 문서 OCR의 경우에도 요즘에는 대부분 생성 모델을 활용하는데요, 문서 이미지를 넣으면 모델이 본문 텍스트, HTML 표, LaTeX 수식을 하나의 토큰 시퀀스로 직렬화해서 생성하게 됩니다. 근래에 나오는 OCR 모델들은 대부분 정확도 90%는 넘어 믿고 쓸 수 있게 되었고 그에 따라 더 이상 사람이 일일이 글자를 옮겨적을 일은 많이 없어졌습니다.

하지만 인간은 금방 배가 부르기 마련입니다. 글자 자동인식이 잘되어있어도 속도가 느리다면 답답함을 토로할 수밖에 없습니다. 다행히도 요즘 나오는 모델들은 높은 성능은 물론 더 빠른 추론 속도를 지원하는 방향으로 진화해오고 있습니다. 항상 걷는 모델 위에 뛰는 모델이, 뛰는 모델 위에 나는 모델이 있는 법이죠. 이번에는 저희가 그 나는 모델이 되보려고 합니다!

Autoregressive (이하 AR) 디코딩은 토큰 하나를 만들 때마다 forward 한 번이 필요합니다. 출력이 NN 토큰이면 순차 디코딩도 NN번 — OCR처럼 출력이 긴 작업에서는 디코딩이 곧 서빙 비용입니다. 그래서 최근 OCR 모델들은 디코딩을 빠르게 하는 데 공을 들입니다. GLM-OCR[1]은 multi-token prediction (이하 MTP) head를 내장했고, HunyuanOCR-1.5[2]는 외부 diffusion drafter(DFlash)를 붙였고, DODO[3]나 MinerU-Diffusion[4]처럼 아예 diffusion으로 여러 토큰을 병렬 생성하는 모델도 나왔습니다.

이 글에서는 저희가 GLM-OCR(0.9B)을 기반으로 만든 접근 — 한 모델이 diffusion으로 초안을 쓰고, 같은 모델의 AR 경로가 그 초안을 검증하는 self-speculative decoding — 을 소개합니다. 결과부터 말하면, AR 출력과 byte 단위로 동일한 결과를 유지하면서 forward당 평균 9.6토큰을 커밋합니다 (여기서 커밋은 생성한 토큰을 더 이상 되돌리지 않고 출력으로 확정한다는 뜻입니다. AR 디코딩은 한 번에 한 토큰씩만 커밋합니다). 디코딩 구간만 보면 3.85배, 페이지 처리 전체로는 1.34배 빨라졌고 같은 모델에 내장된 MTP baseline보다도 빠릅니다.

여기서 잠깐, diffusion language model이 뭔데?

이미지 diffusion 모델은 노이즈로 가득한 캔버스에서 시작해 여러 스텝에 걸쳐 노이즈를 걷어내며 그림을 완성합니다. 이 접근을 언어 모델에서 차용하는 방법은 크게 두 갈래입니다. 토큰을 연속 벡터로 바꾼 뒤 그 위에 실제로 가우시안 노이즈를 얹었다 걷어내는 latent (continuous) diffusion, 그리고 노이즈의 역할을 마스크가 대신하는 discrete diffusion입니다. 이 글에서 diffusion language model[5]이라고 할 때는 후자, 그중에서도 토큰을 마스크로 가렸다가 복원하는 masked discrete diffusion을 가리킵니다.

언어 모델에서의 masked discrete diffusion은 빈칸이 잔뜩 뚫린 시험지를 떠올리시면 됩니다. 전부 마스크인 상태에서 시작해, 한 스텝마다 모델이 모든 빈칸의 답을 동시에 예측하고 그중 확신이 서는 칸부터 채웁니다. 채운 칸은 다음 스텝의 문맥이 되고, 빈칸이 없어질 때까지 이걸 반복합니다.

AR과의 차이는 둘입니다. 채우는 순서, 그리고 한 번에 채우는 개수. AR은 왼쪽에서 오른쪽으로, 그것도 한 칸씩만 채울 수 있어 토큰 NN개에 forward도 NN번이 필요합니다. 반면 diffusion은 순서에 매이지 않고 아무 칸이나, 게다가 여러 칸을 한 스텝에 동시에 채울 수 있어 훨씬 적은 forward로 끝낼 수 있습니다.

뒤에서 계속 나올 용어 둘만 미리 풀어두겠습니다.

AR, diffusion, block diffusion 셋의 차이는 결국 “각 토큰이 어떤 토큰을 볼 수 있는가”로 요약됩니다.

AR(하삼각), diffusion(전체), block diffusion(블록 하삼각) attention mask 비교
Figure 1. 세 방식의 attention 허용 범위 (토큰 8개, 블록 크기 4). AR은 자기 왼쪽만, diffusion은 전체를, block diffusion은 이전 블록 전부와 자기 블록 안을 봅니다. 오른쪽 그림의 옅은 칸이 블록 내부의 bidirectional 영역입니다.

AR은 자기보다 앞선 토큰만 볼 수 있어 행렬이 하삼각 모양이 됩니다. 그래서 한 번에 한 칸씩밖에 못 채우지만, 앞부분의 계산 결과(KV cache)는 그대로 재사용할 수 있습니다. Diffusion은 아직 안 채워진 자리끼리도 서로를 보기 때문에 행렬 전체가 열려 있습니다. 병렬로 채울 수 있는 대신, 한 칸이 채워질 때마다 나머지 칸이 보는 문맥이 바뀌어서 이전 계산을 재활용하기 어렵습니다. Block diffusion은 둘의 절충입니다. 블록끼리는 causal이라 이미 끝난 블록의 KV cache를 그대로 쓰면서, 지금 채우는 블록 안에서만 bidirectional하게 열어 병렬로 채웁니다.

diffusion language model (이하 dLLM) 자체를 파고드는 건 이 글의 스코프를 넘어서기 때문에 여기서는 이 정도만 짚고 넘어가겠습니다. 앞으로 dLLM을 다루는 글도 종종 올릴 예정이니 관심 있으시면 기대해주셔도 좋습니다.

OCR은 병렬 생성과 잘 맞는다

여러 위치를 한 번에 채운다는 아이디어가 어디서나 쉽게 통하지는 않는 것 같습니다. 다음에 무슨 말이 올지는 앞의 텍스트가 결정하기 때문에, 앞을 모른 채 여러 토큰을 동시에 찍으면 서로 아귀가 안 맞는 경우가 종종 있습니다. 하지만 OCR은 조금 다릅니다. 출력 되어야하는 텍스트는 이미 입력된 이미지로 결정되어 있기 때문입니다. 예를 들어, 계산서에서 “매출” 다음에 올 숫자는 앞 문맥이 아니라 이미지에 이미 적혀 있습니다. 실제로 저희가 변환한 모델의 diffusion 초안은 AR 디코더와 라운드당 평균 19토큰 연속으로 일치합니다 — 많은 토큰이 시각적 증거만으로 결정된다는 뜻입니다.

그런데 왜 diffusion만으로는 불안한가

하지만 아쉽게도 토큰 간 의존성에서 완전히 자유롭지는 못한 듯합니다. 같은 스텝에 예측되는 토큰들은 서로의 새 값을 조건으로 삼을 수 없기 때문입니다.

실제 실패 사례에서 이 문제가 잘 드러납니다 (Figure 2). 어떤 문장을 디코딩하다가 “commercial”(.70)과 “enter”(.79)가 같은 스텝에 confidence threshold를 넘겨 함께 커밋됐는데, 그 사이에 있어야 할 “vehicles”의 자리가 사라졌습니다. 같은 스텝에 줄 끝의 “the”(.79)도 커밋됐는데, 다음 스텝에서 남은 문맥이 “…according to the”로 풀리면서 “to the the”라는 중복이 만들어졌습니다. 같은 가중치의 AR 디코더는 이 영역을 정확히 전사합니다.

병렬 diffusion 커밋으로 vehicles가 누락되고 the가 중복되는 실패 사례
Figure 2. 병렬 커밋의 실패 사례 (confidence threshold 0.7). 같은 스텝에 커밋된 토큰들은 서로를 조건으로 삼지 못해 'vehicles'가 누락되고 'the'가 중복됩니다. 같은 가중치의 AR 디코더는 이 영역을 정확히 전사합니다.

이런 오류가 쌓이면 어떻게 될까요? 같은 체크포인트를 diffusion만으로 디코딩하면 OmniDocBench[10] 기준 threshold를 느슨하게(0.7) 잡을 때 86.17점(tokens/forward 9.59), 보수적으로(0.99) 잡으면 93.23점(tokens/forward 5.40)입니다. 즉 threshold로 정확도와 병렬성을 맞바꾸는 구조입니다. 뒤에서 보겠지만 검증을 붙인 self-speculation은 같은 가중치로 95.16점을 tokens/forward 9.60에 냅니다 — 두 축 모두에서 앞서므로, 같은 forward 예산이라면 검증에 쓰는 편이 낫습니다.

Diffusion으로 초안을 쓰고 AR로 검증한다

그래서 diffusion은 제안용으로만 씁니다. 최근의 AR–diffusion hybrid decoder들[6][7]과 같은 계열의 접근입니다.

출발점으로 GLM-OCR을 고른 이유는 이렇습니다. 크기가 작으면서도 성능이 좋고, 무엇보다 MTP를 이미 지원해서 저희 방식과 같은 무대에서 정확도와 속도를 나란히 비교하기 좋은 baseline이라고 봤습니다.

먼저 GLM-OCR 모델을 fine-tune해서, 하나의 모델이 AR과 block diffusion 두 방식 모두로 디코딩할 수 있게 변환합니다.

학습은 하나의 시퀀스에서 두 가지 뷰를 만들어 함께 학습합니다.

이미지와 프롬프트는 항상 clean하게 유지됩니다. Diffusion과 AR 두가지 view 모두 하나의 backbone과 LM head를 통합니다. Drafter만을 위한 별도의 파라미터가 존재하지 않는 셈이죠 — 마스크 토큰 embedding이 (기존에 없었다면) 추가되는 것이 전부입니다.

clean sequence와 corrupted stream 두 뷰의 attention mask 구성도
Figure 3. 학습 attention 구성. clean stream은 token-level causal attention으로 AR loss를 유지하고 corrupted stream은 블록 내부만 bidirectional하게 보며 이전 문맥은 clean stream을 참조합니다.

그림을 왼쪽부터 차근차근 따라가봅시다. Clean sequence는 이미지와 프롬프트 뒤에 정답 토큰이 그대로 놓인 스트림으로, 왼쪽만 보는 causal attention 위에서 모든 위치에 AR loss가 걸립니다. 기존 AR 학습과 동일하게 말이죠. 가운데와 오른쪽의 두 개의 corrupted stream은 같은 시퀀스를 마스킹 비율 tt1t1-t로 각각 가린 것입니다. 한쪽에서 가린 자리는 다른 쪽에서 남고, loss는 가려진 자리에만 걸리므로 (나머지는 no loss) 두 스트림을 합치면 모든 응답 토큰이 정확히 한 번씩 diffusion supervision을 받습니다.

오른쪽 행렬이 “누가 누구를 보는가”입니다. 파란 칸은 clean 스트림 내부의 causal attention, 주황 칸은 corrupted 블록 안의 bidirectional attention, 분홍 칸은 corrupted 블록이 앞선 clean 블록을 참조하는 부분입니다. 비어 있는 칸이 핵심인데, clean 스트림은 corrupted 쪽을 전혀 보지 않고 (그래서 AR 경로가 마스크에 오염되지 않습니다) corrupted 블록도 자기 블록과 같은 위치의 clean 토큰은 보지 못합니다 — 정답이 그대로 새는 걸 막기 위해서입니다. 세 스트림 모두 같은 decoder와 LM head를 한 forward 안에서 통과합니다.

추론은 다음 두 forward의 반복입니다 (블록 크기 B=32B{=}32).

  1. Draft: 커밋된 prefix 뒤에 마스크 BB개를 붙여 bidirectional forward 한 번 → 블록 전체의 초안 d1:Bd_{1:B}
  2. Verify: 같은 prefix에 causal forward 한 번으로 AR 예측 a1:Ba_{1:B}를 얻고, ddaa가 일치하는 가장 긴 prefix를 커밋 + 첫 불일치 위치에는 AR 검증자의 토큰을 공짜로 커밋
diffusion draft와 causal verify 두 forward로 이루어진 self-speculative 디코딩 한 라운드
Figure 4. Draft–verify 한 라운드. 수락된 토큰은 정확히 AR 경로 위에 있으므로 KV cache도 그대로 유효하며 bidirectional draft 뷰는 캐시되지 않습니다.

검증을 통과한 드래프트의 출력은 이 체크포인트의 AR 디코딩과 정확히 일치합니다 (greedy 기준 byte 단위 동일성을 실제로 확인했고 sampling에서도 speculative rejection rule[9]이 분포를 보존합니다). 검증이 고치는 것은 AR의 분포와 어긋나는 드래프트입니다: 불일치한 제안을 커밋하는 대신 거절하고 AR 경로의 토큰을 대신 추가합니다. 그래서 draft가 틀리면 출력이 나빠지는 게 아니라, 수락되는 토큰 수가 줄어들어 전체 디코딩 속도가 느려지게 됩니다.

한 라운드가 실제로 어떻게 도는지는 짧은 예시로 보는 편이 빠릅니다. 블록 크기를 4로 줄여 밈 한 장을 전사해보면 이렇습니다.

블록 크기 4의 draft-verify-commit 3라운드 애니메이션. forward 6번으로 12토큰을 커밋합니다.
Figure 5. 오씨알 (OCR) 예시. 블록 크기 4로 축소한 self-speculative 디코딩. 2라운드에서 draft가 틀리지만 그 자리는 AR 검증자의 토큰으로 바뀌므로 출력은 AR 디코딩과 동일하고, 줄어드는 것은 그 라운드에서 커밋되는 토큰 수뿐입니다.

여기까지가 저희 방식입니다. 결과를 보기 전에, OCR 디코딩을 빠르게 하는 접근들을 한 번 정리해보겠습니다. 여러 토큰을 한 번에 제안한다는 점은 같고, 누가 제안하고 누가 확정하는가에서 갈립니다.

방식대표 사례초안을 쓰는 주체검증추가 파라미터
별도 drafter + verifierHunyuanOCR-1.5 + DFlash별도 모델본 모델이 검증90.7M drafter
Multi-Token PredictionGLM-OCR본 모델의 예측 head 여러 개없음 (그대로 커밋) 혹은 MTP로 초안 작성, main LM head로 검증MTP head
Self-Speculative DecodingOurs본 모델의 diffusion 경로본 모델의 AR 경로가 검증거의 없음 (임베딩 레이어에 ‘MASK’ 토큰 추가)
새끼를 주머니에 넣고 다니는 캥카로 표현한 별도 drafter와 verifier

별도 drafter + verifier — 초안 담당과 검증 담당이 서로 다른 모델입니다. 빠르지만 모델을 하나 더 학습하고, 서빙하고, 본 모델과 계속 발 맞춰야 합니다.

머리가 셋 달린 나시 캐릭터로 표현한 multi-token prediction head

Multi-Token Prediction — 머리(head)를 여러 개 달아 한 번에 여러 토큰을 예측합니다. 뽑은 토큰을 그대로 쓰거나, MTP head가 쓴 초안을 main LM head로 검증하는 방식으로도 씁니다.

한 사람 안의 두 인격으로 표현한 self-speculative decoding

Self-Speculative Decoding — 한 모델 안의 두 인격입니다. diffusion 인격이 초안을 쓰고 AR 인격이 검토합니다.

결과

품질과 속도. 품질은 OmniDocBench v1.6 (1,651 페이지, 공식 프로토콜), 속도는 동일한 영어 OmniDocBench 페이지셋을 H100 1장, 단건(single-stream) 서빙으로 측정한 pages/s입니다. 공개 모델은 전부 동일 조건에서 직접 재측정했고 tokenizer가 제각각이라 cross-model 속도 비교 축은 tok/s가 아닌 pages/s를 씁니다.

ModelDecodeOverall↑pages/s↑
MinerU2.5-Pro (1.2B)AR95.570.399
HunyuanOCR-1.5AR95.520.313
HunyuanOCR-1.5+DFlash0.579
GLM-OCR (base, 0.9B)AR95.480.571
GLM-OCR (base, 0.9B)MTP0.472
PaddleOCR-VLAR94.860.389
MinerU-Diffusiondiffusion89.870.059
Ours (0.9B)self-spec95.160.781

품질 최상위권(95점대)의 모델 중 저희 모델이 가장 빠른 것을 보실 수 있습니다! 특히 두 개의 speculative baseline과의 비교가 흥미로운데, 같은 모델의 내장 MTP는 출력 캡을 풀고 재면 오히려 plain AR보다 느리고(0.472 vs 0.571), 외부 drafter를 쓰는 HunyuanOCR-1.5+DFlash(0.579)보다도 저희가 앞섭니다. 단, HunyuanOCR은 레이아웃 단계가 없는 full-page 모델이라 파이프라인 경계가 달라 직접 비교에는 주의가 필요합니다.

모델 dLLM 변환 후 변환 전 대비 약 −0.32점의 벤치마크 점수 저하가 있습니다. 도메인별로 보면 텍스트(edit 0.040)와 읽기 순서는 동률이고, 표에서 대부분의 격차가 발생한 것을 알 수 있습니다(TEDS 0.928 vs 0.934).

디코딩 자체는 얼마나 빨라졌나? 같은 체크포인트로 AR과 self-spec을 SGLang에서 비교하면 (H100 1장, batch 1, 영어 OmniDocBench GT crop 8,922개 전수, 출력 캡 없음):

Decodetok/s (decode-only)tok/s (end-to-end)speedup
AR739442
self-spec28468163.85× / 1.85×

여기서 decode-only는 crop당 고정 비용(vision encode + prefill)을 제외하고 토큰 생성 구간만 측정한 값이고 end-to-end는 고정 비용까지 포함한 전체 요청 시간 기준입니다. speculation이 빨라지는 건 디코딩 구간뿐이라 end-to-end 배율은 고정 비용만큼 희석됩니다. 라운드당 forward 2번(draft+verify)에 평균 약 19토큰이 커밋되어 모든 forward를 분모에 넣은 tokens/forward는 9.6입니다. 위 표의 페이지 단위 서빙(레이아웃 + 리전 동시 처리 포함)에서 0.581 → 0.781 pages/s, 즉 1.34배가 나오는 것도 같은 희석의 결과입니다.

어떠한 구간에서 드래프트가 잘되는가? 문법이 강하게 제약된 토큰일수록 draft가 한 번에 잘 그려집니다. 블록당 수락 길이는 table 25.4 > formula 20.7 > 자유 텍스트 16.9 순서입니다. 게다가 표는 출력 자체가 길어서(crop당 평균 888토큰 vs 텍스트 74토큰) 고정 비용이 잘 희석되고, 그 결과 속도 이득도 표 3.50배 > 수식 1.93배 > 텍스트 1.65배로 갈립니다. 실제로 출력 길이 1,024토큰이 넘는 crop에서는 3.68배까지 나옵니다 — 다만 전체 crop의 5분의 4는 128토큰 미만의 짧은 조각이라, 평균은 1.85배로 수렴합니다.

Speculation은 GPU가 놀 때 가장 이득입니다. batch를 키우면 AR도 GPU를 채우기 시작해서 self-spec의 이점은 batch 1의 1.85배에서 두 방식 각각의 최대 처리량끼리 비교하면 1.08배까지 줄어듭니다 (Figure 6). 지연 시간이 중요한 단건 서빙일수록 speculation의 가치가 커집니다.

batch size별 AR과 self-spec의 tok/s 곡선. batch 1에서 1.85배, 포화점에서 1.08배
Figure 6. Batch size에 따른 처리량 (SGLang, H100 1장). 두 곡선 모두 OOM이 아니라 포화로 끝나며 batch가 커질수록 수렴합니다 — speculation의 이득은 GPU가 유휴일 때 가장 큽니다.

Draft는 한 번이면 충분합니다. 원래 diffusion 디코딩은 forward 한 번으로 확신 높은 위치만 채우고, 채워진 상태를 문맥 삼아 다시 forward하는 식으로 블록을 여러 denoising 스텝에 걸쳐 정제합니다. 저희 구조에서도 draft를 이렇게 다듬은 뒤 verify에 넘길 수 있는데, 실제로 재보면 스텝을 늘릴수록 수락 길이는 18.7에서 24.7까지 올라가지만 거기에 쓰는 forward가 더 빨리 늘어서 tokens/forward는 단조 감소합니다 (블록당 draft forward 1번인 one-shot 9.00 vs 4-step 6.93). OCR에서는 한 번에 그린 초안이 이미 충분히 좋아서, 초안을 다듬을 forward가 있으면 다음 라운드를 도는 편이 이득입니다.

학습 과정에서도 눈에 띈 점도 두 가지 정도만 짚고 넘어가겠습니다. 먼저 AR loss는 사실상 일석이조입니다. diffusion 품질이나 병렬성을 희생하지 않으면서도 같은 가중치 위에 self-speculative 경로를 추가할 수 있었습니다. 뿐만 아니라 오히려 AR loss를 auxillary loss로 활용했을 때 diffusion decoding의 성능도 잘 오르는 것을 확인했습니다.

두 번째는 마스킹 방식입니다. 직관적으로는 draft 단계에서 블록 전체를 한 번에 채워야 하므로, 블록을 통째로 마스킹해 학습하는 방식이 더 잘 맞을 것처럼 보입니다. 하지만 실제 결과는 반대였습니다. 여러 마스킹 비율을 섞어 학습한 block diffusion 방식이 더 좋은 결과를 보였습니다.

마치며

OCR 작업의 특성을 짚어보면, 이미지 안에 이미 명확한 단서가 들어 있어 표나 수식 같은 영역은 굳이 한 글자씩 순차적으로 만들 필요가 없습니다. 대부분은 병렬로 시원하게 밀어붙여도 충분하죠. 문제는 문맥 파악이 필수적인 소수의 까다로운 구간입니다.

이번 시도의 핵심은 이 지점을 Diffusion의 빠른 병렬 생성(Draft)과 AR의 꼼꼼한 검증(Verification) 조합으로 푼 것입니다. 순수 diffusion만 썼을 때 정확도를 위해 포기해야 했던 병렬성(5.40 tokens/forward, 93.23점)을, AR 검증을 덧붙임으로써 정확도 손실 없이 높은 처리 효율(9.60 tokens/forward, 95.16점)로 끌어올렸습니다. 특히 별도 모델 없이 단 하나의 체크포인트로 생성과 검증을 끝낼 수 있다는 점이 꽤 매력적인 장점입니다.

본 프로젝트에 관한 더 자세한 내용은 곧 공개할 Technical Report를 참고해주세요! 모델과 코드도 함께 공유 예정이니 기대해주셔도 좋을 것 같습니다. :)

References

[1] Shuaiqi Duan et al. GLM-OCR Technical Report. arXiv:2603.10910 . 0.9B 문서 파싱 모델로, 10-token MTP head를 내장해 스텝당 평균 5.2토큰을 생성합니다.

[2] HunyuanOCR-1.5: Making Lightweight OCR VLMs Faster and Better. arXiv:2607.04884 . 90.7M 규모의 외부 block-diffusion drafter(DFlash)로 OCR 디코딩을 가속합니다.

[3] DODO: Discrete OCR Diffusion Models. arXiv:2602.16872 

[4] MinerU-Diffusion: Rethinking Document OCR as Inverse Rendering via Diffusion Decoding. arXiv:2603.22458 

[5] Shen Nie et al. Large Language Diffusion Models (LLaDA). arXiv:2502.09992 

[6] Nemotron-Labs-Diffusion: A Tri-Mode Language Model Unifying Autoregressive, Diffusion, and Self-Speculation Decoding. arXiv:2607.05722 

[7] Fast-dVLM: Efficient Block-Diffusion VLM via Direct Conversion from Autoregressive VLM. arXiv:2604.06832 . AR VLM을 block diffusion으로 직접 변환하고 self-speculative decoding을 적용한, 방법론적으로 가장 가까운 선행 연구입니다.

[8] Marianne Arriola et al. Block Diffusion: Interpolating Between Autoregressive and Diffusion Language Models. arXiv:2503.09573 . AR 모델 기반의 효율적 변환 레시피는 Fast-dLLM v2 (arXiv:2509.26328)  참고.

[9] Yaniv Leviathan et al. Fast Inference from Transformers via Speculative Decoding. arXiv:2211.17192 

[10] OmniDocBench — 문서 파싱 표준 벤치마크. v1.6은 1,651페이지 공식 릴리스이며, 본문 점수는 모두 공식 프로토콜의 Overall 지표입니다. MinerU2.5-Pro (arXiv:2604.04771) 가 정의한 최신 프로토콜을 따릅니다.

2026 © Trillion Labs.RSS