graph TD
A["API Request<br>(messages + images)"] --> B["ChatTemplate 適用<br>プレースホルダー挿入"]
B --> C["InputPreprocessor<br>トークナイズ + HF Processor"]
C --> D{"ProcessorCache<br>ヒット?"}
D -->|HIT| E["キャッシュから取得<br>(HF処理スキップ)"]
D -->|MISS| F["HF Processor 実行<br>pixel_values テンソル生成"]
E --> G["MultiModalFeatureSpec 構築"]
F --> G
G --> H["EngineCoreRequest<br>ZMQ IPC 送信"]
H --> I["Scheduler"]
I --> J{"EncoderCacheManager<br>ヒット?"}
J -->|HIT| K["エンコーダ計算スキップ"]
J -->|MISS| L["encoder_compute_budget<br>から割り当て"]
K --> M["GPUModelRunner"]
L --> M
M --> N["_execute_mm_encoder()<br>model.embed_multimodal()"]
N --> O["encoder_cache に格納"]
O --> P["_gather_mm_embeddings()<br>キャッシュからスライス"]
P --> Q["embed_input_ids()<br>text + vision マージ<br>(masked_scatter_)"]
Q --> R["model.forward()<br>統合推論"]
フロントエンド: チャットテンプレート、プレースホルダー、MMハッシュ[DEEP](hash_kwargs/serialize_item/iter_item_to_bytes詳細、identifier vs mm_hash使い分け、プレフィックスキャッシュ連携)、プロセッサキャッシュ4種、ZMQ送信データ