Instructions to use L1ght/Qwen3.5-9B-TLive with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use L1ght/Qwen3.5-9B-TLive with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="L1ght/Qwen3.5-9B-TLive")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("L1ght/Qwen3.5-9B-TLive", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use L1ght/Qwen3.5-9B-TLive with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "L1ght/Qwen3.5-9B-TLive" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "L1ght/Qwen3.5-9B-TLive", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/L1ght/Qwen3.5-9B-TLive
- SGLang
How to use L1ght/Qwen3.5-9B-TLive 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 "L1ght/Qwen3.5-9B-TLive" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "L1ght/Qwen3.5-9B-TLive", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "L1ght/Qwen3.5-9B-TLive" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "L1ght/Qwen3.5-9B-TLive", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use L1ght/Qwen3.5-9B-TLive with Docker Model Runner:
docker model run hf.co/L1ght/Qwen3.5-9B-TLive
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.