Ophiuchus: Incentivizing Tool-augmented "Think with Images" for Joint Medical Segmentation, Understa 论文复现

一、需要下载的模型 & 权重

资源下载来源用途
Qwen2.5-VL-7B-Instruct HuggingFace 基模型(论文原文用的就是 7B)
SAM2 checkpoints (sam2.1_hiera_tiny/small/base_plus/large) Facebook 工具服务,SAM2
microsoft/BiomedParse HuggingFace 工具服务,BiomedParse
openai/clip-vit-base-patch32 HuggingFace BiomedParse 依赖
microsoft/BiomedNLP-BiomedBERT HuggingFace BiomedParse 依赖


二、训练数据集(需要自行构建,官方未发布)

论文训练数据来源于两个公开源数据 + GPT-4o 生成轨迹:

源数据

数据集内容下载
BiomedParseData 340 万 图像-掩码-标签三元组,82 类生物医学对象,9 种模态 HuggingFace
Malenia 1,514 个 CT 图像-掩码-报告三元组,12 类病变 未确认公开链接(需找)

论文构建的 3 个训练子集

子集大小用途构建方式
𝒟_cold 30k Stage A 冷启动 SFT 从源数据取图 + GPT-4o 生成带工具调用的推理轨迹
𝒟_rl 30k Stage C ATRL/GRPO 问答对(VQA + Seg),同数据源
𝒟_test 4k 域内测试 同上,保留不参与训练

关键问题:这些轨迹数据需要用 GPT-4o API 生成,仓库没有提供生成脚本——只有 SFT/RL 的格式示例。

---

三、评估 Benchmark(需要下载)

Benchmark类型下载地址
PathVQA VQA https://pathvqa.com/
SLAKE VQA https://www.med-vqa.com/slake/
VQA-RAD VQA https://www.med-vqa.com/vqa-rad/
OmniMedVQA VQA HuggingFace
MMMU (Health & Medicine) 推理 https://mmmu-benchmark.github.io/
MedXpertQA 推理 需确认
In-House-VQA/Seg 私有 论文自建(3 个医疗中心),无法获取

---

四、代码需要改什么

将之前单卡 L40 上的 patch 全部回退,恢复到论文的 16×A100 配置:

1. run_ATRL.sh → 恢复论文原始参数

trainer.n_gpus_per_node=8       # 之前改 1
trainer.nnodes=2                # 总共 16 GPU
tensor_model_parallel_size=2    # 之前改 1
train_batch_size=256            # 之前改 16
ppo_micro_batch_size_per_gpu=8  # 之前改 2
gpu_memory_utilization=0.6      # 之前改 0.4
max_prompt_length=32768         # 之前改 4096
max_response_length=32768       # 之前改 4096
param_offload=False             # 之前改 True(改为全参数训练)
total_epochs=12
model_path=Qwen/Qwen2.5-VL-7B-Instruct  # 改为 7B


2. 去掉单卡 patch

- 去掉 LoRA(lora_rank=0 或不传)
- 去掉 VLLM_USE_V1=0(多卡用 v1 引擎,更高效)
- 去掉 mm_processor_kwargs={"max_pixels":...}(大显存不需要限制像素)
- 去掉 USE_LIBUV=0VERL_MASTER_PORT=29500(多机多卡环境可能不需要,取决于网络,按需保留)
- 去掉 RAY_memory_monitor_refresh_ms=0(大量资源不需要关这个)

3. Stage A / Stage B SFT 配置

- Cold-start SFT: 用 scripts/SFT/cold-start/ 中的 my_qwen2_5vl_lora_sft.yaml(LoRA rank=8, LR=3e-4, 32 epochs, cutoff=2048)
- Reflective FT: 用 scripts/SFT/reflective_rejection_fine_tuning/config_reflective.yaml(全参数 FT, LR=1e-5, 3 epochs, cutoff=18432)
- 都需要把 datasetmodel_name_or_path 指向你实际的数据/模型路径

4. 数据准备

- SFT 数据格式参照 data/example/data_case/biomedparser-SFT.json(多轮对话含工具调用轨迹)
- RL 数据格式参照 data/example/data_case/biomedparser-RL.json(问答对)
- 用 examples/data_preprocess/prepare_Ophiuchus_dataset.py 将 JSON 转为 parquet

---

五、最大不确定项

训练数据 (𝒟_cold / 𝒟_rl) 的官方发布是最大风险。 论文说 "Dataset coming soon" 但至今未发。两个选择:

1. 等官方发布 —— 最简单,但无时间表
2. 自己构建 —— 需要:
- 下载 BiomedParseData + Malenia 的原始医学图像和掩码
- 用 GPT-4o API 生成工具调用轨迹(论文说用了 GPT-4o 生成 SFT 数据,即给模型图像+分割掩码,让 GPT-4o 模拟推理轨迹)
- 仓库里没有提供这个生成脚本,需要自己写

论文:https://www.modelscope.cn/papers/2512.14157

posted on 2026-07-30 11:45  limingqi  阅读(4)  评论(0)    收藏  举报

导航