CoolFace
Modelpublic

HEART77/TIR-Qwen3.5-4B-NonThinking-v2

sourceHugging Faceapache-2.0updated 23d agoView on Hugging Face
0likes21downloads
Model Card

TIR-Qwen3.5-4B-NonThinking-v2

Full-parameter SFT of Qwen/Qwen3.5-4B on the cleaned TIR mixture (HEART77/TIR-Training-Data, config v2_nonthink_clean, 25,065 rows). One contiguous epoch at a strict 32,768-token maximum length, trained 2026-09-02/03 on 4xA100 80GB with ms-swift 4.5.2 and Megatron Core 0.16.1.

This is the successor of HEART77/TIR-Qwen3.5-4B-NonThinking (trained on the legacy mixture). Compared with that run it drops the 2,200-row Cotrain attachment (10x image reuse, direct answers without reasoning), 20 rows whose final turn lacked <answer> tags, and four rows referencing intermediate images above PIL's decompression-bomb threshold. All other hyper-parameters are identical, so the two checkpoints form a data-only A/B pair. See the dataset card for the full audit.

Training data

ComponentRows
AgenticData true-multiturn SFT4,537
CodeDance SFT (multi-turn <code> tool use)13,828
TIR synthetic non-thinking attachment6,700
Total25,065

No assistant message contains a <think> block; the empty non-thinking prefix is inserted by the template and excluded from the loss.

Training configuration

  • —Base model: Qwen/Qwen3.5-4B; full-parameter SFT, vision tower and aligner frozen
  • —Recipe: non-thinking (add_non_thinking_prefix=true, loss_scale=default+ignore_empty_think, truncation_strategy=delete)
  • —Learning rate 1e-5, min 1e-6, cosine decay, warmup fraction 0.05, weight decay 0.1, clip grad 1.0
  • —Maximum length 32,768; global batch 64; micro batch 1; TP=2, PP=1, sequence parallel; bf16; flash attention
  • —One epoch = 391/391 optimizer steps, elapsed 6h 12m 6s, final training loss 0.1767263
  • —Full arguments: training/args.json; per-step log: training/logging.jsonl

Evaluation

Not yet evaluated at publication time. Results on TIR-Bench and the huawei_benchmark suite (FVQA, SimpleVQA, MMBrowseComp, GAIA) will be added alongside the legacy checkpoint for comparison.

Inference

bash
vllm serve HEART77/TIR-Qwen3.5-4B-NonThinking-v2 --port 8000 --max-model-len 32768 --reasoning-parser qwen3

Disable thinking at request time with chat_template_kwargs={"enable_thinking": false}. The model uses the TIR agent format: Python in <code> blocks, tool results as a user turn beginning with Code execution result:, final answer in <answer>...</answer>.