tiiuae/Falcon-Perception
Inference repo for Falcon-Perception and Falcon-OCR model, early-fusion, natively multimodal, dense Autoregressive Transformer models.
Falcon‑Perception – 다중 모달 시각-언어 모델
무엇인가요 – Falcon Perception을 위한 경량 오픈소스 PyTorch(또는 Apple‑Silicon MLX) 추론 라이브러리입니다. 자연어 질의를 기반으로 객체 탐지, 인스턴스 세그멘테이션, OCR을 수행할 수 있는 밀집형 자동회귀 트랜스포머입니다. 리포지토리는 모델 가중치(Hugging Face 경유), 고도로 최적화된 추론 엔진, REST 서버, 시각-언어 작업 사용법을 보여주는 여러 노트북을 포함합니다.
왜 중요한가요 – Falcon Perception은 객체 탐지, 인스턴스 세그멘테이션, 광학 문자 인식(OCR)이라는 세 가지 전통적인 컴퓨터 비전 문제를 하나의 언어 조건부 모델로 통합합니다. 270 M 파라미터의 Falcon OCR 1.5 버전은 훨씬 더 큰 VLM과 동등한 엔드투엔드 OCR 품질을 제공하면서도 크기가 약 3배 작아 실시간 또는 엣지 배포에 실용적입니다.
주요 구성 요소
| 구성 요소 | 기능 |
|---|---|
| PyTorch 페이지 기반 추론 엔진 | FlexAttention, CUDA-그래프 캡처, 가상 페이지 KV 캐시를 사용하여 최소 지연으로 지속적인 배치 처리를 구현(예: H100에서 프리필 약 100 ms, 업샘플링 200 ms, 디코딩 50 ms). |
| 페이지 기반 OCR 엔진 | 가벼운 레이아웃 검출기(PP‑DocLayoutV3)와 영역별 OCR을 추가하되, 동일한 페이지 기반 KV 캐시를 사용해 고처리량 유지. |
| 배치 엔진 | 디버깅 또는 학습 전방전파 재현에 유용한 간단한 왼쪽 패딩 배치 추론. |
| MLX 엔진 | 동일한 모델을 MLX 프레임워크로 변환하여 PyTorch/transformers 의존성 없이 Apple‑Silicon 맥에서 배치 추론 가능. |
| 추론 서버 | FastAPI 기반 REST 서비스로 GPU당 하나의 엔진을 실행(데이터 병렬)하고, 인터랙티브 데모용 Streamlit UI를 제공. |
| vLLM Docker 이미지 | Falcon‑OCR 전용 사전 빌드 컨테이너로 OpenAI 호환 API 지원, 엔드투엔드 및 레이아웃+OCR 파이프라인 모두 가능. |
| 노트북 | 인식, OCR, VLM 오케스트레이션 기반 인식 에이전트, 오픈 박스 다중 객체 추적을 위한 단계별 Colab 노트북. |
빠른 시작 (소스에서)
# 복제 및 설치 (백엔드 자동 감지)
git clone https://github.com/tiiuae/Falcon-Perception.git
cd Falcon-Perception
pip install -e . # Linux에서는 PyTorch, macOS에서는 MLX
# 또는 명시적으로 백엔드 선택
pip install -e "[torch]" # CUDA GPU
pip install -e "[mlx]" # Apple Silicon
패키지에는 선택적 추가 기능 포함: ocr (레이아웃 검출기 추가), dev (tensorboard, matplotlib, ipykernel), server (FastAPI & Uvicorn).
모델 실행 방법
1. 인식 (탐지 / 세그멘테이션)
# GPU 예제 – 모델 및 샘플 이미지 자동 다운로드
python demo/perception_single.py
# 사용자 정의 이미지 / 질의
python demo/perception_single.py --image myphoto.jpg --query "cat on the left"
# 경계 상자만 (마스크 없음)
python demo/perception_single.py --task detection
2. OCR (텍스트 추출)
# 엔드투엔드 OCR (기본값, 대부분의 문서에서 작동)
python demo/ocr_single.py --image doc.png
# 레이아웃 인식 OCR (밀집된 다중 열 페이지용)
python demo/ocr_single.py --task ocr_layout # [ocr] 추가 기능 필요
3. 배치 / 페이지 처리
# PBench 데이터셋에서 벤치마크 (HF에서 50개 샘플 스트리밍)
python demo/perception_benchmark.py
# OCRBench‑v2 전체 벤치마크
python demo/ocr_benchmark.py
4. 서버 및 UI
# 다중 GPU REST 서버 시작
python -m falcon_perception.server --config.num-gpus 2 --config.port 7680
# 다른 터미널에서 Streamlit 데모 UI 실행
streamlit run demo/streamlit_app.py
UI를 통해 이미지 업로드, 작업 선택, 경계 상자, 마스크, OCR 출력 시각화 및 시간 정보 확인 가능.
vLLM (Docker)로 Falcon‑OCR 배포
# 공식 이미지 다운로드 및 1~2개 GPU에서 실행
docker run -d --name falcon-ocr \
--gpus "'device=0,1'" \
-e EXPOSED_GPU_IDS=0,1 -e VLLM_GPU=0 -e PIPELINE_GPU=1 \
-p 8000:8000 -p 5002:5002 ghcr.io/tiiuae/falcon-ocr:latest
API 예시 (엔드투엔드 OCR)
curl -X POST http://localhost:5002/falconocr/parse \
-H "Content-Type: application/json" \
-d '{"images": ["data:image/jpeg;base64,<...>"]}'
A100‑80GB에서 전체 레이아웃+OCR 파이프라인 실행 시 약 5,800토큰/초, 약 2.9이미지/초의 처리량 보고.
누구에게 적합한가요?
- 연구자 – 탐지, 세그멘테이션, OCR에 사용할 수 있는 컴팩트하고 오픈소스 기준 모델을 탐색하는 사람.
- 개발자 – "왼쪽의 고양이를 세그멘테이션"과 같은 언어 조건부 시각적 추론이 필요한 애플리케이션을 개발하는 사람.
- 배포자 – 단일 GPU에서 고처리량 OCR을 제공할 수 있는 프로덕션 준비 서버(FastAPI 또는 vLLM Docker)를 찾는 사람.
- Apple‑Silicon 사용자 – PyTorch 설치 없이 맥에서 동일한 모델을 실행하고 싶은 사람.
인용
Falcon‑Perception을 논문에 사용할 경우, arXiv 기술 보고서를 인용해 주세요:
@article{bevli2026falcon,
title = {Falcon Perception},
author = {Bevli, Aviraj and Chaybouti, Sofian and Dahou, Yasser and Hacid, Hakim and Huynh, Ngoc Dung and Le Khac, Phuc H. and Narayan, Sanath and Para, Wamiq Reyaz and Singh, Ankit},
journal = {arXiv preprint arXiv:2603.27365},
year = {2026},
url = {https://arxiv.org/abs/2603.27365}
}
감사의 말
본 프로젝트는 PyTorch Titan, Flex‑Attention, Moondream, AnyUp 및 여러 오픈소스 비전 라이브러리(Roboflow 트래커 등)의 작업을 기반으로 합니다.
관련
- Dispatch
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트