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])

同じprocessor3D 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. バグ報告、新しい公開医療データセットの追加、または専門的なサブドメインでのファインチューニングを通じて貢献します。

関連