DeepSeek-OCR 2: 스타트업을 위한 고성능 문서 OCR 엔진 이해하기

핵심 요약
DeepSeek-OCR 2는 이미지·PDF 문서를 마크다운 등 구조화 텍스트로 변환해주는 시각·언어 통합 OCR 모델이다.
vLLM과 Hugging Face Transformers 두 방식으로 추론을 지원하며, 대량·실시간 문서 처리 워크플로에 바로 붙이기 좋은 형태로 설계되어 있다.
단순 문자 인식이 아니라 레이아웃과 구조까지 최대한 보존하는 "문서 이해형 OCR"에 가깝다.
DeepSeek-OCR 2가 무엇인지 한눈에 보기
DeepSeek-OCR 2는 단순히 글자를 읽는 OCR이 아니라, 문서 전체를 이해하고 "사람이 정리한 것 같은 결과"를 내는 비전-언어 모델이다.
이미지나 PDF를 입력하면, 표·목차·헤더·본문 등 레이아웃 구조를 고려해 마크다운 형태로 뽑아내는 것을 목표로 한다.
연구 관점에서는 "Visual Causal Flow"라는 새로운 시각 정보 처리 방식을 제안하고, 실사용 관점에서는 기존 DeepSeek-OCR 대비 속도·정확도·레이아웃 보존을 개선한 후속 버전이다.
아키텍처 감각 잡기: 인간형 시각 인코딩 지향
DeepSeek-OCR 2는 이미지를 일정 크기 패치로 나눠 토큰처럼 처리하고, 텍스트 토큰과 함께 언어 모델에 넣는 구조를 따른다.
문서 곳곳을 동일 해상도로 자르는 대신, 중요해 보이는 영역을 더 정교하게 보고 덜 중요한 영역은 거칠게 보는 식의 동적 해상도를 사용해 효율을 높인다.
이 접근은 사람이 문서를 볼 때 중요한 부분을 먼저 보고, 필요하면 확대해 세부를 보는 방식과 유사해 "사람스러운 시각 인코딩"을 지향한다.
지원 모드: 동적 해상도와 토큰 전략
DeepSeek-OCR 2는 기본적으로 여러 개의 768×768 패치와 하나의 1024×1024 큰 패치를 조합해 이미지를 인코딩한다.
문서에 따라 0~6개의 768 패치와 1개의 1024 패치를 사용하고, 이를 시각 토큰으로 변환해 언어 모델로 넘기는 식이다.
이 설계 덕분에 A4 한 장짜리 문서부터 긴 보고서의 한 페이지까지, 해상도와 토큰 수를 유연하게 조절하면서도 품질을 유지한다.
설치 환경과 의존성 이해하기
저장소 기준 환경은 CUDA 11.8과 PyTorch 2.6.0이며, Python 3.12.9를 conda로 별도 가상환경으로 구성하는 것을 권장한다.
핵심 패키지는 torch, torchvision, torchaudio, vLLM 0.8.5, flash-attn 2.7.3, 그리고 requirements.txt에 정의된 기타 라이브러리다.
vLLM이 transformers 최신 버전을 요구하면서 설치 에러 메시지가 나올 수 있지만, vLLM·Transformers를 같은 환경에서 쓰려면 이 경고는 크게 신경 쓰지 않아도 된다.
vLLM 기반 추론: 대량 처리·서버 사이드용
vLLM 모드는 고성능 서버에서 많은 문서를 빠르게 처리하는 상황에 최적화되어 있다.
저장소 내 DeepSeek-OCR2-master/DeepSeek-OCR2-vllm 폴더에서 설정을 바꾸고, 이미지·PDF·벤치마크용 스크립트를 각각 실행하는 구조다.
예를 들어 이미지 스트리밍 출력용 스크립트는 run_dpsk_ocr2_image.py, PDF 동시 처리용은 run_dpsk_ocr2_pdf.py, 벤치마크용 배치 평가는 run_dpsk_ocr2_eval_batch.py로 나뉜다.
스타트업 관점에서는 "내부 문서 대량 OCR 서버"나 "SaaS 백엔드 배치 처리"에 적합한 모드라고 보면 된다.
Transformers 기반 추론: 빠른 프로토타입·제품 내 임베딩
Hugging Face Transformers 모드는 deepseek-ai/DeepSeek-OCR-2 모델을 바로 불러와 사용할 수 있도록 제공된다.
기본 예시는 토크나이저와 모델을 로드하고, <image> 토큰과 함께 프롬프트를 넣어 model.infer를 호출하는 형태다.
from transformers import AutoModel, AutoTokenizer
import torch, os
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
model_name = 'deepseek-ai/DeepSeek-OCR-2'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
_attn_implementation='flash_attention_2',
trust_remote_code=True,
use_safetensors=True
).eval().cuda().to(torch.bfloat16)
prompt = "<image>n<|grounding|>Convert the document to markdown. "
image_file = 'your_image.jpg'
output_path = 'your/output/dir'
res = model.infer(
tokenizer,
prompt=prompt,
image_file=image_file,
output_path=output_path,
base_size=1024,
image_size=768,
crop_mode=True,
save_results=True
)준비된 스크립트로 실행하고 싶다면 DeepSeek-OCR2-master/DeepSeek-OCR2-hf 폴더의 run_dpsk_ocr2.py를 그대로 활용하면 된다.
제품 내에 바로 박아서 PoC를 돌려보고 싶다면, Transformers 모드가 가장 빠른 진입로다.
핵심 프롬프트: "문자만" vs "문서 그대로"
DeepSeek-OCR 2의 성격상 프롬프트 설계가 출력 품질에 직접적인 영향을 준다.
문서 구조를 최대한 살려내고 싶다면 <image>n<|grounding|>Convert the document to markdown. 형태를 쓰는 것이 기본이다.
표, 제목, 리스트 등을 신경 쓰지 않고 글자만 필요하다면 <image>nFree OCR.처럼 단순 프롬프트를 사용하면 된다.
실제 서비스에서는 두 모드를 옵션으로 제공해, "구조 보존형 추출"과 "텍스트-only 추출"을 유저가 선택하게 만드는 것도 가능하다.
벤치마크·라이선스·생태계 포지션
DeepSeek-OCR 2는 OmniDocBench 같은 공개 벤치마크에서의 성능 평가를 염두에 두고 배치 평가 스크립트를 제공한다.
관련 생태계로는 1세대 DeepSeek-OCR, GOT-OCR2.0, MinerU, PaddleOCR 등 다양한 오픈소스 OCR 프로젝트가 언급되며, 이들과 비교해 "문서 이해+속도" 균형을 겨냥한 모델이라고 볼 수 있다.
라이선스는 Apache-2.0이어서, 대부분의 상업적 활용에 제약이 적고, 스타트업 제품에 통합하기에도 부담이 적다.
인사이트
문서 기반 비즈니스(계약서, 인보이스, 리포트, 스캔 문서 등)를 다루는 스타트업이라면, DeepSeek-OCR 2는 "전처리 인프라"를 대폭 단순화해 줄 수 있는 도구다.
초기에는 Hugging Face 모드로 간단한 CLI·API 프로토타입을 만들어 내부 워크플로에 붙여 보고, 처리량이 늘면 vLLM 기반 전용 OCR 서버로 확장하는 전략이 합리적이다.
경험적으로 가장 중요한 건 모델 자체보다 "어떤 프롬프트·해상도·자르기 전략으로 어떤 형식의 결과를 일관되게 뽑아낼지" 설계하는 부분이므로, 샘플 문서 세트를 정해두고 실험·템플릿을 고정하는 것을 추천한다.
출처 및 참고 : deepseek-ai/DeepSeek-OCR-2: Visual Causal Flow
@article{wei2025deepseek,
title={DeepSeek-OCR: Contexts Optical Compression},
author={Wei, Haoran and Sun, Yaofeng and Li, Yukun},
journal={arXiv preprint arXiv:2510.18234},
year={2025}
}
@article{wei2026deepseek,
title={DeepSeek-OCR 2: Visual Causal Flow},
author={Wei, Haoran and Sun, Yaofeng and Li, Yukun},
journal={arXiv preprint arXiv:2601.20552},
year={2026}
}한글의 경우 PaddleOCR VL 이 더 잘한다는 평가도 있다.
이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.