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)という3つの古典的なコンピュータビジョン問題を、単一の言語条件付きモデルで統合しています。270 MパラメータのFalcon OCR 1.5バージョンは、はるかに大きなVLMと同等のエンドツーエンドOCR品質を実現しながらも、サイズは約3倍小さく、リアルタイムまたはエッジデプロイに実用的です。


主要なコンポーネント

コンポーネント 機能
PyTorch ページド推論エンジン FlexAttention、CUDA‑グラフキャプチャ、仮想ページキーバックエンドを活用し、最小限の遅延で継続的なバッチ処理を実現(H100で、プレフィル約100 ms、アップサンプル200 ms、デコード50 ms)。
ページドOCRエンジン 軽量なレイアウト検出器(PP‑DocLayoutV3)と領域ごとのOCRを追加。同じページドKVキャッシュを使用して高スループットを維持。
バッチエンジン デバッグやトレーニングのフォワードパスの再現に有用なシンプルな左パディングバッチ推論。
MLXエンジン 同じモデルをMLXフレームワークに変換。PyTorch/transformersの依存関係なしにApple‑Silicon Macでバッチ推論が可能。
推論サーバー FastAPIベースのRESTサービス。GPUごとに1つのエンジンを起動(データ並列)し、インタラクティブなデモ用の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に使えるコンパクトでオープンソースの基準モデルを探索する人。
  • 開発者:「左の猫をセグメンテーション」など、言語条件付きの視覚的推論を必要とするアプリケーションを開発する人。
  • デプロイ担当者:1GPUで高スループットでOCRを提供できるプロダクション対応サーバー(FastAPIまたはvLLM Docker)を探している人。
  • Apple‑Siliconユーザー:PyTorchをインストールせずにMacで同じモデルを実行したい人。

引用

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
  • プロジェクト
  • プロジェクト
  • プロジェクト