ZJUI-AI4H/Hulu-Med
A Transparent Generalist Model towards Holistic Medical Vision-Language Understanding
📚 Hulu‑Medとは?
Hulu‑Medは、医療テキスト、2D画像、3Dボリューム(例:CT/MRIのNIfTIファイル)、および動画に関するテキストを理解し、生成できるオープンソースのマルチモーダル医療ビジョン言語モデル(VLM)です。 著者らは、12の解剖学的システムと14の画像モダリティをカバーする1,670万の公開医療サンプルでモデルを訓練し、完全な訓練パイプライン、データキュレーションスクリプト、およびモデル重みを公開しています。
🎯 主な機能
- 包括的なマルチモーダル推論 – テキスト、画像、3Dスキャン、手術動画の任意の組み合わせに対して、質問への回答、レポート作成、または診断スタイルの推論を実行します。
- 透明性があり再現可能 – すべてのコード、データリスト、重みがApache‑2.0ライセンスの下で公開されています。
- 効率的な推論 – HuggingFace Transformers、vLLM、flash-attention、テンソル並列性と互換性があり、高速なサービングが可能です。
- 複数のモデルサイズ – 軽量な4Bパラメータモデルから235Bパラメータの「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を達成し、10B未満のオープンモデルの中で最高です。
- Hulu‑Med‑235A22はVQA‑RADで70.5、MedXQAで39.8を達成し、リストされたすべての競合製品を上回っています。
- 純粋なテキストの医療試験(MMLU‑Pro、Medbulletsなど)では、14Bおよび30Bバリアントが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