CPPO: Contrastive Perception for Vision Language Policy Optimization

Ahmad Rezaei, Mohsen Gholami, Saeed Ranjbar Alvar, Kevin Cannons, Mohammad Asiful Hossain +4 more
1/1/2026
cs.CV

No official code found. Best implementation: vbdi/cppo (10 stars, last commit 2026-02-18).

Abstract

We introduce CPPO, a Contrastive Perception Policy Optimization method for finetuning vision-language models (VLMs). While reinforcement learning (RL) has advanced reasoning in language models, extending it to multimodal reasoning requires improving both the perception and reasoning aspects. Prior works tackle this challenge mainly with explicit perception rewards, but disentangling perception tokens from reasoning tokens is difficult, requiring extra LLMs, ground-truth data, forced separation of perception from reasoning by policy model, or applying rewards indiscriminately to all output tokens. CPPO addresses this problem by detecting perception tokens via entropy shifts in the model outputs under perturbed input images. CPPO then extends the RL objective function with a Contrastive Perception Loss (CPL) that enforces consistency under information-preserving perturbations and sensitivity under information-removing ones. Experiments show that CPPO surpasses previous perception-rewarding methods, while avoiding extra models, making training more efficient and scalable.

View on arXivView PDF

Code Implementations(1)

vbdi/cppoCommunity71%

CPPO: Contrastive Perception for Vision Language Policy Optimization

100Shell, PythonDec 20, 20258 months ago
contrastive-learningcppoentropy-based-approachperception-awarepolicy-optimization+3 more

Similar Papers

Cite this paper

@article{rezaei2026cppo,
  title  = {CPPO: Contrastive Perception for Vision Language Policy Optimization},
  author = {Ahmad Rezaei and Mohsen Gholami and Saeed Ranjbar Alvar and Kevin Cannons and Mohammad Asiful Hossain and Zhou Weimin and Shunbo Zhou and Yong Zhang and Mohammad Akbari},
  year   = {2026},
  eprint = {2601.00501},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2601.00501v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2601.00501.svg)](https://codeofpaper.com/paper/2601.00501)

Discussion