Instructions to use cabbagel/caT-MDC with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use cabbagel/caT-MDC with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="cabbagel/caT-MDC") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("cabbagel/caT-MDC") model = AutoModelForMultimodalLM.from_pretrained("cabbagel/caT-MDC", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use cabbagel/caT-MDC with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "cabbagel/caT-MDC" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cabbagel/caT-MDC", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/cabbagel/caT-MDC
- SGLang
How to use cabbagel/caT-MDC with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "cabbagel/caT-MDC" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cabbagel/caT-MDC", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "cabbagel/caT-MDC" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cabbagel/caT-MDC", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use cabbagel/caT-MDC with Docker Model Runner:
docker model run hf.co/cabbagel/caT-MDC
caT-MDC
caT-MDC is the model submitted by team caT to the MDC track of the
MARS2 2026 Challenge.
The model uses the Qwen3.5-9B multimodal architecture and was post-trained with the team's cold-start and group-based reinforcement-learning pipeline. This repository contains the complete merged model in Hugging Face Transformers format rather than a LoRA adapter.
Model Details
| Item | Description |
|---|---|
| Team | caT |
| Challenge | MARS2 2026 |
| Track | MDC |
| Backbone | Qwen3.5-9B |
| Architecture | Qwen3_5ForConditionalGeneration |
| Model type | Multimodal vision-language model |
| Weight format | Safetensors |
| Precision | BFloat16 |
| Training stage | Cold-start post-training followed by GSPO-stage reinforcement learning |
| Release format | Complete merged model |
Training Summary
The released checkpoint is the selected MDC submission model. According to the
archived configuration in args.json, its reinforcement-learning stage used:
- learning rate:
1e-5 - epochs:
1 - per-device batch size:
4 - gradient accumulation steps:
2 - rollout generations per prompt:
8 - maximum completion length:
8048 - precision: BFloat16
- optimizer: fused AdamW
- learning-rate schedule: cosine
- experiment tracking: SwanLab and TensorBoard
The competition training dataset is not redistributed in this model repository.
Repository Contents
config.json: model architecture and configurationgeneration_config.json: default generation configurationmodel-*.safetensors: sharded model weightsmodel.safetensors.index.json: weight indexpreprocessor_config.json: multimodal preprocessing configurationprocessor_config.json: processor configurationtokenizer.json: tokenizertokenizer_config.json: tokenizer configurationchat_template.jinja: conversation templateargs.json: archived training arguments
Installation
pip install -U transformers accelerate pillow
Qwen3.5 requires a recent Transformers version. Refer to the official Qwen3.5-9B model card for current compatibility guidance.
Loading the Model
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
model_id = "cabbagel/caT-MDC"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3_5ForConditionalGeneration.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
)
print(model.__class__.__name__)
Expected model class:
Qwen3_5ForConditionalGeneration
Basic Text Inference
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
model_id = "cabbagel/caT-MDC"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3_5ForConditionalGeneration.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
)
messages = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Briefly describe your multimodal reasoning capabilities.",
}
],
}
]
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)
output_ids = generated_ids[:, inputs["input_ids"].shape[1]:]
response = processor.batch_decode(
output_ids,
skip_special_tokens=True,
)[0]
print(response)
For image and video inputs, follow the multimodal message format documented in the official Qwen3.5 model card.
Intended Use
This model is released for:
- reproduction and verification of the caT MDC submission;
- research on multimodal understanding and reasoning;
- evaluation within the MARS2 MDC task setting.
Limitations
- The model was optimized for the MDC competition setting and may not generalize to unrelated tasks.
- The model may produce inaccurate or unsupported responses.
- No claim is made that the model is suitable for safety-critical or high-stakes applications.
- Users should independently verify model outputs.
Acknowledgements
This work builds on Qwen3.5-9B. We thank the Qwen team and the MARS2 2026 organizers.
- Downloads last month
- 13