Focus Red

repackaged Qwen 3.8 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.8 27B Focus Red
author Alibaba Qwen Jaid
repository Qwen/Qwen3.8-27B Jaidchen/Focus-Red
architecture qwen3_5 qwen3_5_text
Transformers handler Qwen3_5ForConditionalGeneration Qwen3_5ForCausalLM
tensor entries 1199 851
tensor type bf16 bf16
parameters 27 781 427 952 26 895 998 464
active 100% 100%
vocabulary size 248 320 248 320
context size 262 144 262 144
MTP integrated Jaidchen/Focus-Red-MTP
sampling strategy random sampling greedy/deterministic
sampling parameters
do_sample: true
temperature: 1.0
top_k: 20
top_p: 0.95
do_sample: false
temperature: 0
top_k: 1
top_p: 1
input modality text, image, video text
model size 55 562 855 904 53 791 996 928
splits 18 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 consult tool 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_5ForCausalLM class which may not be included in your inference engine. In this case you would need to ask your agent or integrate it yourself.
      • Inference engines confirmed to have native support:
    • 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.

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

  • base: Qwen/Qwen3.8-27B original
    • Retains Qwen3.8's native reasoning_effort handling (xhigh by default, plus medium and low) and its reasoning instructions. (lines 45–59)
    • Retains injection of those reasoning instructions into the tool/system preamble whenever thinking is enabled. (lines 60–94)
    • Preserves Qwen3.8's default-on historical thinking behavior while the later Froggeric layer avoids synthesizing empty thinking blocks. (lines 108–120)
  • adopted tweaks from Unsloth Qwen3.8
    • commit 3ea932cee0a432ae86e9c7826cbe8aef52323a28
    • Added developer role as alias for system and merged leading system/developer messages into a single policy message. (lines 45–59, lines 80–93)
    • Allowed histories without a normal human query. (lines 95–107)
  • retained compatibility tweak from the previous Unsloth Qwen3.6 layer
    • Made mapping-argument rendering portable by avoiding |items; the current Unsloth Qwen3.8 template uses |items again, so Focus deliberately keeps the portable implementation. (lines 122–130)
  • adopted tweaks from Froggeric Qwen3.8 version
    • commit 9f14778c92c3b5ed3e0738085694c0d3452802dd
    • Retained preserve_thinking semantics and avoided rendering empty historical thinking blocks. (lines 8–15, lines 227–233)
    • Retained mid-conversation system/developer messages as Qwen system turns. (lines 172–183)
    • Allowed string-valued message.thinking as fallback for historical reasoning. (lines 186–199)
    • Applied boundary-aware </think> parsing. (lines 200–226)
    • Supported both wrapped and direct tool calls, but never null-wrapped. (lines 234–241)
    • Preserved non-empty string tool arguments. (lines 248–280)
    • Used direct message indexing for tool-response grouping instead of loop.previtem/loop.nextitem. (lines 298–317)
  • custom tweaks
    • Merged any number of leading system/developer messages, generalizing the Unsloth merge behavior.
    • Kept Qwen3.8's reasoning instructions ahead of both merged policy text and the tools preamble.
    • Applied boundary-aware </think> parsing but excluded Froggeric's malformed-tag recovery.
    • Raised an error containing the offending role instead of Qwen's generic unknown-role error. (lines 160–162)
    • Used direct message indexing for tool-response grouping without Froggeric's error-escalation state.
    • Guarded undefined tools/tool_calls and handled non-mapping content items defensively.
    • Retained Qwen's proposed continue_final_message fix for partial assistant prefills. (lines 130–132)
  • unimodality patch
    • Removed Qwen3.8's vision-token machinery and rendered image/video content as [image] and [video]. (lines 1–41)

license

Apache 2.0 – inherited from Qwen 3.8 27B

Downloads last month
416
Safetensors
Model size
27B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Jaidchen/Focus-Red

Base model

Qwen/Qwen3.8-27B
Finetuned
(105)
this model
Finetunes
1 model
Quantizations
1 model