SpeciaRL:特异性感知强化学习------开放世界细粒度分类的动态奖励框架
来源 : CVPR 2026 (IEEE/CVF Conference on Computer Vision and Pattern Recognition)
arXiv : 2603.03197
作者 : Samuele Angheben, Davide Berasi, Alessandro Conti, Elisa Ricci, Yiming Wang
机构 : University of Trento, Fondazione Bruno Kessler (FBK)
代码 : https://github.com/s-angheben/SpeciaRL
基座模型: Qwen2.5VL-7B
目录
- [为什么推理 LMM 倾向于泛泛而谈](#为什么推理 LMM 倾向于泛泛而谈)
- 特异性与正确性的跷跷板
- [BoN 分析:模型其实知道,只是不敢说](#BoN 分析:模型其实知道,只是不敢说)
- [SpeciaRL 框架:在线 Rollout 与动态奖励](#SpeciaRL 框架:在线 Rollout 与动态奖励)
- [LLM 验证器:分级反馈的引擎](#LLM 验证器:分级反馈的引擎)
- [GRPO 优化:组内相对优势估计](#GRPO 优化:组内相对优势估计)
- 实验验证:跨域泛化与消融分析
- 工程权衡与反直觉发现
- 实际部署中的意义
- 参考文献
1. 为什么推理 LMM 倾向于泛泛而谈
1.1 开放世界细粒度分类的工程困境
想象你问一个视觉模型"图中是什么鸟"。模型看了一眼,回答"一只鸟"。这个答案在语义上完全正确------图中确实是一只鸟------但对于细粒度分类任务来说毫无价值。你需要知道的是"金翅莺"(Golden-winged Warbler),而非"鸟"。
这就是开放世界细粒度分类的核心矛盾:模型被要求在没有预定义标签集 的情况下,输出尽可能具体 但又正确的类别名称。如果标签集是固定的(如 ImageNet 的 1000 类),模型只需从封闭集合中选择;但在开放世界中,模型必须从无限的自然语言概念空间中生成答案。
1.2 推理 LMM 的"保守偏向"
近期的推理型大型多模态模型(Reasoning LMMs),如 Qwen2.5VL-7B,展现出了强大的视觉理解能力。它们能够:
- 识别图像中的细微纹理和形态特征
- 生成详细的推理过程(thinking trace)
- 用自然语言描述视觉观察
但当被要求做细粒度分类时,它们却倾向于输出泛泛而谈的答案。实验数据显示:
| 模型 | 细粒度集 | 非常细粒度集 |
|---|---|---|
| Qwen2.5VL-7B | 39.4% Generic | 74.5% Generic |
| InternVL2.5-8B | 30.6% Generic | 54.5% Generic |
在非常细粒度集(StanfordCars、FGVCAircraft)上,Qwen2.5VL-7B 有接近四分之三的预测是"Generic"------即只输出 superclass(如"汽车"、"飞机")而非具体的型号或物种。
1.3 这不是知识缺失,而是表达保守
一个关键的问题是:模型是真的不知道细粒度类别,还是知道但不敢说出来?
SpeciaRL 的初步分析给出了明确的答案。作者对 Qwen2.5VL-7B 进行了 Best-of-64(BoN-64)测试:对同一张图片生成 64 次预测,然后选择其中信息量最大的那个。结果显示:
- BoN-64 的特异性从 0.742 提升到 0.889(细粒度集)
- BoN-64 的正确性从 0.846 提升到 0.984(细粒度集)
这意味着模型确实拥有细粒度领域知识 ------在 64 次尝试中,它几乎总能至少有一次给出正确且具体的答案。问题在于,模型在单次推理中无法可靠地表达这些知识。
1.4 认知检查点
因此,SpeciaRL 的设计起点不是"给模型灌输更多细粒度知识",而是"让模型在单次推理中就能可靠地表达它已经拥有的知识"。这是一个表达问题,而非知识问题。
2. 特异性与正确性的跷跷板
2.1 为什么二者难以兼得
直觉上,更具体的预测应该同时更准确------毕竟"金翅莺"比"鸟"包含更多信息。但工程现实是:特异性与正确性之间存在一个紧张的跷跷板关系。
| 方法 | 特异性 | 正确性 | 问题 |
|---|---|---|---|
| 零-shot 基线 | 0.742 | 0.846 | 过于保守,大量 Generic |
| Prompt "Be specific" | 0.816 | 0.832 | 特异性提升,但正确性下降 |
| SFT 监督微调 | 0.935 | 0.807 | 特异性大幅提升,正确性显著牺牲 |
| RFT 标准强化微调 | 0.875 | 0.785 | 特异性提升,正确性进一步下降 |
关键观察:现有方法在提升特异性时,几乎总是以牺牲正确性为代价。SFT 把特异性推到了 0.935,但正确性跌到了 0.807------意味着模型开始"瞎猜"细粒度类别,产生大量错误预测。
2.2 跷跷板的物理直觉
这个跷跷板可以用信息论的视角理解:
- 语义空间是一个层次化树状结构(ontology)
- "鸟"在树的根部,"金翅莺"在树的深层叶子节点
- 从根节点向叶子节点移动时,每一步都增加了信息的特异性
- 但同时,每一步也增加了出错的风险------因为叶子节点的类别之间视觉差异极小
模型面临一个决策:停在树的哪个深度?停得太浅(Generic)安全但无用;停得太深(Very Specific)有用但高风险。
2.3 现有方法的失败模式
| 方法 | 失败模式 | 原因 |
|---|---|---|
| Prompting | 模型被鼓励猜测,增加 Wrong 预测 | 没有反馈机制告诉模型"猜错了" |
| SFT | 模型过拟合训练标签分布 | 交叉熵损失强制模型输出训练集中的细粒度标签,即使不确定 |
| RFT(静态奖励) | 模型只学习"匹配 ground truth",不学习"在不匹配时保守" | 二元奖励(对/错)无法区分"差一点就对了"和"完全错了" |
2.4 认知检查点
因此,SpeciaRL 的核心挑战不是"如何让模型更具体",而是"如何在提升特异性的同时,防止模型越过正确性边界进入猜测区域"。这需要一个能够根据模型自身能力动态调整的奖励机制。
3. BoN 分析:模型其实知道,只是不敢说
3.1 Best-of-N 作为能力上界
BoN-64 测试是 SpeciaRL 方法论的基石。其设计如下:
- 对每张图片,用温度采样生成 64 个不同的推理-答案对
- 每个预测被 LLM 验证器分类到六个类别之一
- 选择 64 个预测中信息量最大的那个作为"最佳预测"
#mermaid-svg-u9MXb6me8nOpD4XX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:30px;fill:#fff;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-u9MXb6me8nOpD4XX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-u9MXb6me8nOpD4XX .error-icon{fill:#f39c12;}#mermaid-svg-u9MXb6me8nOpD4XX .error-text{fill:#0c63ed;stroke:#0c63ed;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-u9MXb6me8nOpD4XX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-u9MXb6me8nOpD4XX .marker{fill:#2c3e50;stroke:#2c3e50;}#mermaid-svg-u9MXb6me8nOpD4XX .marker.cross{stroke:#2c3e50;}#mermaid-svg-u9MXb6me8nOpD4XX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:30px;}#mermaid-svg-u9MXb6me8nOpD4XX p{margin:0;}#mermaid-svg-u9MXb6me8nOpD4XX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#fff;}#mermaid-svg-u9MXb6me8nOpD4XX .cluster-label text{fill:#0c63ed;}#mermaid-svg-u9MXb6me8nOpD4XX .cluster-label span{color:#0c63ed;}#mermaid-svg-u9MXb6me8nOpD4XX .cluster-label span p{background-color:transparent;}#mermaid-svg-u9MXb6me8nOpD4XX .label text,#mermaid-svg-u9MXb6me8nOpD4XX span{fill:#fff;color:#fff;}#mermaid-svg-u9MXb6me8nOpD4XX .node rect,#mermaid-svg-u9MXb6me8nOpD4XX .node circle,#mermaid-svg-u9MXb6me8nOpD4XX .node ellipse,#mermaid-svg-u9MXb6me8nOpD4XX .node polygon,#mermaid-svg-u9MXb6me8nOpD4XX .node path{fill:#ff6b6b;stroke:#c0392b;stroke-width:1px;}#mermaid-svg-u9MXb6me8nOpD4XX .rough-node .label text,#mermaid-svg-u9MXb6me8nOpD4XX .node .label text,#mermaid-svg-u9MXb6me8nOpD4XX .image-shape .label,#mermaid-svg-u9MXb6me8nOpD4XX .icon-shape .label{text-anchor:middle;}#mermaid-svg-u9MXb6me8nOpD4XX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-u9MXb6me8nOpD4XX .rough-node .label,#mermaid-svg-u9MXb6me8nOpD4XX .node .label,#mermaid-svg-u9MXb6me8nOpD4XX .image-shape .label,#mermaid-svg-u9MXb6me8nOpD4XX .icon-shape .label{text-align:center;}#mermaid-svg-u9MXb6me8nOpD4XX .node.clickable{cursor:pointer;}#mermaid-svg-u9MXb6me8nOpD4XX .root .anchor path{fill:#2c3e50!important;stroke-width:0;stroke:#2c3e50;}#mermaid-svg-u9MXb6me8nOpD4XX .arrowheadPath{fill:#0b0b0b;}#mermaid-svg-u9MXb6me8nOpD4XX .edgePath .path{stroke:#2c3e50;stroke-width:2.0px;}#mermaid-svg-u9MXb6me8nOpD4XX .flowchart-link{stroke:#2c3e50;fill:none;}#mermaid-svg-u9MXb6me8nOpD4XX .edgeLabel{background-color:#3498db;text-align:center;}#mermaid-svg-u9MXb6me8nOpD4XX .edgeLabel p{background-color:#3498db;}#mermaid-svg-u9MXb6me8nOpD4XX .edgeLabel rect{opacity:0.5;background-color:#3498db;fill:#3498db;}#mermaid-svg-u9MXb6me8nOpD4XX .labelBkg{background-color:rgba(52, 152, 219, 0.5);}#mermaid-svg-u9MXb6me8nOpD4XX .cluster rect{fill:#f39c12;stroke:hsl(36.8, 50.3614457831%, 41.1764705882%);stroke-width:1px;}#mermaid-svg-u9MXb6me8nOpD4XX .cluster text{fill:#0c63ed;}#mermaid-svg-u9MXb6me8nOpD4XX .cluster span{color:#0c63ed;}#mermaid-svg-u9MXb6me8nOpD4XX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:#f39c12;border:1px solid hsl(36.8, 50.3614457831%, 41.1764705882%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-u9MXb6me8nOpD4XX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#fff;}#mermaid-svg-u9MXb6me8nOpD4XX rect.text{fill:none;stroke-width:0;}#mermaid-svg-u9MXb6me8nOpD4XX .icon-shape,#mermaid-svg-u9MXb6me8nOpD4XX .image-shape{background-color:#3498db;text-align:center;}#mermaid-svg-u9MXb6me8nOpD4XX .icon-shape p,#mermaid-svg-u9MXb6me8nOpD4XX .image-shape p{background-color:#3498db;padding:2px;}#mermaid-svg-u9MXb6me8nOpD4XX .icon-shape .label rect,#mermaid-svg-u9MXb6me8nOpD4XX .image-shape .label rect{opacity:0.5;background-color:#3498db;fill:#3498db;}#mermaid-svg-u9MXb6me8nOpD4XX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-u9MXb6me8nOpD4XX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-u9MXb6me8nOpD4XX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 选择最佳
LLM 验证器分类
生成 64 次
输入
图片 I
推理路径 1
推理路径 2
...
推理路径 64
S+ 更具体
S 具体
S- 较不具体
G 泛泛
A 模糊
W 错误
信息量最高的正确预测
图注:BoN-64 分析流程。输入图片(橙色)通过 64 次独立采样生成 diverse 推理路径(蓝色)。LLM 验证器将每个预测分类到六个特异性等级(绿色=高特异且正确,黄色=中等,红色=错误)。最终选择信息量最高的正确预测(紫色)作为模型能力的经验上界。关键洞察:如果 BoN-64 能选出高特异性正确预测,说明模型拥有该知识,只是单次采样时未能可靠表达。
3.2 六个特异性等级
LLM 验证器将每个预测分类到以下六个等级之一:
| 等级 | 符号 | 含义 | 示例 |
|---|---|---|---|
| 更具体 | S+ | 比 ground truth 更细粒度 | "成年雄性金翅莺" |
| 具体 | S | 与 ground truth 同级 | "金翅莺" |
| 较不具体 | S- | 比 ground truth 粗一级 | "莺科鸟类" |
| 泛泛 | G | 只给出 superclass | "鸟" |
| 模糊 | A | 答案含糊不清 | "某种小鸟" |
| 错误 | W | 语义上不相关或错误 | "蝴蝶" |
3.3 BoN-64 揭示的模型能力
| 指标 | 单次推理 | BoN-64 | 差距 |
|---|---|---|---|
| 特异性(细粒度) | 0.742 | 0.889 | +0.147 |
| 正确性(细粒度) | 0.846 | 0.984 | +0.138 |
| 特异性(非常细粒度) | 0.555 | 0.770 | +0.215 |
| 正确性(非常细粒度) | 0.919 | 0.998 | +0.079 |
BoN-64 与单次推理之间的巨大差距(特别是在非常细粒度集上,特异性差距达 0.215)证明了一个核心假设:
模型拥有细粒度知识,但单次采样时被困在了"保守区域"------它倾向于输出 Generic 预测,因为这是一条"安全"的推理路径。
3.4 认知检查点
因此,BoN-64 分析不仅是一个诊断工具,更是 SpeciaRL 方法论的灵感来源:如果模型在 64 次尝试中能产生高特异性正确预测,那么训练目标就应该是让模型在单次尝试中也能做到这一点。动态奖励的设计正是围绕这个直觉展开的。
4. SpeciaRL 框架:在线 Rollout 与动态奖励
4.1 总体架构
#mermaid-svg-ZmubekAr31OHfbg9{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:30px;fill:#fff;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ZmubekAr31OHfbg9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ZmubekAr31OHfbg9 .error-icon{fill:#f39c12;}#mermaid-svg-ZmubekAr31OHfbg9 .error-text{fill:#0c63ed;stroke:#0c63ed;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ZmubekAr31OHfbg9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ZmubekAr31OHfbg9 .marker{fill:#2c3e50;stroke:#2c3e50;}#mermaid-svg-ZmubekAr31OHfbg9 .marker.cross{stroke:#2c3e50;}#mermaid-svg-ZmubekAr31OHfbg9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:30px;}#mermaid-svg-ZmubekAr31OHfbg9 p{margin:0;}#mermaid-svg-ZmubekAr31OHfbg9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#fff;}#mermaid-svg-ZmubekAr31OHfbg9 .cluster-label text{fill:#0c63ed;}#mermaid-svg-ZmubekAr31OHfbg9 .cluster-label span{color:#0c63ed;}#mermaid-svg-ZmubekAr31OHfbg9 .cluster-label span p{background-color:transparent;}#mermaid-svg-ZmubekAr31OHfbg9 .label text,#mermaid-svg-ZmubekAr31OHfbg9 span{fill:#fff;color:#fff;}#mermaid-svg-ZmubekAr31OHfbg9 .node rect,#mermaid-svg-ZmubekAr31OHfbg9 .node circle,#mermaid-svg-ZmubekAr31OHfbg9 .node ellipse,#mermaid-svg-ZmubekAr31OHfbg9 .node polygon,#mermaid-svg-ZmubekAr31OHfbg9 .node path{fill:#ff6b6b;stroke:#c0392b;stroke-width:1px;}#mermaid-svg-ZmubekAr31OHfbg9 .rough-node .label text,#mermaid-svg-ZmubekAr31OHfbg9 .node .label text,#mermaid-svg-ZmubekAr31OHfbg9 .image-shape .label,#mermaid-svg-ZmubekAr31OHfbg9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-ZmubekAr31OHfbg9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ZmubekAr31OHfbg9 .rough-node .label,#mermaid-svg-ZmubekAr31OHfbg9 .node .label,#mermaid-svg-ZmubekAr31OHfbg9 .image-shape .label,#mermaid-svg-ZmubekAr31OHfbg9 .icon-shape .label{text-align:center;}#mermaid-svg-ZmubekAr31OHfbg9 .node.clickable{cursor:pointer;}#mermaid-svg-ZmubekAr31OHfbg9 .root .anchor path{fill:#2c3e50!important;stroke-width:0;stroke:#2c3e50;}#mermaid-svg-ZmubekAr31OHfbg9 .arrowheadPath{fill:#0b0b0b;}#mermaid-svg-ZmubekAr31OHfbg9 .edgePath .path{stroke:#2c3e50;stroke-width:2.0px;}#mermaid-svg-ZmubekAr31OHfbg9 .flowchart-link{stroke:#2c3e50;fill:none;}#mermaid-svg-ZmubekAr31OHfbg9 .edgeLabel{background-color:#3498db;text-align:center;}#mermaid-svg-ZmubekAr31OHfbg9 .edgeLabel p{background-color:#3498db;}#mermaid-svg-ZmubekAr31OHfbg9 .edgeLabel rect{opacity:0.5;background-color:#3498db;fill:#3498db;}#mermaid-svg-ZmubekAr31OHfbg9 .labelBkg{background-color:rgba(52, 152, 219, 0.5);}#mermaid-svg-ZmubekAr31OHfbg9 .cluster rect{fill:#f39c12;stroke:hsl(36.8, 50.3614457831%, 41.1764705882%);stroke-width:1px;}#mermaid-svg-ZmubekAr31OHfbg9 .cluster text{fill:#0c63ed;}#mermaid-svg-ZmubekAr31OHfbg9 .cluster span{color:#0c63ed;}#mermaid-svg-ZmubekAr31OHfbg9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:#f39c12;border:1px solid hsl(36.8, 50.3614457831%, 41.1764705882%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ZmubekAr31OHfbg9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#fff;}#mermaid-svg-ZmubekAr31OHfbg9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-ZmubekAr31OHfbg9 .icon-shape,#mermaid-svg-ZmubekAr31OHfbg9 .image-shape{background-color:#3498db;text-align:center;}#mermaid-svg-ZmubekAr31OHfbg9 .icon-shape p,#mermaid-svg-ZmubekAr31OHfbg9 .image-shape p{background-color:#3498db;padding:2px;}#mermaid-svg-ZmubekAr31OHfbg9 .icon-shape .label rect,#mermaid-svg-ZmubekAr31OHfbg9 .image-shape .label rect{opacity:0.5;background-color:#3498db;fill:#3498db;}#mermaid-svg-ZmubekAr31OHfbg9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ZmubekAr31OHfbg9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ZmubekAr31OHfbg9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 优化层
奖励层
验证层
策略模型
输入层
图片 I
真实标签 y
Qwen2.5VL-7B
生成 N 个预测
{p1, p2, ..., pN}
LLM 验证器
分类到 6 级
{c1, c2, ..., cN}
确定参考等级 c*
分配分级奖励
{r1, r2, ..., rN}
GRPO 更新
策略梯度
更新模型参数
图注:SpeciaRL 的四层流水线。输入层(橙色)提供图片和真实标签;策略模型(蓝色)生成 N 个候选预测;验证层(绿色)通过 LLM 验证器将每个预测分类到特异性等级;奖励层(紫色)根据组内最佳预测确定动态参考等级并分配分级奖励;优化层(红色)通过 GRPO 更新策略模型参数。整个流程是端到端在线的,每次训练步骤都重新采样 N 个 rollout。
4.2 动态奖励的核心机制
SpeciaRL 的关键创新是样本级动态奖励。对于每个训练样本,奖励不是预先固定的,而是根据该样本在当前策略下的 N 个 rollout 表现动态确定的:
步骤一:生成 N 个 Rollout
对输入图片 I I I,策略模型生成 N N N 个预测 { p 1 , p 2 , ... , p N } \{p_1, p_2, \ldots, p_N\} {p1,p2,...,pN}。默认 N = 10 N = 10 N=10。
步骤二:LLM 验证器分类
每个预测 p i p_i pi 被 LLM 验证器分类到等级 c i ∈ { S + , S , S − , G , A , W } c_i \in \{S+, S, S-, G, A, W\} ci∈{S+,S,S−,G,A,W}。
步骤三:确定参考等级 c ∗ c^* c∗
参考等级是 N 个 rollout 中最高的特异性等级(即信息量最大的正确预测):
c ∗ = max i { c i ∣ c i ∈ { S + , S , S − } } c^* = \max_{i} \left\{ c_i \mid c_i \in \{S+, S, S-\} \right\} c∗=imax{ci∣ci∈{S+,S,S−}}
如果所有 rollout 都是 W(错误),则 c ∗ = W c^* = W c∗=W。
步骤四:分配分级奖励
每个 rollout 的奖励 r i ∗ r_i^* ri∗ 取决于其等级 c i c_i ci 是否达到或超过参考等级 c ∗ c^* c∗:
r i ∗ = { specificity ( c i ) if c i ≥ c ∗ 0 otherwise r_i^* = \begin{cases} \text{specificity}(c_i) & \text{if } c_i \geq c^* \\ 0 & \text{otherwise} \end{cases} ri∗={specificity(ci)0if ci≥c∗otherwise
其中 specificity 是一个预定义的等级分数:
| 等级 | 分数 |
|---|---|
| S+ | 1.0 |
| S | 1.0 |
| S- | 0.75 |
| G | 0.5 |
| A | 0.25 |
| W | 0 |
4.3 动态奖励的物理直觉
想象一个教师面对一个学生。教师不是用一个固定的及格线评判所有学生,而是:
- 先让学生做 10 次练习(N 个 rollout)
- 观察学生最好能做到什么程度(参考等级 c ∗ c^* c∗)
- 然后告诉学生:"你最好的一次达到了 S 级,所以我会奖励所有达到 S 级或更好的尝试"
这个机制的关键在于尊重模型的固有能力:
- 如果模型对某张图片的 10 次尝试中最好只是 G(泛泛),那么要求它输出 S(具体)是不合理的------强行奖励 S 会把它推向猜测区域
- 如果模型对某张图片的 10 次尝试中有一次达到了 S+,那么说明它有能力做到,只是不够可靠------奖励所有达到 S+ 的尝试会强化这条推理路径
4.4 与静态奖励的对比
| 奖励类型 | 定义 | 问题 |
|---|---|---|
| 二元奖励 | S+ 和 S 得 1,其他得 0 | 过于粗糙,不奖励 S- 和 G 级别的正确预测 |
| 静态分级 | 固定分数:S+(1), S(1), S-(0.75), G(0.5) | 对所有样本一视同仁,忽视模型能力的样本差异 |
| SpeciaRL 动态 | 基于组内最佳确定参考等级 | 自适应:对简单样本要求高,对困难样本要求低 |
4.5 认知检查点
因此,SpeciaRL 的动态奖励不是"更复杂的评分规则",而是一个能力感知的教学机制。它告诉模型:"我不强求你做到超出你能力的事,但我会奖励你做到你最好水平的事。"这种设计天然防止了"为了特异性而牺牲正确性"的跷跷板效应。
5. LLM 验证器:分级反馈的引擎
5.1 为什么需要外部验证器
在开放世界设置中,判断一个预测是否正确不是简单的字符串匹配。"金翅莺"、"Vermivora chrysoptera"、"Golden-winged Warbler"可能指向同一个概念,但表达方式不同。传统规则匹配无法处理这种语义等价性。
SpeciaRL 使用一个独立的 LLM(Qwen3-30B-A3B-Instruct-2507-FP8)作为验证器。验证器的职责是:
- 比较模型预测 p p p 与真实标签 y y y 的语义关系
- 判断 p p p 相对于 y y y 的特异性等级
- 输出结构化的分类结果
5.2 验证器与评估器的分离
SpeciaRL 的一个重要工程决策是训练验证器与评估器使用不同的模型家族:
- 训练验证器:Qwen3-30B(用于计算奖励)
- 评估器:Llama3-72B(用于最终性能评估)
这种分离避免了家族特定偏差:如果训练和评估使用同一个模型家族,模型可能学会"欺骗"验证器而非真正提升能力。使用不同家族的评估器确保了结果的客观性。
5.3 验证器的提示工程
验证器接收一个精心设计的提示,包含:
- 任务描述:判断预测相对于真实标签的特异性等级
- 等级定义:S+/S/S-/G/A/W 的详细说明
- 示例:几个标注好的示例用于 few-shot 学习
- 待评估的预测-标签对
提示的设计原则:
- 明确区分"正确性"和"特异性"两个维度
- 提供边界案例示例(如"汽车"vs"福特 Mustang 2024"vs"福特")
- 要求验证器先输出推理过程,再给出分类结果
5.4 认知检查点
因此,LLM 验证器不是"一个更贵的标签器",而是 SpeciaRL 框架中不可或缺的语义理解层。在开放世界设置中,没有预定义词汇表,规则匹配失效,只有具备语义理解能力的 LLM 才能可靠地判断"这个预测比真实标签更具体还是更泛泛"。
6. GRPO 优化:组内相对优势估计
6.1 为什么不用标准 PPO
标准 PPO 需要一个独立的 Critic 网络来估计状态价值 V ( s ) V(s) V(s),用于计算优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)−V(s)。但在文本生成任务中:
- Critic 网络与策略网络规模相当,显存开销翻倍
- 价值估计在离散动作空间(token 选择)中不稳定
- 长序列生成导致信用分配困难
GRPO(Group Relative Policy Optimization)通过组内相对估计消除了对 Critic 的需求。
6.2 GRPO 的核心机制
对于每个问题 q q q,GRPO 采样一组输出 { o 1 , o 2 , ... , o G } \{o_1, o_2, \ldots, o_G\} {o1,o2,...,oG}。每个输出的优势估计为:
A ^ i , t = r i − mean ( { r j } ) std ( { r j } ) \hat{A}_{i,t} = \frac{r_i - \text{mean}(\{r_j\})}{\text{std}(\{r_j\})} A^i,t=std({rj})ri−mean({rj})
即:每个 rollout 的优势是相对于同组其他 rollout 的标准化奖励。不需要 Critic,不需要价值估计。
6.3 SpeciaRL 中的 GRPO 适配
SpeciaRL 将 GRPO 与动态奖励结合:
- 组大小 G = N = 10 G = N = 10 G=N=10(每个样本的 rollout 数)
- 奖励 r i r_i ri 来自动态奖励机制(基于参考等级 c ∗ c^* c∗ 的分级分数)
- 优势估计在组内完成,反映每个 rollout 相对于该样本"最佳表现"的优劣
GRPO 的目标函数:
L G R P O ( θ ) = E q , { o i } 1 G ∑ i = 1 G 1 ∣ o i ∣ ∑ t = 1 ∣ o i ∣ min ( ρ i , t A \^ i , t , clip ( ρ i , t , 1 − ϵ , 1 + ϵ ) A \^ i , t ) − β D K L \[ π θ ∥ π r e f ] \mathcal{L}{GRPO}(\theta) = \mathbb{E}{q, \{o_i\}} \left \\frac{1}{G} \\sum_{i=1}\^{G} \\frac{1}{\|o_i\|} \\sum_{t=1}\^{\|o_i\|} \\min \\left( \\rho_{i,t} \\hat{A}_{i,t}, \\text{clip}(\\rho_{i,t}, 1-\\epsilon, 1+\\epsilon) \\hat{A}_{i,t} \\right) - \\beta D_{KL}\[\\pi_\\theta \\\| \\pi_{ref} \right] LGRPO(θ)=Eq,{oi} G1i=1∑G∣oi∣1t=1∑∣oi∣min(ρi,tA^i,t,clip(ρi,t,1−ϵ,1+ϵ)A^i,t)−βDKLπθ∥πref
其中 ρ i , t = π θ ( o i , t ∣ q , o i , < t ) π θ o l d ( o i , t ∣ q , o i , < t ) \rho_{i,t} = \frac{\pi_\theta(o_{i,t}|q, o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q, o_{i,<t})} ρi,t=πθold(oi,t∣q,oi,<t)πθ(oi,t∣q,oi,<t) 是新旧策略的概率比。
6.4 训练配置
| 超参数 | 值 | 工程原因 |
|---|---|---|
| Rollouts 每样本 N N N | 10 | 平衡估计方差与计算成本 |
| Batch size | 256 | 足够的梯度稳定性 |
| 学习率 η \eta η | 3 × 10 − 5 3 \times 10^{-5} 3×10−5 | 标准 RL 微调范围 |
| 训练 epoch | 15 | 收敛所需的步数 |
| KL 惩罚系数 λ \lambda λ | 0.01 | 防止策略偏离基线过远 |
6.5 认知检查点
因此,GRPO 不是"PPO 的简化版",而是一个为文本生成任务量身定制的优化算法。它消除了 Critic 网络的开销,通过组内相对估计解决了信用分配问题,与 SpeciaRL 的动态奖励形成了天然的协同:每个样本的 N 个 rollout 既是奖励计算的样本池,也是优势估计的参考组。
7. 实验验证:跨域泛化与消融分析
7.1 实验设置
| 维度 | 配置 |
|---|---|
| 训练数据 | CUB-200 鸟类数据集,随机采样 3000 张 |
| 训练域 | 鸟类(单一域) |
| 测试域 | Flowers102、Food101、OxfordPets(细粒度);StanfordCars、FGVCAircraft(非常细粒度) |
| 评估设置 | 跨域(out-of-domain):训练与测试数据来自完全不同的大类 |
| 基座模型 | Qwen2.5VL-7B |
跨域评估是 SpeciaRL 的核心实验设计:模型只在鸟类数据上训练,然后在花卉、食物、宠物、汽车、飞机等完全不同域上测试。这确保了评估的是泛化能力 而非记忆能力。
7.2 主结果
| 模型 | 细粒度集 | 非常细粒度集 | ||||
|---|---|---|---|---|---|---|
| 特异性 | 正确性 | HM | 特异性 | 正确性 | HM | |
| 零-shot Qwen2.5VL-7B | 0.742 | 0.846 | 0.790 | 0.555 | 0.919 | 0.692 |
| Prompt "Be specific" | 0.816 | 0.832 | 0.822 | 0.652 | 0.890 | 0.751 |
| SFT | 0.935 | 0.807 | 0.866 | 0.789 | 0.857 | 0.814 |
| RFT(静态奖励) | 0.875 | 0.785 | 0.825 | 0.825 | 0.833 | 0.821 |
| SpeciaRL | 0.920 | 0.848 | 0.883 | 0.818 | 0.855 | 0.830 |
| BoN-64(理论上界) | 0.889 | 0.984 | 0.933 | 0.770 | 0.998 | 0.868 |
关键发现:
- SpeciaRL 在细粒度集上同时提升了特异性和正确性(相比基线的 0.742/0.846 提升到 0.920/0.848)
- 在非常细粒度集上,SpeciaRL 的 HM(0.830)显著优于所有基线
- SFT 虽然特异性最高(0.935),但正确性牺牲最大(0.807),验证了跷跷板效应
- RFT 的静态奖励未能解决正确性下降问题
7.3 消融实验
7.3.1 静态奖励 vs 动态奖励
| 奖励设置 | 特异性 | 正确性 | HM |
|---|---|---|---|
| S+&S(1)(二元) | 0.875 | 0.785 | 0.825 |
| S+&S(1)S-(0.75) | 0.919 | 0.836 | 0.875 |
| S+&S(1)S-(0.75)G(0.5) | 0.884 | 0.874 | 0.878 |
| S+&S(1)S-(0.75)G(0.5)A(0.25) | 0.911 | 0.835 | 0.871 |
| SpeciaRL 动态 | 0.920 | 0.848 | 0.883 |
即使是最复杂的静态分级奖励,也略逊于动态奖励。这说明根据样本能力自适应调整奖励阈值比固定阈值更有效。
7.3.2 Rollout 数量 N N N
| N N N | 特异性 | 正确性 | HM |
|---|---|---|---|
| 5 | 0.925 | 0.844 | 0.883 |
| 10 | 0.920 | 0.848 | 0.883 |
| 15 | 0.848 | 0.810 | 0.824 |
反直觉发现: N = 15 N = 15 N=15 时性能反而下降。这与 GRPO 的已知问题一致:过大的组大小会混合不相关的 episode,导致优势估计方差增大。 N = 10 N = 10 N=10 是一个 sweet spot。
7.4 定性分析
SpeciaRL 不仅提升了最终预测的特异性,还改善了推理过程本身:
- 基线模型虽然能在 thinking trace 中捕捉到细粒度视觉特征(如"黄色翅膀条纹"、"黑色眼罩"),但这些观察没有被用于推导细粒度类别
- SpeciaRL 的推理过程更具目标导向性:视觉观察被直接用于支持具体的分类结论
- 绿色高亮显示:SpeciaRL 的 reasoning trace 中,关键视觉证据与最终预测之间的逻辑连接更紧密
7.5 认知检查点
因此,SpeciaRL 的实验结果验证了一个核心假设:动态奖励机制能够在提升特异性的同时保护正确性。+0.041 的 HM 提升(相比 RFT)和 +0.093 的 HM 提升(相比基线)在细粒度分类领域是实质性的进步,因为它直接转化为对新型视觉概念的可靠识别能力。
8. 工程权衡与反直觉发现
8.1 反直觉一:更少的 Rollout 可能更好
传统观点认为,更多的采样(更大的 N N N)会提供更可靠的参考等级 c ∗ c^* c∗ 估计。但实验显示 N = 15 N = 15 N=15 时性能下降:
- GRPO 的组内相对估计假设组内样本来自同一策略分布
- 当 N N N 过大时,batch 中的不同样本被混合到同一个组中,违反了这一假设
- N = 10 N = 10 N=10 在估计可靠性和统计效率之间找到了平衡
8.2 反直觉二:验证器不需要与策略模型同家族
很多工作使用与策略模型同家族的模型作为验证器(如 Qwen 验证 Qwen),认为这样可以更好地"理解"策略模型的输出。但 SpeciaRL 使用 Qwen3-30B 验证 Qwen2.5VL-7B:
- 不同家族的验证器减少了"协同偏差"(collusion bias)
- 验证器的职责是语义判断,而非风格匹配------不同家族模型在语义理解上同样胜任
- 训练验证器与评估器的分离进一步确保了结果的客观性
8.3 反直觉三:SFT 的特异性最高但 HM 不是最高
SFT 在细粒度集上达到了 0.935 的特异性------高于 SpeciaRL 的 0.920。但 SFT 的 HM(0.866)低于 SpeciaRL(0.883)。这说明:
- 单纯追求特异性会导致正确性崩溃(SFT 的正确性只有 0.807)
- HM 作为平衡指标更能反映实际可用性
- SpeciaRL 的"略低特异性 + 显著更高正确性"是更优的工程选择
8.4 反直觉四:模型已经知道答案,训练只是让它说出来
BoN-64 分析揭示了一个深刻的事实:模型在训练前就已经拥有细粒度知识。SpeciaRL 的训练不是"教新知识",而是"改变行为模式"------从"保守地输出 Generic"转变为"自信地输出 Specific"。
这意味着:
- 训练数据量不需要很大(3000 张鸟类图片即可)
- 关键在于奖励机制的设计,而非数据规模
- 这种方法对数据稀缺的细粒度领域尤其有价值
8.5 常见工程误判
-
误判:"提升特异性需要更多训练数据"
-
事实:SpeciaRL 用 3000 张图片就实现了显著超越基线的性能,核心在于奖励机制而非数据量
-
误判:"动态奖励计算开销太大,不实用"
-
事实:LLM 验证器虽然慢,但只在训练时使用。推理时与标准模型一样快,无额外开销
-
误判:"GRPO 的组大小越大越好"
-
事实 : N = 10 N = 10 N=10 优于 N = 15 N = 15 N=15,说明组大小存在最优值,过大反而有害
9. 实际部署中的意义
9.1 对开放世界视觉识别的改变
当前视觉识别系统分为两类:
- 封闭世界:固定标签集(ImageNet 1000 类),无法处理新类别
- 开放世界但泛泛:能识别任意类别,但只输出 superclass("鸟"而非"金翅莺")
SpeciaRL 提供了一条中间路径:开放世界且具体------模型可以识别训练时从未见过的新类别,并且输出尽可能具体的类别名称。
这对实际应用的影响:
- 生物多样性监测:自动识别相机陷阱拍摄的野生动物物种
- 医学影像:识别具体的病变类型而非泛泛的"异常"
- 零售识别:识别具体的产品型号而非"电子产品"
9.2 对推理模型训练范式的启示
SpeciaRL 的方法论可以推广到任何需要"在正确性与信息量之间做权衡"的生成任务:
- 问答系统:回答应该具体到什么程度?"2024 年"vs"2024 年 7 月"vs"2024 年 7 月 15 日"
- 代码生成:生成的代码应该使用具体库还是抽象接口?
- 摘要生成:摘要应该包含多少细节?
核心原则:动态奖励应该基于模型自身的能力上界,而非预设的固定标准。
9.3 局限与未来方向
| 当前局限 | 未来改进方向 |
|---|---|
| 仅支持图像分类 | 扩展到目标检测、语义分割、视频理解 |
| 特异性等级是离散的 6 级 | 引入连续特异性分数,更精细的奖励粒度 |
| 验证器是外部 LLM,训练时慢 | 开发轻量级验证器或蒸馏验证能力到策略模型 |
| 仅测试于视觉任务 | 验证于纯 NLP 任务的细粒度实体识别 |
9.4 认知检查点
因此,SpeciaRL 在实际部署中的意义不是"一个更好的图像分类器",而是一个新的训练范式:让模型学会在自身能力边界内最大化信息输出。这种"能力感知"的训练理念可以推广到任何生成任务,解决"保守 vs 冒进"的永恒张力。
10. 参考文献
- Angheben, S., Berasi, D., Conti, A., Ricci, E., & Wang, Y. (2026). Specificity-aware reinforcement learning for fine-grained open-world classification. CVPR 2026 , pp. 41467-41477. arXiv:2603.03197. (arXiv)
- SpeciaRL GitHub Repository. https://github.com/s-angheben/SpeciaRL
- Shao, Z., et al. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300. (GRPO algorithm)
- Bai, S., et al. (2025). Qwen2.5-VL Technical Report. arXiv:2502.13923.
- Conti, A., et al. (2025). What is the object in the image? Benchmarking LMMs for Open-World Image Classification. CVPR 2025.
- Bossard, L., et al. (2014). Food-101 -- Mining Discriminative Components with Random Forests. ECCV 2014.
- Nilsback, M. E., & Zisserman, A. (2008). Automated Flower Classification over a Large Number of Classes. ICVGIP 2008.
- Parkhi, O. M., et al. (2012). Cats and Dogs. CVPR 2012.
- Krause, J., et al. (2013). 3D Object Representations for Fine-Grained Categorization. ICCV 2013.
- Maji, S., et al. (2013). Fine-Grained Visual Classification of Aircraft. arXiv:1306.5151.