Instructions to use YueLinHu/GAC-Qwen3.5-4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use YueLinHu/GAC-Qwen3.5-4B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="YueLinHu/GAC-Qwen3.5-4B") 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)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("YueLinHu/GAC-Qwen3.5-4B") model = AutoModelForMultimodalLM.from_pretrained("YueLinHu/GAC-Qwen3.5-4B", 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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use YueLinHu/GAC-Qwen3.5-4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "YueLinHu/GAC-Qwen3.5-4B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "YueLinHu/GAC-Qwen3.5-4B", "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/YueLinHu/GAC-Qwen3.5-4B
- SGLang
How to use YueLinHu/GAC-Qwen3.5-4B 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 "YueLinHu/GAC-Qwen3.5-4B" \ --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": "YueLinHu/GAC-Qwen3.5-4B", "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 "YueLinHu/GAC-Qwen3.5-4B" \ --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": "YueLinHu/GAC-Qwen3.5-4B", "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 YueLinHu/GAC-Qwen3.5-4B with Docker Model Runner:
docker model run hf.co/YueLinHu/GAC-Qwen3.5-4B
GAC-Qwen3.5-4B
GAC-Qwen3.5-4B brings noise-aware adaptive SFT–RL post-training to the Qwen3.5-4B backbone. This release combines GAC post-training with a supervised mathematics and general-dialogue refinement stage, and provides BF16 inference weights, a complete three-seed evaluation summary, and a versioned evaluation profile.
Paper · Code · Project page · Release evaluation profile
Model details
- Backbone: Qwen3.5-4B-Base.
- Post-training: GAC hybrid SFT–RL followed by full-parameter supervised refinement.
- Format: BF16
safetensors, with native Qwen3.5 Transformers configuration. - Interface: the text-and-vision architecture is retained; the scores below evaluate text-only reasoning and code.
- Release: October 2026, with evaluation performed on October 3, 2026.
- License: Apache-2.0, subject to upstream Qwen3.5 notices and dataset terms.
Evaluation results
The table reports the mean over decoding seeds 0, 1, and 2 for this
checkpoint: 4,447 questions across 11 task slices, with one generated answer
per question per seed. Code scores are pass@1. Exact counts and unrounded
means are available in EVAL_RESULTS.json.
| Domain | Benchmark | Eval size per seed | GAC release three-seed mean |
|---|---|---|---|
| Mathematics | AMC | 83 | 66.7% |
| Mathematics | AIME24 | 30 | 34.4% |
| Mathematics | AIME25 | 30 | 26.7% |
| Knowledge | MMLU-Pro | 1,000 | 72.5% |
| Science | GPQA-Diamond | 198 | 59.1% |
| Science | SciBench | 692 | 58.5% |
| Code | MBPP | 500 | 68.9% |
| Code | HumanEval | 164 | 86.6% |
| Logic | BBH Logical Deduction | 750 | 94.4% |
| Logic | BBH Object Counting | 250 | 87.7% |
| Logic | BBH Tracking | 750 | 95.6% |
| Logic | BBH average (macro) | 3 slices / 1,750 | 92.6% |
BBH macro-average gives equal weight to the three slice accuracies and is calculated before rounding. The seeds measure decoding variability for one checkpoint, not three independent training runs. Evaluation informed checkpoint development; this snapshot is separate from the paper's experiments.
Evaluation protocol
All task slices use temperature 0.6, top-p 0.95, max 8,192 new tokens, one sample, BF16 inference, a 16,384-token model context, and tensor parallelism of 4. The profile generates one joint batch of all task slices for each seed.
| Task family | Scoring |
|---|---|
| AMC / AIME24 / AIME25 | Final boxed answer with math-verify==0.9.0 equivalence |
| MMLU-Pro / GPQA-Diamond | Strict extracted answer-letter match |
| SciBench | Numeric-and-units protocol v2, with balanced final boxes and 1% relative tolerance |
| MBPP / HumanEval | Final-answer code extraction, tested MBPP entrypoint, and original tests in an isolated CPU sandbox |
| BBH logic | Explicit final choices for deduction/tracking; normalized answer matching for object counting |
These are the release profile settings. The general evaluator's task-specific defaults use different code and logic budgets; use the linked release profile when reproducing this table. MMLU-Pro uses a pinned revision and the checked-in 1,000-ID manifest. GPQA requires dataset access or a lawfully obtained complete CSV; its data is not bundled.
Supervised refinement
The refinement stage uses 128 examples: 64 reviewed mathematics examples and
64 general-dialogue replay examples. It applies two epochs of full-parameter
SFT with learning rate 2e-6, global batch size 32, constant learning-rate
schedule, one warmup update, shuffle seed 20261001, and single-example
microbatches without packing. The new refinement examples passed the recorded
overlap checks against the fixed evaluation questions. See
REFINEMENT_METADATA.json for source fingerprints,
the complete refinement recipe and the scope of these checks.
Quick start
Install Transformers with native Qwen3.5 support and Accelerate:
pip install -U "transformers>=5.10.4" accelerate
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
model_id = "YueLinHu/GAC-Qwen3.5-4B"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id, dtype=torch.bfloat16, device_map="auto", trust_remote_code=False
)
messages = [{"role": "user", "content": [{"type": "text", "text": "Solve: 2 + 2 = ?"}]}]
inputs = processor.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True,
return_dict=True, return_tensors="pt"
).to(model.device)
with torch.inference_mode():
outputs = model.generate(**inputs, max_new_tokens=8192,
do_sample=True, temperature=0.6, top_p=0.95)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:],
skip_special_tokens=True))
Reproducibility and use
The release profile contains the prompts, dataset checks, generation and scoring commands, and parser tests. EVAL_RESULTS.json records all three seeds' correct counts, dataset/profile fingerprints, and scoring conventions. The release manifest identifies the published weights and code revision. Prior model revisions remain available in Hub history.
Use this model for research, reasoning experiments, and code-generation evaluation. Benchmark accuracy does not establish reliability in high-stakes applications; execute generated code only in an isolated environment and follow the licenses and access conditions of the model and datasets.
Citation
@inproceedings{hu2026gac,
title = {GAC: Noise-Aware Adaptive Mixing for Hybrid SFT-RL Post-Training},
author = {Hu, Yuelin and Liu, Wei and Yu, Zhenbo and Cheng, Zhengxue and Song, Li},
booktitle = {Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing},
year = {2026},
address = {Budapest, Hungary},
url = {https://openreview.net/forum?id=VhBpT4iq60}
}
Please cite the GAC paper and the upstream Qwen3.5 model when appropriate.
- Downloads last month
- 76