/ Модель

Характеристики

Контекст
262 144 токена
Размер весов
9,7 ГБ
Лицензия
Apache 2.0
Архитектура
qwen3_vl · dense
Базовая модель
Qwen3-VL-4B-Instruct
Опубликована
1 мая 2026

HealthGPT-Pro-4B

Генерация изображенийИзображение, текст → изображение3 профессии

Медицинская мультимодальная модель на базе Qwen3-VL-4B для анализа медицинского текста, изображений и объёмных данных.

46скачиваний за 30 дней5лайковвеса обновлены31 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

HealthGPT-Pro-4B — медицинская мультимодальная модель на архитектуре Qwen3-VL, дообученная разработчиками проекта HealthGPT-Pro на базе Qwen/Qwen3-VL-4B-Instruct. Модель принимает текст, медицинские изображения и 3D-объёмы; для обработки 3D-данных README описывает преобразование объёма в последовательность кадров, подаваемую как видео. Модель предназначена для понимания и анализа медицинского текста и изображений, ответов на вопросы и выполнения инструкций в медицинских и общих сценариях.

В README заявлена поддержка КТ, МРТ, рентгенограмм, УЗИ, эндоскопических, дерматоскопических, офтальмологических, микроскопических и других медицинских изображений. Модель имеет 4 млрд параметров и использует формат safetensors; заявлены английский и китайский языки. Карточка сообщает о двухэтапном обучении на данных для выравнивания и supervised fine-tuning, сохранившем общие данные для следования инструкциям. Лицензия — Apache-2.0. Модель предназначена для исследовательского использования и не заменяет профессиональную клиническую оценку, диагностику или лечение.

Сценарии применения

  • ответы на вопросы по медицинским изображениям
  • анализ рентгенограмм, КТ и МРТ
  • описание результатов визуального исследования
  • анализ дерматоскопических и офтальмологических изображений
  • обработка 3D-медицинских объёмов через последовательность кадров
  • ответы на вопросы по медицинским текстам

Ограничения

Модель предназначена для исследований и не должна заменять профессиональное клиническое суждение, диагностику или лечение. Для подачи 3D-объёмов README описывает преобразование их в последовательность 2D-кадров.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🧭 0. Overview

HealthGPT-Pro is a SoTA medical multimodal large language model (Med-MLLM) built on Qwen3-VL. It is designed for medical text, 2D medical image, and 3D medical volumes understanding and analysis, providing strong performance across broad medical text-based and vision-language tasks.

✨ Core features:

  • Multimodal input support: HealthGPT-Pro can process text, 2D images, and 3D volumetric data.
  • Efficient training: HealthGPT-Pro achieves SoTA performance through a two-stage training recipe, using 3M samples for alignment and 10M samples for SFT.
  • Instruction following: Unlike many medical Med-MLLMs tuned only on medical-domain data, HealthGPT-Pro preserves a substantial proportion of general data to maintain instruction-following ability.
  • Comprehensive modality coverage: (1) Computed Tomography (2) Digital Photography (3) Fundus Photography (4) Infrared Reflectance Imaging (5) Magnetic Resonance Imaging (6) Optical Coherence Tomography (7) Dermoscopy (8) Endoscopy (9) Microscopy (10) X-ray Imaging (11) Ultrasound Imaging (12) Histopathology (13) Colposcopy (14) Text.
  • Comprehensive task coverage: HealthGPT-Pro is trained on diverse medical and general tasks, with strong instruction-following behavior.

This model is intended for research use. It should not be used as a substitute for professional clinical judgment, diagnosis, or treatment.

📊 1. Performance Comparison

📝 Medical Text Benchmarks

ModelMMLU-MedMMLU-Pro-MedMMedBenchMedBulletsMedMCQAMedQAMedXpertQA-TextPubMedQASuperGPQA-MedicalAvg.
Qwen3-VL-4B74.350.760.546.456.060.512.675.629.651.8
Qwen3-VL-8B79.857.465.951.361.165.912.876.230.255.6
Lingshu-7B75.853.564.557.856.664.416.976.829.955.1
HealthGPT-14B80.263.463.239.863.466.211.368.025.753.5
HuatuoGPT-V-34B74.751.860.742.754.758.811.454.726.548.4
Hulu-Med-4B78.658.666.759.464.871.916.877.629.558.2
Hulu-Med-7B79.560.672.861.567.673.519.677.431.160.4
HealthGPT-Pro-4B80.458.471.658.064.471.516.278.431.458.9
HealthGPT-Pro-8B83.164.171.460.668.571.318.379.235.461.3
Lingshu-32B85.570.480.870.265.674.322.679.243.865.8
Hulu-Med-32B88.173.083.671.072.380.425.080.645.468.8
HealthGPT-Pro-27B93.273.785.080.774.984.835.080.947.272.8

🖼️ Medical Multimodal Benchmarks

