Abstract. Vision-Language Models (VLMs) create a severe visual feature bottleneck by using a crude, asymmetric connection that links only the output of the vision encoder to the input of the large language model (LLM). This static architecture fundamentally limits the ability of LLMs to achieve comprehensive alignment with hierarchical visual knowledge, compromising their capacity to accurately integrate local details with global semantics into coherent reasoning. To resolve this, we introduce Cross-Layer Injection (CLI), a novel framework that forges a dynamic "many-to-many" bridge between the two modalities. CLI consists of two synergistic, parameter-efficient components: an Adaptive Multi-Projection (AMP) module that harmonizes features from diverse vision layers, and an Adaptive Gating Fusion (AGF) mechanism that empowers the LLM to selectively inject the most relevant visual information based on its real-time decoding context. We validate the effectiveness and versatility of CLI by integrating it into LLaVA-OneVision and LLaVA-1.5. Extensive experiments on 28 diverse benchmarks demonstrate significant performance improvements, establishing CLI as a scalable paradigm that unlocks deeper multimodal understanding by granting LLMs on-demand access to the full visual hierarchy. Code is available at https://github.com/codefuse-ai/CLI.
| Base VLM | LLaVA-OneVision-Qwen2-7B (mid-stage) |
| LLM | Qwen2-7B (28 decoder layers) |
| Vision Encoder | SigLIP-so400m-patch14-384 (28 layers) |
| Projector | mlp2x_gelu |
| LLM injection layers | RANGE-1-28-4 → layers 1, 5, 9, 13, 17, 21, 25 |
| Vision extraction layers | RANGE-1-28-4 → layers 1, 5, 9, 13, 17, 21, 25 |
| Image resolution | anyres_max_9 (spatial unpad, up to 6×6 grid) |
| Model max length | 32768 |
| Precision | bf16 |
| License | Apache 2.0 |
codefuse-ai/CLI codebase — a plain transformers LlavaOneVision load will not reproduce CLI behavior.codefuse-ai/CLI repository. The layer configuration passed at load time must match the training configuration above.1git clone https://github.com/codefuse-ai/CLI.git
2cd CLI
3
4conda create -n cli python=3.10 -y
5conda activate cli
6
7pip install -e ".[train]"
8pip install flash-attn --no-build-isolation1# Option A: huggingface-cli
2huggingface-cli download codefuse-ai/CLI-7B --local-dir ./checkpoints/CLI-7B
3
4# Option B: git-lfs
5git clone https://huggingface.co/codefuse-ai/CLI-7B ./checkpoints/CLI-7BRANGE-1-28-4 / RANGE-1-28-4 configuration:1python run_eval_cli.py \
2 --model_path ./checkpoints/CLI-7B \
3 --eval_tasks mme,mmmu,ai2d \
4 --vlm_exp_layers RANGE-1-28-4 \
5 --vision_exp_layers RANGE-1-28-4 \
6 --num_gpus 1⚠️ Important: The--vlm_exp_layers RANGE-1-28-4and--vision_exp_layers RANGE-1-28-4flags are mandatory — they rebuild the CLI architecture (which LLM layers receive injections, which vision layers are extracted). Loading with the default one-to-one projector path or withtransformers.LlavaOnevisionForConditionalGenerationwill not reproduce CLI.
qwen_1_5 prompt version) with anyres_max_9 image preprocessing. See run_eval_cli.py and llava/eval/ in the repo for reference implementations.ai2d, chartqa, docvqa_val/test, infovqa_val/testmme, mmbench_en_dev, mmvet, mmmu, mmstar, mathvista_testmini, mathverse_*, gqa, ok_vqa, scienceqa_img, seedbench, poperealworldqa, llava_in_the_wild1python run_eval_cli.py \
2 --model_path ./checkpoints/CLI-7B \
3 --eval_tasks ai2d,chartqa,docvqa_val,docvqa_test,infovqa_val,infovqa_test,mme,mmbench_en_dev,mmvet,mmmu,mmstar,mathvista_testmini,gqa,ok_vqa,scienceqa_img,seedbench,pope,realworldqa,llava_in_the_wild \
4 --vlm_exp_layers RANGE-1-28-4 \
5 --vision_exp_layers RANGE-1-28-4 \
6 --num_gpus 11@inproceedings{chen2026cli,
2 title={From One-to-One to Many-to-Many: Dynamic Cross-Layer Injection for Deep Vision-Language Fusion},
3 author={Chen, Cheng and Guo, Yuyu and Zeng, Pengpeng and Song, Jingkuan and Di, Peng and Yu, Hang and Gao, Lianli},
4 booktitle={European Conference on Computer Vision (ECCV)},
5 year={2026}
6}