Text Generation
Transformers
Safetensors
qwen3_5_text
dense
coding
agentic
unimodal
repackaged
conversational
Instructions to use Jaidchen/Focus with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Jaidchen/Focus with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Jaidchen/Focus") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Jaidchen/Focus") model = AutoModelForCausalLM.from_pretrained("Jaidchen/Focus", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Jaidchen/Focus with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Jaidchen/Focus" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Jaidchen/Focus
- SGLang
How to use Jaidchen/Focus 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 "Jaidchen/Focus" \ --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": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "Jaidchen/Focus" \ --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": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Jaidchen/Focus with Docker Model Runner:
docker model run hf.co/Jaidchen/Focus
Focus
repackaged Qwen 3.6 27B with a simplified architecture and minor opinionated improvements
- all vision-related components removed
- reduced storage and memory, faster inference
- zero loss of output quality
comparison
| Qwen 3.6 27B | Focus | |
|---|---|---|
| author | Alibaba Qwen | Jaid |
| repository | Qwen/Qwen3.6-27B | Jaidchen/Focus |
| architecture | qwen3_5 |
qwen3_5_text |
| Transformers handler |
Qwen3_5ForConditionalGeneration
|
Qwen3_5ForCausalLM
|
| tensor entries | 1199 | 866 |
| tensor type | bf16 | bf16 |
| parameters | 27 781 427 952 | 27 320 697 856 |
| active | 100% | 100% |
| vocabulary size | 248 320 | 248 320 |
| context size | 262 144 | 262 144 |
| MTP | integrated | integrated |
| sampling strategy | random sampling | greedy/deterministic |
| sampling parameters |
do_sample: true
temperature: 0.6 top_k: 20 top_p: 0.95 |
do_sample: false
temperature: 0 top_k: 1 top_p: 1 |
| input modality | text, image, video | text |
| repository size | 55 586 107 940 | 54 659 211 447 |
| model size | 55 562 855 904 | 54 641 395 712 |
| splits | 15 | none |
| Jinja template | Qwen original | Qwen original + Unsloth tweaks + Froggeric tweaks + unimodality patch + further custom tweaks |
pros
- reduced storage needs
- reduced loading time
- reduced VRAM occupancy, thus more room for context
- increased inference speed
- simplified architecture, unlocking some further potential for optimizing low-level procedures
cons
- legally blind
- Pictures and video frames can still be present in the context without crashing, but their contents are no longer interpreted by the model and won’t do anything else than waste space.
- If you occasionally rely on those capabilities, I suggest adding a
consulttool to your harness that calls a vision-enabled subagent model like Gemini Flash or GPT.
- reduced compatibility
- The simplified architecture is handled by the
Qwen3_5ForCausalLMclass which may not be included in your inference engine. In this case you would need to ask your agent or integrate it yourself. - The applied coercions may confuse your inference engine in case it has fixed expectations about the model’s architecture and thus lead to unpredictable behavior.
- The simplified architecture is handled by the
caveats
- model file not split, possibly causing issues if intended to be stored on an HDD from the previous century
- random sampling disabled by default, less suitable for long-form writing, entertainment and casual chat
Jinja template changes
chat.jinja is reproducibly built from an untouched upstream template plus the ordered patch stack in jinja_build/. jinja_build/build.ps1 applies the patches lexicographically and overwrites the final chat.jinja.
- base: Qwen/Qwen3.6-27B original
- commit
6a9e13bd6fc8f0983b9b99948120bc37f49c13e9 - SHA-256
E84F32A23FDDA27689F868AA4A1A5621F41133E51A48D7F3EFCBEA2839574259
- commit
- adopted tweaks from Unsloth Qwen3.6
- Added
developerrole as alias forsystem. (lines 45–57) - Merged leading system/developer messages into a single policy message. (lines 45–57, lines 67–75)
- Allowed histories without a normal human query. (lines 76–86)
- Made mapping-argument rendering portable by avoiding
|items. (lines 122–130)
- Added
- adopted tweaks from Froggeric version
- Added
preserve_thinkingoption to retain historical reasoning. (line 8, lines 225–230) - Retained mid-conversation system/developer messages as Qwen system turns. (lines 165–182)
- Allowed string-valued
message.thinkingas fallback for historical reasoning. (lines 183–197) - Applied boundary-aware
</think>parsing. (lines 198–223) - Avoided synthesizing empty historical thinking blocks. (lines 225–230)
- Supported both wrapped and direct tool calls, but never null-wrapped. (lines 231–237)
- Preserved non-empty string tool arguments. (lines 261–280)
- Used direct message indexing for tool-response grouping instead of
loop.previtem/loop.nextitem. (line 165, lines 286–318)
- Added
- custom tweaks
- Merged any number of leading system/developer messages, generalizing Unsloth's two-message merge. (lines 45–57)
- Applied boundary-aware
</think>parsing but excluded Froggeric's malformed-tag recovery. (lines 198–223) - Raised an error containing the offending role instead of Qwen's generic unknown-role error. (lines 143–144)
- Used direct message indexing for tool-response grouping without Froggeric's error-escalation state. (lines 286–318)
- Guarded undefined
tools/tool_callsand handled non-mapping content items defensively. - Adopted Qwen's proposed
continue_final_messagefix for partial assistant prefills. (lines 130–132)
- unimodality patch
- Removed Qwen's vision-token machinery and rendered image/video content as
[image]and[video]. (lines 1–41)
- Removed Qwen's vision-token machinery and rendered image/video content as
license
Apache 2.0 – inherited from Qwen 3.6 27B
- Downloads last month
- 677
Model tree for Jaidchen/Focus
Base model
Qwen/Qwen3.6-27B