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
  • 项目
  • 项目
  • 项目