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)。
🔗 有用链接
- 论文: https://arxiv.org/abs/2510.08668
- HuggingFace 模型中心: https://huggingface.co/collections/ZJU-AI4H/hulu-med
- ModelScope: https://modelscope.cn/models/Med-Team/Hulu-Med
- 实时演示: https://79aafa693c9637a31d.gradio.live
- 评估套件 (MedUniEval): https://github.com/ZJUI-AI4H/MedUniEval (在新闻部分中提到)
🤔 何时使用 Hulu‑Med?
- 需要公开可用的 VLM 用于医疗影像或视频的临床 AI 研究。
- 从放射学图像生成解释或报告的教育工具。
- 希望使用单个模型处理文本、2D、3D 和视频输入,而无需拼接单独系统的原型构建。
🚀 下一步
- 选择适合您 GPU 预算的模型大小。
- 遵循安装步骤(conda + pip)或 vLLM 路径进行大规模服务。
- 使用提供的 Python 代码片段开始对文本、图像、3D 或视频输入进行实验。
- 通过报告错误、添加新的公开医疗数据集或在专业子领域进行微调来做出贡献。
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch