Tencent-Hunyuan/HunyuanOCR
HunyuanOCR-1.5: Making Lightweight OCR VLMs Faster and Better
HunyuanOCR‑1.5 – 가벼운 OCR 전용 시각 언어 모델
무엇인가요
- 이미지 내 텍스트를 읽을 수 있으며, 문서 구문 분석, 정보 추출, 표 분석, 텍스트-이미지 번역도 수행할 수 있는 엔드투엔드 시각 언어 모델(VLM). 이전의 HunyuanOCR‑1.0을 기반으로 하며, DFlash 사전 추론을 통한 빠른 추론과 llama.cpp를 통한 PC 기반 간편 배포라는 두 가지 주요 업그레이드를 추가했습니다.
핵심 아이디어 및 기능
| 기능 | 중요성 |
|---|---|
| DFlash 사전 추론 | 가벼운 "드래프트" 모델이 병렬로 여러 후보 토큰을 예측하고, 메인 모델이 한 번의 패스로 검증함으로써, 밀도 높은 문서, 표, 수식의 긴 자기회귀 추론 병목을 줄이며 동일한 출력 분포를 유지합니다. |
| 통합 추론 환경 | CUDA 13을 기반으로 한 uv 기반 환경을 통해 동일한 가중치와 프롬프트로 세 가지 구성(일반 vLLM 자기회귀, DFlash 가속, 네이티브 HuggingFace Transformers)을 실행할 수 있어 벤치마킹이 간편합니다. |
| llama.cpp를 통한 PC 기반 배포 | 모델(및 DFlash 드래프트)을 GGUF로 변환하여 CPU, 소비자용 GPU, 노트북 하드웨어에서 OpenAI 호환 llama-server로 제공할 수 있습니다. |
| 에이전트 기반 데이터 흐름 | 모델의 약점을 타겟 데이터 생성 작업(예: 저자원 스크립트, 고대 중국어 문자, 다중 이미지 QA)으로 전환하는 내부 파이프라인. 이 데이터는 다시 트레이닝 레시피에 피드백됩니다. |
| 대규모 컨텍스트 및 해상도 | 최대 4K 이미지 해상도와 128K 토큰 컨텍스트 창을 지원하여 긴 문서 및 다중 페이지 추론이 가능합니다. |
| 광범위한 벤치마크 | CHAOS‑Bench, Chronicles‑OCR, ChartArena, Wild‑OmniDocBench, MMTIT‑Bench 등 커뮤니티 수준의 벤치마크를 리포지토리에 포함하여 환각, 고대 스크립트 OCR, 차트 분석 등을 평가할 수 있습니다. |
일반적인 사용 사례
- 스캔된 문서, 학술 논문, 계약서, 역사적 문헌의 디지털화.
- 이미지에서 구조화된 정보(표, 양식)를 직접 추출.
- 다국어 간 OCR 기반 질의 응답 또는 번역 수행.
- llama.cpp 경로 덕분에 보통 하드웨어(노트북/CPU)에서도 실행 가능.
시작하기 (개요)
- 통합 추론 환경 설정 (Python 3.12 및 CUDA 13 필요):
pip install uv uv venv --python 3.12 && source .venv/bin/activate uv pip install "vllm>=0.25.1" "flash-attn==2.8.3" - HuggingFace에서 모델 다운로드:
pip install -U "huggingface_hub[cli]" huggingface-cli download tencent/HunyuanOCR --local-dir ./HunyuanOCR --exclude "v1.0/*" - 빠른 서버 실행 (vLLM 자기회귀, 단일 GPU):
MODEL_PATH=./HunyuanOCR GPU=0 PORT=8000 bash inference/vLLM/serve.sh - 이미지 전송 (문서 분석 예제):
python inference/vLLM/infer_vllm_client.py \ --image /path/to/doc.png \ --task-type doc_parse \ --model tencent/HunyuanOCR \ --port 8000 --max-tokens 32768doc_parse를--list-tasks로 확인 가능한 12개의 지원 태스크 유형 중 하나로 교체하세요. - 선택적 DFlash 가속 –
inference/DFlash/serve_DFlash.sh스크립트 사용. 동일한 클라이언트가 그대로 작동합니다. - PC 기반 배포 – 제공된
convert_hf_to_gguf.py스크립트로 체크포인트를 GGUF로 변환하고,docs/llama_cpp.md에 설명된 대로llama.cpp로 제공.
트레이닝 (微조정 또는 확장 원할 경우)
scripts/pack_data.sh파이프라인으로 원시 OCR JSONL 파일을 긴 시퀀스(최대 20,480 토큰)로 패킹.- 베이스 모델에서 교사 기반 미세조정 실행 (
scripts/sft_base.sh). - 새 DFlash 드래프트를 처음부터 트레이닝 (
scripts/sft_dflash.sh) 또는 기존 드래프트를 계속 미세조정 (scripts/sft_dflash_finetune.sh). - 모든 스크립트는 표준
NNODES,MASTER_ADDR등을 통한 멀티노드 분산 트레이닝을 지원하며, PyTorch 2.1+, DeepSpeed, Flash‑Attention에 의존합니다.
문서 및 추가 읽기
docs/training.md– 상세한 하이퍼파라미터 및 분산 설정.docs/inference/inference.md– 완전한 추론 레시피, 태스크 유형 표, 멀티GPU 가이드.docs/llama_cpp.md– 소비자 하드웨어에서의 변환 및 제공 절차 단계별 설명.- 벤치마크 설명은
benchmarks/CHAOS-Bench및 링크된 arXiv 논문에 있음.
인용 HunyuanOCR‑1.5를 연구에 사용할 경우, README에 포함된 arXiv 논문(2026)을 인용해 주세요.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 추가되지 않았습니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트