File size: 8,975 Bytes
280f7b8 b2e9504 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 91e2b20 280f7b8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | ---
license: cc-by-nc-sa-4.0
base_model:
- OpenGVLab/InternVL3_5-2B
base_model_relation: finetune
datasets:
- QiZishi/OphReason-Vision
language:
- zh
tags:
- ophthalmology
- multimodal
- reasoning
- reinforcement-learning
---
<p align="center">
<img src="figures/模型图标.png" width="120" alt="OphVLM-R1 项目图标">
</p>
<h1 align="center">OphVLM-R1</h1>
<p align="center"><strong>基于课程强化学习的高效眼科推理模型</strong></p>
<p align="center">
<a href="https://huggingface.co/QiZishi/OphVLM-R1/blob/main/README.md">English</a> · <a href="https://huggingface.co/QiZishi/OphVLM-R1/blob/main/README_zh.md">简体中文</a>
</p>
<p align="center">
<a href="https://qizishi.github.io/OphVLM-R1/"><img src="https://img.shields.io/badge/项目-主页-2b6cb0?style=for-the-badge" alt="项目主页"></a>
<a href="https://github.com/QiZishi/OphAgent/"><img src="https://img.shields.io/badge/代码-OphAgent-181717?style=for-the-badge&logo=github" alt="OphAgent 代码"></a>
</p>
<p align="center">
<a href="https://huggingface.co/QiZishi/OphVLM-R1"><img src="https://img.shields.io/badge/🤗%20模型-Hugging%20Face-FFD21E?style=for-the-badge" alt="Hugging Face 模型"></a>
<a href="https://www.modelscope.cn/models/MoonNight/OphVLM-R1"><img src="https://img.shields.io/badge/模型-ModelScope-624AFF?style=for-the-badge" alt="ModelScope 模型"></a>
</p>
<p align="center">
<a href="https://huggingface.co/datasets/QiZishi/OphReason-Vision"><img src="https://img.shields.io/badge/🤗%20数据集-Hugging%20Face-FFD21E?style=for-the-badge" alt="Hugging Face 数据集"></a>
<a href="https://www.modelscope.cn/datasets/MoonNight/OphReason-Vision"><img src="https://img.shields.io/badge/数据集-ModelScope-624AFF?style=for-the-badge" alt="ModelScope 数据集"></a>
</p>
## 模型简介
**OphVLM-R1** 是一个面向眼科多模态推理的轻量级 2B 参数视觉语言模型。模型以 InternVL3.5-2B 为基座,先通过 LoRA 监督微调(SFT)学习眼科领域知识,再通过四阶段课程强化学习逐步获得更复杂的临床推理能力。训练过程引入 Group Sequence-level Policy Optimization(GSPO)和困难样本动态回溯,以改善长推理轨迹及长尾困难病例的优化效果。
本 README 聚焦模型训练流程、模型框架与算法、实验性能结果。数据集构建流程及数量分布详见下方 OphReason-Vision 数据集仓库。
## 项目资源
- **项目主页**:<https://qizishi.github.io/OphVLM-R1/>
- **OphVLM-R1 模型**:[Hugging Face](https://huggingface.co/QiZishi/OphVLM-R1) | [ModelScope](https://www.modelscope.cn/models/MoonNight/OphVLM-R1)
- **OphReason-Vision 数据集**:[Hugging Face](https://huggingface.co/datasets/QiZishi/OphReason-Vision) | [ModelScope](https://www.modelscope.cn/datasets/MoonNight/OphReason-Vision)
- **OphAgent 系统**:[GitHub](https://github.com/QiZishi/OphAgent/)
## 模型与训练框架
OphVLM-R1 以 InternVL3.5-2B 为主干网络。2B 参数规模兼顾多模态临床推理能力与资源受限环境中的部署需求,整体训练分为两个阶段。

### 阶段一:LoRA 监督微调
冷启动阶段使用 Low-Rank Adaptation 注入眼科领域知识:
$$ W_0 + \Delta W = W_0 + BA, \qquad h = W_0x + \frac{\alpha}{r}BAx $$
其中 \\(B \in \mathbb{R}^{d \times r}\\)、\\(A \in \mathbb{R}^{r \times k}\\),且 \\(r \ll \min(d,k)\\)。SFT 目标函数为:
$$ \mathcal{L}_{\mathrm{SFT}}=-\mathbb{E}\left[\sum_{t=1}^{\lvert y\rvert}\log\pi_\phi(y_t\mid x,y_{\lt t})\right]. $$
| 配置 | 数值 |
|---|---|
| 训练子集 | 3,418 条冷启动样本 |
| LoRA rank / scaling | \\(r=64\\),\\(\alpha=128\\) |
| 目标投影层 | \\(W_q\\)、\\(W_k\\)、\\(W_v\\)、\\(W_o\\) |
| 学习率 | \\(1\times10^{-4}\\),余弦退火 |
| 批次大小 / 轮数 | 32 / 3 epochs |
| 可训练参数 | 约占总参数的 0.5% |
### 阶段二:课程强化学习
GSPO 在序列级计算策略重要性比率,避免独立裁剪 token-level ratio:
$$ s_i(\phi)=\left(\frac{\pi_\phi(y_i\mid x)}{\pi_{\phi_{\mathrm{old}}}(y_i\mid x)}\right)^{\frac{1}{\lvert y_i\rvert}}=\exp\left(\frac{1}{\lvert y_i\rvert}\sum_{t=1}^{\lvert y_i\rvert}\log\frac{\pi_\phi(y_{i,t}\mid x,y_{i,\lt t})}{\pi_{\phi_{\mathrm{old}}}(y_{i,t}\mid x,y_{i,\lt t})}\right). $$
采用 group-normalized advantage 的 PPO 风格目标函数:
$$ \mathcal{J}_{\mathrm{GSPO}}(\phi)=\mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\min\left(s_i\hat A_i,\operatorname{clip}(s_i,1-\varepsilon,1+\varepsilon)\hat A_i\right)\right]. $$
各阶段使用混合奖励:
$$ r(x,y)=\lambda_1r_{\mathrm{rule}}(x,y)+\lambda_2r_{\mathrm{judge}}(x,y), $$
其中 judge reward 由 Intern-S1-mini 提供。课程难度依照临床诊断路径递增:
1. **病灶定位(Lesion Localization)**:单图像视觉感知。
2. **多图选择(Multi-image Selection)**:跨图像比较。
3. **报告生成(Report Generation)**:结构化长文本综合。
4. **知识问答(Knowledge Q&A)**:视觉发现与临床知识整合。
| 配置 | 数值 |
|---|---|
| 组大小 / 裁剪范围 | \\(G=8\\),\\(\varepsilon=0.2\\) |
| 学习率 | \\(5\times10^{-6}\\) |
| KL 系数 | \\(\beta_{\mathrm{KL}}=0.04\\) |
| 奖励权重 | \\(\lambda_1=0.6\\),\\(\lambda_2=0.4\\) |
| 训练轮数 | 每个课程阶段 2 epochs |
### 困难样本动态回溯
最近 \\(k=5\\) 轮中持续获得低奖励的 prompt 会以 on-policy 方式重新采样:
$$ P_{\mathrm{sample}}(x,y)\propto f(x,y)^\beta, $$
其中 \\(f(x,y)\\) 表示连续失败次数,\\(\beta=2.0\\)。重采样 prompt 每次都生成新的 rollout,且其占比不超过单个 batch 的 30%。
### 训练技术栈
- **硬件**:8 块 NVIDIA GeForce RTX 4090(每块 24 GB)。
- **SFT**:使用 4 块 GPU。
- **强化学习**:6 块 GPU 用于训练,2 块 GPU 用于 vLLM rollout 生成。
- **软件**:ms-swift、DeepSpeed ZeRO-3、AdamW、vLLM 和 EvalScope。
## 模型实验
### 评测基准
| 基准 | 样本数 | 任务 / 来源数 | 用途 |
|---|---:|---:|---|
| In-Domain | 2,000 | 4 个任务 | 留出临床推理评测 |
| Fundus-MMBench | 620 | 31 个任务 | 细粒度眼底分析 |
| OmniMedVQA-Eye | 10,044 | 11 个来源 | 域外 VQA |
### 主要结果
表中指标为准确率(%)。由于不同基准的任务形式、难度和随机基线不同,跨基准平均值仅供参考,应优先进行同一基准内比较。
| 模型 | In-Domain | Fundus | Omni-Eye | 平均* |
|---|---:|---:|---:|---:|
| InternVL3.5-2B | 34.50 | 36.61 | 55.47 | 42.19 |
| InternVL3.5-4B | 36.23 | 42.10 | 77.51 | 51.95 |
| MedVLM-R1-2B | 27.80 | 20.81 | 68.06 | 38.89 |
| Lingshu-7B | **44.20** | 41.29 | 87.42 | **57.64** |
| HuatuoGPT-Vision-7B | 38.30 | 28.06 | 71.78 | 46.05 |
| FundusExpert-8B | 31.20 | **54.84** | 64.71 | 50.25 |
| OphthaReason-Intern-2B | 31.00 | 35.48 | 79.61 | 48.70 |
| OphthaReason-Qwen-3B | 36.60 | 38.87 | 86.86 | 54.11 |
| **OphVLM-R1-2B(本文)** | 38.40 | 42.58 | **88.24** | 56.41 |
OphVLM-R1 在 OmniMedVQA-Eye 和 Fundus-MMBench 上分别达到 88.24% 和 42.58%。其 56.41% 的参考平均值比 InternVL3.5-4B 高 4.46 个百分点,比 OphthaReason-Qwen-3B 高 2.30 个百分点。与 off-the-shelf 7B/8B 模型的比较同时受到训练数据暴露和参数规模差异影响,需要谨慎解读。
### 消融实验
| 配置 | In-Domain | Fundus | Omni-Eye | \\(\Delta\\) Omni |
|---|---:|---:|---:|---:|
| **OphVLM-R1(完整)** | **38.40** | **42.58** | **88.24** | — |
| 仅 SFT | 37.52 | 34.47 | 62.03 | -26.21 |
| SFT + 一次性 RL | 37.96 | 38.62 | 78.14 | -10.10 |
| SFT + 随机课程 RL | 37.73 | 37.85 | 76.48 | -11.76 |
| 移除阶段 1 | 38.14 | 40.43 | 85.62 | -2.62 |
| 移除阶段 2 | 38.02 | 40.17 | 85.13 | -3.11 |
| 移除阶段 3 | 37.88 | 39.72 | 84.38 | -3.86 |
| 移除阶段 4 | 38.07 | 40.31 | 85.47 | -2.77 |
| 使用 token-level GRPO | 37.84 | 39.76 | 84.52 | -3.72 |
| 移除困难样本回溯 | 38.11 | 40.83 | 86.12 | -2.12 |
消融结果表明,有序课程强化学习、序列级优化与困难样本回溯均带来独立贡献。所有结果均来自单次运行,未提供置信区间或显著性检验。此外,GSPO 的方差缩减理论在 per-token log-ratio 相互独立同分布时严格成立;对于自然语言 token 相关的实际情形,该结论是近似的。
## 引用
```bibtex
@inproceedings{qi2026ophvlm,
title={OphVLM-R1: Efficient Ophthalmic Reasoning via Curriculum Reinforcement Learning},
author={Qi, Zishi and Hu, Xiaoya and Pan, Huilin and Gao, Ang and Hou, Jiaxin and Li, Jiankun and Qian, Yongao},
booktitle={Proceedings of the World Artificial Intelligence Conference Academic (WAICA)},
year={2026}
}
```
## 致谢
感谢 [OpenGVLab](https://github.com/OpenGVLab/InternVL) 提供 InternVL 基础模型,并感谢参与数据审核与质量控制的眼科医生。
|