Instructions to use HEART77/TIR-Qwen3.5-9B-NonThinking with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use HEART77/TIR-Qwen3.5-9B-NonThinking with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="HEART77/TIR-Qwen3.5-9B-NonThinking") 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("HEART77/TIR-Qwen3.5-9B-NonThinking") model = AutoModelForMultimodalLM.from_pretrained("HEART77/TIR-Qwen3.5-9B-NonThinking", 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 HEART77/TIR-Qwen3.5-9B-NonThinking with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "HEART77/TIR-Qwen3.5-9B-NonThinking" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HEART77/TIR-Qwen3.5-9B-NonThinking", "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/HEART77/TIR-Qwen3.5-9B-NonThinking
- SGLang
How to use HEART77/TIR-Qwen3.5-9B-NonThinking 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 "HEART77/TIR-Qwen3.5-9B-NonThinking" \ --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": "HEART77/TIR-Qwen3.5-9B-NonThinking", "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 "HEART77/TIR-Qwen3.5-9B-NonThinking" \ --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": "HEART77/TIR-Qwen3.5-9B-NonThinking", "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 HEART77/TIR-Qwen3.5-9B-NonThinking with Docker Model Runner:
docker model run hf.co/HEART77/TIR-Qwen3.5-9B-NonThinking
TIR-Qwen3.5-9B-NonThinking
This is the corrected, uninterrupted full-parameter SFT reproduction of the Qwen3.5-9B v1 non-thinking TIR recipe. It was trained for one contiguous epoch from Qwen/Qwen3.5-9B at a strict 32,768-token maximum length.
The checkpoint is in standard Hugging Face Transformers format and can be served with recent vLLM or Transformers releases that support Qwen3.5.
Training data
The final filtered v1 non-thinking mixture contains 20,338 rows and 50,001 unique referenced images:
| Component | Rows before filtering |
|---|---|
| AgenticData true-multiturn SFT | 4,561 |
| CodeDance SFT | 13,828 |
| Cotrain attachment | 2,200 |
The original 20,589-row v1 mixture was filtered to exclude 251 extreme-context examples using auditable image-count, aspect-ratio, text-length, and estimated-token thresholds. The final training file contains no assistant <think> blocks.
- Final rows: 20,338
- Training JSONL SHA-256:
1b64f18262d8571ee6d9d04a7653f64b7aa20bc11f26e6c5d62e39ee23d872cd - Full filtering report:
training_data/filter_report.json
Training configuration
- Base model:
Qwen/Qwen3.5-9B - Full-parameter SFT with ms-swift/Megatron
- One uninterrupted epoch from the base model
- Learning rate:
1e-5 - Minimum learning rate:
1e-6 - Warmup fraction:
0.05 - Maximum length: 32,768
- Global batch size: 64
- Micro batch size: 1
- Tensor parallel size: 2
- Pipeline parallel size: 1
- Vision tower and aligner frozen; language model trainable
- Non-thinking prefix enabled
- Weight dtype: bfloat16
- Final optimizer step/checkpoint: 317
- Training time: 8h 40m
The exported args.json records the complete training arguments.
Evaluation
A full 1,215-example TIR-Bench evaluation is running with four vLLM engines in agent mode, a Python sandbox, no task-specific prompts, rule-based scoring, a 32,768-token context window, up to 12,768 generated tokens, and thinking disabled. Final results are not claimed until that run and its error-only retry passes complete.
See evaluation/status.json for the evaluation protocol and status at publication time.
Inference
With HF_TOKEN set for this private repository, start a recent vLLM server:
vllm serve HEART77/TIR-Qwen3.5-9B-NonThinking \
--port 8000 \
--max-model-len 32768 \
--reasoning-parser qwen3
Then run:
pip install openai
python inference.py --image /path/to/image.png --prompt "Describe the image and solve the problem."
inference.py also accepts text-only prompts when --image is omitted and explicitly disables thinking through the chat template.
Limitations
This checkpoint is specialized for multimodal tool-integrated reasoning. General-purpose safety, factuality, multilingual quality, and out-of-domain robustness have not been comprehensively evaluated. Generated code and tool calls must only be executed in a sandboxed environment.
- Downloads last month
- 6