Model reference · open weights

MedMO-Next

Available as managed deployment LLMs MBZUAI Vision + text 2 variants 565 dl/mo

MedMO-Next is an open-weight language model from MBZUAI. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

MakerMBZUAI
TypeLanguage models
TaskVision + text
Parameters (lead)8.8B
Runs withtransformers
Released2026-02-23
Popularity565 downloads / month
LicenceOpen weights

About

What MedMO-Next is

MedMO-8B-Next is the latest and most powerful iteration of the MedMO family — an open-source multimodal foundation model purpose-built for comprehensive medical image understanding and grounding. Trained on 26M+ diverse medical samples across 45 datasets, MedMO-8B-Next achieves state-of-the-art performance across all major medical imaging benchmarks, outperforming both open-source and closed-source competitors on VQA, Text QA, grounding, and report generation tasks.


🏆 Benchmark Performance

VQA & Text QA Results

MedMO-8B-Next sets a new state-of-the-art across the board, achieving the highest average scores on both medical VQA and Text QA benchmarks — surpassing strong baselines including Lingshu-7B and Fleming-VL-8B.

OMIVQA = OmniMedVQA · MedXQA = MedXpertQA · Medbullets reported as op4/op5

Medical VQA Benchmarks

ModelMMMU-MedVQA-RAD (closed/all)SLAKE (closed/all)PathVQAPMC-VQAOmniMedVQAMedXpertQAAvg.
Lingshu-7B54.077.2 / 43.082.4 / 33.241.954.282.926.955.1
Fleming-VL-8B63.378.4 / 56.486.9 / 80.056.564.388.221.666.1
MediX-R1-8B63.375.2/51.670.3/54.441.055.373.824.957.1
MedMO-4B54.650.9 / 35.041.0 / 30.042.450.679.724.845.4
MedMO-8B64.672.3 / 64.770.6 / 70.056.359.484.826.263.2
MedMO-4B-Next58.779.7 / 59.678.0 / 74.073.375.790.627.068.5
MedMO-8B-Next69.386.4 / 68.083.0 / 81.656.374.193.342.972.7

Medical Text QA Benchmarks

ModelMMLU-MedPubMedQAMedMCQAMedQAMedbullets (op4/op5)MedXpertQASGPQAAvg.
Lingshu-7B69.675.856.363.562.0 / 53.816.427.553.1
Fleming-VL-8B71.874.051.853.740.5 / 37.312.124.945.7
MediX-R1-8B79.073.460.185.855.1/47.014.434.356.1
MedMO-4B75.778.058.078.557.5 / 47.716.429.455.1
MedMO-8B81.077.665.084.366.5 / 60.219.936.061.3
MedMO-4B-Next74.878.258.178.357.4 / 47.616.529.555.0
MedMO-8B-Next80.275.662.083.865.2 / 57.820.935.560.1

Bold = best result, underline = second-best result.

  • Benchmarked on AMD MI210 GPU.

Supported Imaging Modalities

DomainModalities
RadiologyX-ray, CT, MRI, Ultrasound
PathologyWhole-slide imaging, Microscopy
OphthalmologyFundus photography, OCT
DermatologyClinical skin images
Nuclear MedicinePET, SPECT

🚀 Quick Start

Installation

pip install transformers torch qwen-vl-utils

Basic Usage

from transformers import Qwen3VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
import torch

# Load model
model = Qwen3VLForConditionalGeneration.from_pretrained(
    "MBZUAI/MedMO-8B-Next",
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
    device_map="auto",
)

processor = AutoProcessor.from_pretrained("MBZUAI/MedMO-8B-Next")

# Prepare input
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "path/to/medical/image.png",
            },
            {"type": "text", "text": "What abnormalities are present in this chest X-ray?"},
        ],
    }
]

# Process and generate
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=512)
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])

Example: Disease Localization with Bounding Boxes

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "chest_xray.png"},
            {"type": "text", "text": "Detect and localize all abnormalities in this image."},
        ],
    }
]
# Example output:
# "Fractures [[156, 516, 231, 607], [240, 529, 296, 581]]"

Example: Radiology Report Generation

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "ct_scan.png"},
            {"type": "text", "text": "Generate a detailed radiology report for this CT scan."},
        ],
    }
]
# MedMO-8B-Next generates comprehensive clinical reports with findings and impressions

📦 Model Family

ModelParametersBest For
MedMO-8B-Next8BSOTA highest accuracy, all tasks — recommended
MedMO-4B-Next4B2nd SOTA, high accuracy in resource-constrained environments
MedMO-8B8BPrevious generation
MedMO-4B4BResource-constrained environments

📄 Citation

If you use MedMO in your research, please cite our paper:

@article{deria2026medmo,
  title={MedMO: Grounding and Understanding Multimodal Large Lan

From the published model card. Full card on the HuggingFace links in the sidebar.

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys medmo-next for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (medmo-next below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/chat/completions \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"medmo-next","messages":[{"role":"user","content":"Hello"}]}'

Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms