M1 Pro DeepSeek OCR 실험(실패) 기록
TL;DR
DeepSeek OCR을 macOS에서 시도했으나 transformers 라이브러리 호환성 문제로 실패. 대신 PaddleOCR과 Tesseract로 대체했고, 클라우드 사용을 권장함.
시도한 이유
기존 프로젝트에서 Tesseract, EasyOCR 사용 중이었음. DeepSeek OCR의 강점:
- Markdown 출력으로 문서 구조 보존
- 한글+영어 혼합 텍스트에 강함
- 최신 Vision-Language 모델
문제
1. 숨겨진 의존성
문서에 없는 패키지 필요:
pip install addict easydict matplotlib
2. Transformers 호환성 (치명적)
Error: cannot import name 'LlamaFlashAttention2'
- 최신 transformers 4.57.1과 호환 안 됨
- 구버전으로 다운그레이드해도 tokenizer 파싱 오류
- 결과: macOS에서 실행 불가 ❌
대안
PaddleOCR (실행 중)
- 한글 지원 우수
- MPS 미지원, CPU만 사용
- 23페이지에 20분+ 소요 (느림)
Tesseract (권장)
- 빠름 (~2-3초/페이지)
- 이미 구현되어 있음
- 안정적
Google Colab (DeepSeek 쓰고 싶다면)
!pip install transformers==4.46.3
model = AutoModel.from_pretrained('deepseek-ai/DeepSeek-OCR').cuda()
무료 GPU로 실행 가능
성능 비교
| 도구 | 속도 | 한글 | 출력 | 상태 |
|---|---|---|---|---|
| Tesseract | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | Text | ✅ |
| EasyOCR | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Text | ✅ |
| PaddleOCR | ⭐⭐ | ⭐⭐⭐⭐ | Text | ⏳ |
| DeepSeek | ⭐⭐ | ⭐⭐⭐⭐⭐ | Markdown | ❌ |
배운 점
- 최신 ≠ 최고 - 검증된 도구가 더 나을 수 있음
- TDD 유용 - 초기에 문제 발견해서 시간 절약
- 문서화 중요 - 실패도 학습 자료가 됨
- 의존성 명시 - requirements.txt에 버전 고정 필수
바로 쓸 수 있는 방법
DeepSeek 꼭 써보고 싶으면
- Google Colab에서 새 노트북
- GPU 런타임 선택
- PDF 업로드
- 결과 다운로드
참고: DeepSeek GitHub | Hugging Face
Member discussion