LungCT-Nodule-GRPO
肺结节CT诊断VLM。基于 Qwen2.5-VL-3B 三阶段后训练(SFT → DPO → GRPO),能看图写放射科诊断报告。
使用方法
from unsloth import FastVisionModel
from peft import PeftModel
model, tokenizer = FastVisionModel.from_pretrained(
"Qwen/Qwen2.5-VL-3B-Instruct", load_in_4bit=True)
model = PeftModel.from_pretrained(
model, "huang01080524/lungct-nodule-grpo")
# 上传 CT 多视图图片(轴位/冠位/矢位), 模型输出诊断报告
训练数据
- LUNA16: 888 例肺结节 CT(质心 + 直径标注)
- LIDC-IDRI: 854 结节 × 9 维放射科医生标注(纹理/边界/毛刺/分叶/钙化/恶性度等)
- CT-RATE: 21,382 份真实放射科报告(诊断语言风格参考)
训练管线
| 阶段 | 方法 | 优化目标 | 数据量 |
|---|---|---|---|
| SFT | BF16 LoRA + ViT后4层解冻 | 看图写报告基础能力 | 1472条(多视图) |
| DPO | 纯文本偏好对齐 | 诊断语言质量 | 90对(DeepSeek+CT-RATE) |
| GRPO | 纯文本群体策略优化 | 诊断全面性+推理链 | 90 prompts |
关键发现: VLM 后训练中 SFT 负责视觉理解, DPO/GRPO 应聚焦语言质量——纯文本训练将 VRAM 从 28GB 降至 10GB, DPO 训练从 30min 降至 75s。
硬件
- GPU: NVIDIA RTX 5090 32GB
- 总费用: ~¥200 (AutoDL 按量计费)
- 训练时间: ~3h SFT + 75s DPO + 1h GRPO
局限
- 仅支持肺结节场景, 不支持其他胸部病变
- 恶性评估需结合临床信息, 不可直接用于临床决策
- 3B 参数量对精确毛刺分级/分叶评分等细节任务能力有限
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support
Model tree for huang01080524/lungct-nodule
Base model
Qwen/Qwen2.5-VL-3B-Instruct