ModelMMMU-MedVQA-RADSLAKEPathVQAMedXpertQA-MultimodalMedFrameQAOmniMedVQA-MiniPMC-VQAM3D-MCQCT-RATE-MCQAMOS-MM-MCQAvg.
Qwen3-VL-4B44.359.977.053.013.440.674.753.057.258.849.252.8
Qwen3-VL-8B46.563.480.258.318.746.473.055.659.561.651.255.9
Lingshu-7B47.366.781.961.025.552.682.457.264.168.362.760.9
HealthGPT-14B45.562.664.256.024.145.370.256.455.257.346.553.0
HuatuoGPT-V-34B50.160.368.347.721.549.669.756.650.154.948.752.5
Hulu-Med-4B45.872.681.759.724.654.275.153.176.070.169.162.0
Hulu-Med-7B50.577.285.864.228.357.477.757.380.476.270.566.0
HealthGPT-Pro-4B52.076.683.966.720.861.478.260.081.086.271.167.1
HealthGPT-Pro-8B54.778.485.070.725.363.680.261.181.686.072.269.0
Lingshu-32B62.168.989.985.830.460.383.565.264.874.365.968.3
Hulu-Med-32B42.872.991.690.035.760.981.264.379.382.875.070.6
HealthGPT-Pro-27B68.368.992.687.244.162.679.870.084.989.980.375.3

⚙️ 2. Environment Setup

The recommended environment is provided as follows:

# Create and activate a clean Python 3.12 environment
conda create -n healthgpt-pro python=3.12 -y
conda activate healthgpt-pro

# Install PyTorch with CUDA support
# If your CUDA version is lower than 12.8, install a matching PyTorch build instead (e.g., cu121 or cu118).
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

# Install FlashAttention for faster attention
pip install flash-attn==2.8.3 --no-build-isolation --upgrade

# Install other dependencies
pip install transformers==4.57.1 accelerate==1.11.0 deepspeed==0.16.9 numpy==1.26.4 peft==0.17.1
pip install qwen-vl-utils pillow

🚀 3. Inference

🧩 Load Model and Processor

import numpy as np
import torch
from PIL import Image
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
from qwen_vl_utils import process_vision_info

model_id = "HealthGPT-Pro-4B"

model = Qwen3VLForConditionalGeneration.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
    device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)

💬 Text-Only Inference

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Explain the key symptoms and common risk factors of pneumonia."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids_trimmed = [
    out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False,
)
print(output_text[0])

🩻 Single-Image Inference

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "examples/chest_xray.png"},
            {"type": "text", "text": "Describe the main radiological findings in this image."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids_trimmed = [
    out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False,
)
print(output_text[0])

🖼️ Multi-Image Inference

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "examples/image_1.png"},
            {"type": "image", "image": "examples/image_2.png"},
            {"type": "text", "text": "Compare these two medical images and summarize the key differences."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids_trimmed = [
    out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False,
)
print(output_text[0])

🧠 3D Volume Inference

The repository inference path converts a 3D .npy volume into a sequence of 2D frames and sends it as a video-style input.

def ct_to_video(ct_path: str):
    ct_pixels = np.load(ct_path)
    ct_u8 = np.clip(ct_pixels * 255, 0, 255).astype(np.uint8)

    frames = []
    idx = np.linspace(1, len(ct_u8) - 2, 10, dtype=int)
    for i in idx:
        rgb = np.stack([ct_u8[i]] * 3, axis=-1)
        frames.append(Image.fromarray(rgb, mode="RGB"))
    return frames

volume_frames = ct_to_video("examples/ct_volume.npy")
messages = [
    {
        "role": "user",
        "content": [
            {"type": "video", "video": volume_frames, "sample_fps": 2.0},
            {"type": "text", "text": "Analyze this CT volume and summarize the main findings."},
        ],
    }
]

text = processor.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
images, videos, video_kwargs = process_vision_info(
    messages,
    image_patch_size=16,
    return_video_kwargs=True,
    return_video_metadata=True,
)
if videos is not None:
    videos, video_metadatas = zip(*videos)
    videos, video_metadatas = list(videos), list(video_metadatas)
else:
    video_metadatas = None

inputs = processor(
    text=text,
    images=images,
    videos=videos,
    video_metadata=video_metadatas,
    return_tensors="pt",
    do_resize=False,
    **video_kwargs,
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids_trimmed = [
    out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False,
)
print(output_text[0])

📚 4. Citation

If you find this model useful for your research, please cite:

@misc{lin2025healthgptmedicallargevisionlanguage,
      title={HealthGPT: A Medical Large Vision-Language Model for Unifying Comprehension and Generation via Heterogeneous Knowledge Adaptation}, 
      author={Tianwei Lin and Wenqiao Zhang and Sijing Li and Yuqian Yuan and Binhe Yu and Haoyuan Li and Wanggui He and Hao Jiang and Mengze Li and Xiaohui Song and Siliang Tang and Jun Xiao and Hui Lin and Yueting Zhuang and Beng Chin Ooi},
      year={2025},
      eprint={2502.09838},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2502.09838}, 
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Задача «image-text-to-image» пока не поддерживается рантаймом.

Класс архитектуры
Qwen3VLForConditionalGeneration
Ревизия весов
c8a4935

0 моделей