Fine-R1:用 CoT 与强化学习提升多模态大模型的细粒度视觉识别能力

最近读到一篇 ICLR 2026 poster 论文 Fine-R1: Make Multi-modal LLMs Excel in Fine-Grained Visual Recognition by Chain-of-Thought Reasoning。这篇论文关注的是一个传统但仍然很难的问题:Fine-Grained Visual Recognition,细粒度视觉识别

在这里插入图片描述

所谓细粒度视觉识别,并不是简单判断“这是一只鸟”或“这是一辆车”,而是要进一步区分具体的鸟种、犬种、车型、飞机型号或花卉品种。这类任务的难点在于:类间差异很小,类内差异很大。不同子类别可能只差一个局部纹理、颜色区域或结构细节,而同一类别又可能因为姿态、背景、光照和视角变化表现得差异很大。

现有多模态大模型在 caption、VQA、通用图像理解上已经表现很强,但在细粒度识别上仍然容易弱于专门用于判别任务的 CLIP 类模型。另一方面,如果直接用分类数据微调 MLLM,又往往需要大量标注样本,并且容易过拟合训练中见过的类别,导致未见类别泛化能力下降。

Fine-R1 的核心目标就是:用少量 few-shot 数据,让 MLLM 学会通过思维链进行细粒度视觉识别,并提升对未见类别的泛化能力。

方法核心:CoT SFT + TAPO

Fine-R1 的训练分为两个阶段。

第一阶段是 Chain-of-Thought Supervised Fine-tuning,也就是 CoT SFT。作者不是让模型直接输出类别名,而是构造了一种细粒度识别的专家式推理流程:

visual analysis → candidate sub-categories → comparison → prediction

也就是先分析图像中的关键视觉细节,再提出可能的候选子类别,然后比较这些候选类别之间的差异,最后给出预测结果。这样做的意义在于,模型不再只是“猜类别”,而是学习一种面向细粒度识别的推理路径。

第二阶段是论文提出的 Triplet Augmented Policy Optimization,TAPO。它借鉴了 triplet / contrastive learning 的思想,为每个 anchor image 构造一个 positive image 和一个 negative image:

  • anchor image:当前训练样本;
  • positive image:与 anchor 属于同一细粒度类别;
  • negative image:与 anchor 视觉相似,但属于不同类别。

positive image 用来增强模型对类内变化的鲁棒性,negative image 用来增强模型对相似异类的判别能力。换句话说,TAPO 不是简单地奖励“答对”,而是把细粒度识别中的结构性难点写进了强化学习训练过程。
在这里插入图片描述

TAPO 是怎么工作的?

TAPO 会先让模型基于 anchor image 生成多条回答轨迹,同时基于 positive image 也生成多条回答轨迹。这里的回答轨迹不只是最终类别名,而是包含 CoT 推理过程和答案。

然后,Answer Verifier 会判断每条输出是否包含正确答案。如果某条推理轨迹能导向正确答案,它就会获得更高 reward;反之则 reward 较低。接着,模型通过 group-based advantage 计算,让高质量推理路径的概率上升,让低质量推理路径的概率下降。

更关键的是 negative 分支。对于同一条输出,TAPO 会比较模型在正确图像条件下和负样本图像条件下生成它的概率。直观来说:一个答案在正确图像下应该成立,但把图像换成相似错误图像后,就不应该还成立。

因此,作者引入 inter-class KL 项,最大化正确图像和负样本图像下输出分布之间的差异。这样模型不仅要答对,还要真正根据图像细节区分相似类别,而不是依赖语言先验或类别频率去猜。

可以把 Fine-R1 的训练逻辑概括为:

CoT SFT 让模型学会怎么想,TAPO 让模型想得更稳、更能区分。

实验结果

实验方面,Fine-R1 在六个经典 FGVR 数据集上验证,包括鸟类、汽车、犬种、花卉、宠物和飞机。作者采用 base-to-new generalization 设置:60% 类别作为 seen categories,40% 类别作为 unseen categories,并且每个 seen category 只使用 4-shot 训练样本。

结果显示,Fine-R1 在 closed-world 和 open-world 两种设置下都取得了明显提升。

在 closed-world 设置中,Fine-R1-7B 的平均准确率达到 88.71%,超过 Qwen2.5-VL-7B,也超过了 SigLIP-L 这类专门做判别任务的 CLIP 模型。更重要的是,它在 unseen categories 上也达到 85.70%,说明模型并不是只记住训练类,而是具备更好的未见类别泛化能力。

在 open-world 设置中,模型需要直接生成类别名称,而不是从候选项中选择,难度更高。Fine-R1-7B 的平均 relative semantic similarity 达到 74.80%,相比 Qwen2.5-VL-7B 的 51.05% 提升非常明显。

这篇论文最值得关注的地方

我认为这篇论文的亮点不只是“用了 CoT 和 RL”,而是它把方法设计和任务难点对应得很清楚。

FGVR 的核心难点是:

类内差异大,类间差异小。

Fine-R1 的对应设计是:

positive image 增强类内鲁棒性,negative image 拉开类间边界。

同时,作者还做了比较完整的消融实验。结果表明,单纯 SFT 容易提升 seen categories,但对 unseen categories 泛化不够稳定;单纯 CoT prompting 也不能带来明显提升。真正有效的是 CoT SFT 和 TAPO 的结合。

更有意思的是,论文还分析了 Fine-R1 的性能提升到底来自哪里。结果显示,Fine-R1 并没有显著改变底层视觉特征,也没有显著增加类别知识本身。真正提升的是模型在任务上下文中调用已有细粒度知识的能力。

也就是说,Fine-R1 的本质不是让模型“学到更多知识”,而是让模型“更会使用已有知识”。

总结

Fine-R1 是一篇很标准的高质量 MLLM 后训练论文。它的问题定义清楚,方法与问题高度对应,实验设置也很好地服务于论文主张。

这篇论文给我的主要启发是:在垂直领域或细粒度任务中,后训练不一定只是继续堆数据做 SFT。更重要的是先分析任务中的核心混淆结构,然后把这种结构写进训练目标里。

对于 Fine-R1 来说,这个结构是 anchor-positive-negative 三元组;对于其他垂域任务,比如遥感、医学、工业检测等,也可以思考类似问题:哪些样本应该被视为 positive,哪些样本应该被构造成 hard negative,模型到底应该在哪些视觉证据上形成判别边界。

一句话总结:

Fine-R1 通过 CoT SFT 建立细粒度推理路径,再通过 TAPO 强化类内鲁棒性和类间判别性,从而让少样本数据也能有效提升 MLLM 的细粒度视觉识别能力。

参考论文:Fine-R1: Make Multi-modal LLMs Excel in Fine-Grained Visual Recognition by Chain-of-Thought Reasoning.

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