Qwen3.5-9B-TLive

Livestream-domain SFT models at the 9B scale. Both variants see the same 10,000 training samples and the same recipe; they differ only in where fine-tuning starts — one from Qwen3.5-9B-Base, the other from the instruction-tuned Qwen3.5-9B. They live in a single repository, separated by subfolder.

Repository layout

v0_2/
├── Qwen3.5-9B-Base-SFT-10k    # fine-tuned from Qwen3.5-9B-Base
└── Qwen3.5-9B-chat-SFT-10k    # fine-tuned from Qwen3.5-9B (Instruct)

Loading

Pick a variant with subfolder:

from transformers import AutoModelForImageTextToText, AutoProcessor

repo = "L1ght/Qwen3.5-9B-TLive"
sub = "v0_2/Qwen3.5-9B-Base-SFT-10k"      # or v0_2/Qwen3.5-9B-chat-SFT-10k

model = AutoModelForImageTextToText.from_pretrained(
    repo, subfolder=sub, dtype="bfloat16", device_map="auto"
)
processor = AutoProcessor.from_pretrained(repo, subfolder=sub)

For text-only use, AutoModelForCausalLM + AutoTokenizer is lighter:

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    repo, subfolder=sub, dtype="bfloat16", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(repo, subfolder=sub)

messages = [{"role": "user", "content": "把这段直播内容总结一下:……"}]
inputs = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_tensors="pt", return_dict=True
).to(model.device)
out = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

vLLM cannot point at a subfolder directly; download one variant and pass the local path:

from huggingface_hub import snapshot_download
from vllm import LLM

path = snapshot_download(repo, allow_patterns=f"{sub}/*")
llm = LLM(model=f"{path}/{sub}")

Results

Comparison against the original Qwen3.5-9B-Base and Qwen3.5-9B (Instruct). Best per column in bold.

Livestream domain (text-only, 7 tasks)

Model Reply Sel. R@1 Addressee LiveQA WhisperX Cont. Live-CC Cont. ShoppingMMLU Sensai F1 Live_AVG
Qwen3.5-9B-Base 20.4 17.8 53.7 98.0 98.0 66.43 38.33 56.09
Qwen3.5-9B (Instruct) 48.2 47.6 60.5 99.8 99.4 69.04 47.25 67.40
Base-SFT-10k 62.2 59.8 56.2 100.0 100.0 70.81 42.99 70.29
chat-SFT-10k 63.6 59.0 55.8 100.0 99.8 71.62 45.40 70.75

General multimodal benchmarks

Model VisuLogic LongVideoBench Video-MME MVBench(19) MMBench MME* General_AVG Total_AVG
Qwen3.5-9B-Base 8.8 64.17 67.44 67.86 85.91 2362.2 58.84 57.47
Qwen3.5-9B (Instruct) 7.4 58.79 67.15 68.88 84.45 2394.8 57.33 62.37
Base-SFT-10k 9.1 62.90 68.22 70.70 87.37 2386.4 59.66 64.98
chat-SFT-10k 9.2 62.75 67.89 70.36 86.00 2406.8 59.24 65.00

Math reasoning

Model AIME24 AIME25 GSM8K MATH-500 Minerva Math_AVG
Qwen3.5-9B-Base 20.00 20.00 88.63 68.20 37.87 46.94
Qwen3.5-9B (Instruct) 23.33 23.33 83.93 67.80 36.40 46.96
Base-SFT-10k 16.67 23.33 89.99 67.60 36.76 46.87
chat-SFT-10k 26.67 23.33 92.95 72.00 38.97 50.78

Zero-shot chain-of-thought, one greedy pass per question, scored with math_verify on the \boxed{} answer -- no external judge anywhere. AIME24 and AIME25 are 30 questions each, so one question moves the score by 3.33 points; read them as a coarse signal, not a ranking.

The learning rate that protects the general benchmarks protects maths too: the 1e-5 runs not released here fall to Math_AVG 36.96 (10k) and 31.92 (30k), with Minerva dropping from 37.87 to 20.59, while the 3e-6 Base-SFT released here stays level with the base model and the chat-start variant beats every 9B row measured.

Live_AVG is the mean of the 7 livestream-domain tasks; General_AVG is the mean of the 5 general benchmarks (VisuLogic, LongVideoBench, Video-MME, MVBench, MMBench); Total_AVG = (Live_AVG + General_AVG) / 2. *MME is the raw total score (max 2800) and is not included in the averages. Math_AVG is the mean of the 5 maths suites and is reported on its own: it is deliberately kept out of General_AVG and Total_AVG, so those two stay comparable with the numbers published before the maths suites were added.

Notes

SFT was text-only. Multimodal capability comes from the base model and received no additional training.

At this scale the learning rate matters more than it does at 2B/4B: the 1e-5 used for the smaller models costs several points on the general benchmarks, so both variants released here use 3e-6. The exact hyper-parameters of each run are in the train_config.json inside its subfolder.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for L1ght/Qwen3.5-9B-TLive

Finetuned
Qwen/Qwen3.5-9B
Finetuned
(670)
this model