tiiuae/Falcon-Perception

Inference repo for Falcon-Perception and Falcon-OCR model, early-fusion, natively multimodal, dense Autoregressive Transformer models.

Falcon‑Perception – 多模態視覺-語言模型

是什麼 – 一個輕量級、開源的 PyTorch(及 Apple-Silicon MLX)推理庫,用於 Falcon Perception,這是一種密集的自回歸變換器,能根據自然語言查詢 檢測物件、分割實例或執行 OCR。倉儲包含模型權重(透過 Hugging Face 提供)、一組高度優化的推理引擎、REST 伺服器,以及多個示範如何使用該模型進行視覺-語言任務的筆記本。

為何重要 – Falcon Perception 將物件檢測、實例分割和光學字元辨識(OCR)這三個經典電腦視覺問題統一到一個語言條件模型中。270 M 參數的 Falcon OCR 1.5 變體在保持約 3 倍更小體積的同時,實現了與更大 VLM 相當的端到端 OCR 質量,使其適用於即時或邊緣部署。


主要元件

元件 功能
PyTorch 分頁推理引擎 使用 FlexAttention、CUDA 圖捕獲和虛擬頁 KV 快取,實現低延遲的連續批次處理(在 H100 上,預填約 100 ms,上採樣 200 ms,解碼 50 ms)。
分頁 OCR 引擎 加入輕量級版面檢測器(PP-DocLayoutV3)和區域 OCR,仍使用相同的分頁 KV 快取以實現高吞吐量。
批次引擎 簡單的左對齊批次推理,適用於除錯或重現訓練前向傳播。
MLX 引擎 相同模型轉換為 MLX 框架,可在 Apple-Silicon Mac 上無 PyTorch/transformers 依賴地進行批次推理。
推理伺服器 基於 FastAPI 的 REST 服務,每 GPU 啟動一個引擎(資料平行),並公開 Streamlit UI 用於互動式示範。
vLLM Docker 影像 預建容器,專用於 Falcon-OCR 服務,支援 OpenAI 相容 API,可處理端到端和版面+OCR 流程。
筆記本 分步式 Colab 筆記本,涵蓋感知、OCR、感知代理(VLM 協調推理)和開放詞彙多物件追蹤。

快速開始(從原始碼)

# 克隆並安裝(自動偵測後端)
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

# 拉取官方影像並在一個或兩個 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 影像/秒的吞吐量。


誰應該使用此項目?

  • 研究人員:探索需要緊湊、開源基線的多模態 VLM,用於檢測、分割或 OCR。
  • 開發者:建構需要語言條件視覺推理的應用程式(例如,「分割左側的貓」)。
  • 部署者:尋找可在單一 GPU 上以高吞吐量提供 OCR 的生產就緒伺服器(FastAPI 或 vLLM Docker)。
  • Apple-Silicon 使用者:希望在 Mac 上執行相同模型而無需安裝 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
  • 專案
  • 專案
  • 專案