ZJUI-AI4H/Hulu-Med

A Transparent Generalist Model towards Holistic Medical Vision-Language Understanding

📚 什么是 Hulu‑Med

Hulu‑Med 是一个开源的多模态医疗视觉语言模型(VLM),能够理解和生成关于医疗文本、2D 图像、3D 体积(例如 CT/MRI NIfTI 文件)以及视频的文本。 作者使用涵盖 12 个解剖系统和 14 种成像模态的1670 万条公开医疗样本训练了该模型,并发布了完整的训练流程、数据整理脚本和模型权重。


🎯 核心功能

  • 全面的多模态推理 – 针对文本、图像、3D 扫描和手术视频的任意组合,回答问题、撰写报告或进行诊断式推理。
  • 透明且可复现 – 所有代码、数据列表和权重均在 Apache‑2.0 许可证下公开。
  • 高效推理 – 兼容 HuggingFace Transformers、vLLM、flash-attention 和 tensor-parallelism,支持快速服务。
  • 多种模型尺寸 – 从轻量级的 4 B 参数模型到 235 B 参数的“Flash-Preview”变体,让用户可以在速度、内存和准确性之间选择合适的权衡。

📦 模型库(选定的变体)

模型 参数量 基础 LLM 近似 GPU 小时* HF 链接
Hulu‑Med‑4B 4 B Qwen3‑VL‑4B ~1 k 🤗
Hulu‑Med‑7B 7 B Qwen2.5‑7B ~4 k 🤗
Hulu‑Med‑14B 14 B Qwen3‑14B ~8 k 🤗
Hulu‑Med‑30A3 30 B Qwen3‑VL‑30A3B ~3.2 k 🤗
Hulu‑Med‑235A22 (Flash‑Preview) 235 B Qwen3‑VL‑235A22B ~10 k 🤗

*GPU 小时是单节点训练运行的粗略估计值。


📈 性能如何?

作者在30 个医疗 VLM 和文本数据集(例如 VQA‑RAD、PathVQA、MedXQA、MMLU‑Pro)上进行了基准测试。 总体而言,Hulu‑Med 优于现有的开源医疗 VLM,并且通常缩小了与 GPT‑4.0 等专有模型的差距。 亮点:

  • Hulu‑Med‑7B 在 OM.VQA 上达到 84.2,在 MedXQA 上达到 66.8,是 10 B 以下开源模型中最好的。
  • Hulu‑Med‑235A22 在 VQA‑RAD 上达到 70.5,在 MedXQA 上达到 39.8,超越了所有列出的竞争对手。
  • 在纯文本医疗考试(MMLU‑Pro、Medbullets 等)中,14 B 和 30 B 变体取得了 68–69 分,是开源 VLM 中的最高分。

🛠️ 快速开始(HuggingFace Transformers)

from transformers import AutoModelForCausalLM, AutoProcessor
import torch

model_id = "ZJU-AI4H/Hulu-Med-7B"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    torch_dtype="bfloat16",
    device_map="auto",
    attn_implementation="flash_attention_2",
)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)

# 示例:从 2D X 光图像生成报告
conversation = [{
    "role": "user",
    "content": [
        {"type": "image", "image": {"image_path": "./demo/xray.jpg"}},
        {"type": "text", "text": "写一份简洁的放射学报告。"},
    ]
}]
inputs = processor(conversation=conversation, return_tensors="pt", add_generation_prompt=True)
inputs = {k: v.to(model.device) if isinstance(v, torch.Tensor) else v for k, v in inputs.items()}
output_ids = model.generate(**inputs, max_new_tokens=1024)
print(processor.batch_decode(output_ids, skip_special_tokens=True)[0])

相同的 processor 也适用于3D NIfTI 体积type: "3d")和视频type: "video")。 有关详细示例,请参阅 README。


⚡ 使用 vLLM 运行(高吞吐量服务)

VLLM_USE_PRECOMPILED=1 pip install git+https://github.com/jiangsongtao/vllm.git
pip install decord ffmpeg imageio   # 视频支持

安装后,使用模型路径启动 vLLM,并使用标准的 OpenAI 兼容 API 发送多模态负载。


📂 仓库结构(高层)

  • scripts/ – 数据整理、预处理和训练启动脚本。
  • hulu_med/ – 模型定义和解析多模态对话格式的自定义 processor
  • demo/ – README 中使用的示例图像、视频和 3D 扫描。
  • requirements.txt – 完整的 Python 依赖列表。
  • LICENSE – Apache 2.0。

📜 许可证与引用

代码和权重以 Apache 2.0 发布。 如果您在研究或产品中使用这些模型,请引用徽章中链接的 arXiv 论文(arXiv:2510.08668)。


🔗 有用链接


🤔 何时使用 Hulu‑Med?

  • 需要公开可用的 VLM 用于医疗影像或视频的临床 AI 研究
  • 从放射学图像生成解释或报告的教育工具
  • 希望使用单个模型处理文本、2D、3D 和视频输入,而无需拼接单独系统的原型构建

🚀 下一步

  1. 选择适合您 GPU 预算的模型大小。
  2. 遵循安装步骤(conda + pip)或 vLLM 路径进行大规模服务。
  3. 使用提供的 Python 代码片段开始对文本、图像、3D 或视频输入进行实验。
  4. 通过报告错误、添加新的公开医疗数据集或在专业子领域进行微调来做出贡献。

相关