Downloads · 30 days
12
46% of all-time downloads
CrossNow/Qwythos-27B-v1
Qwythos-27B-v1 is a image-text-to-text model from CrossNow. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
<p align="center" <img src="assets/qwythos.png" alt="Qwythos-27B-v1" width="640"/ </p
Downloads · 30 days
12
46% of all-time downloads
All-time downloads
26
Public
Parameters
27.8B
55.6 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors55.6 GB · 100%
From the Hugging Face model README
Developed by Empero
Qwythos-27B-v1 is an open-weight, full-parameter reasoning model: the larger sibling of Qwythos-9B, trained on the exact same curriculum and sized up on a Qwen3.5-27B base. It is a complete pre-RL checkpoint, post-trained through SFT → DPO → ESFT.
The point of this release is simple: nothing was ablated to make it fit. Qwythos retains the base checkpoint's native multi-token-prediction head, full vision tower, and 1,048,576-token context configuration—all intact and active.
tools=[...] works out of the box with no wrapper and no tool-specific fine-tune.Qwythos is intentionally uncensored for technical and research use. It engages substantively with sensitive-but-legal cybersecurity, biomedical, and technical questions; use appropriate review and application-level controls for your deployment.
Qwythos-27B-v1 preserves the parts of the base that are often dropped during a community fine-tune:
The larger model changes what can stay closed-book. On an organophosphate-poisoning prompt, Qwythos-27B correctly volunteered “Avoid physostigmine (it can worsen toxicity)” and gave correct atropine/pralidoxime dosing without tools. That specific fact required a web search in the 9B evaluation. It is a useful, concrete illustration of what the size-up buys—not a substitute for verification in clinical use.
The strongest measured shift is target-format acquisition on held-out terminal/tool sessions: 356.6 → 2.76 perplexity versus the base, evaluated on assistant tokens with identical inputs and sequences capped at 24,576 tokens. In a held-out emulated Claude-Code session for an authorized lab network assessment, Qwythos consumed injected nmap output, reasoned about scan trade-offs, and emitted the correct next shell-form tool call.
It also emits first-person <think>...</think> reasoning rather than the base model's tendency toward meta-planning outlines. Greedy long-form generations in the reviewed set were clean under the loop check, with no degenerate repetition.
The packaged chat template implements Qwen3.5's tool-use spec in full. Pass tools=[...] to apply_chat_template and the model emits standard tool-call blocks — no wrapper, no tool-specific fine-tune:
<tool_call>
<function=NAME>
<parameter=PARAM>value</parameter>
</function>
</tool_call>
Combined with the terminal/agentic training above, this is the intended deployment path: give Qwythos real tools and let it verify its specifics rather than recalling them closed-book.
The packaged chat template introduces the model as "You are Qwythos, a model created by Empero AI. Only bring up your identity if the user asks." — it identifies itself only when asked.
This is v1, the pre-RL checkpoint. It has received full-parameter SFT, DPO, and ESFT, and is released as a usable model in its own right. An RL-trained v2 will follow soon. DPO and ESFT hyperparameters are not being published.
| Property | Value |
|---|---|
| Base | Qwen/Qwen3.5-27B |
| Architecture | Dense Qwen3.5-27B; hybrid Gated-DeltaNet linear attention with a full-attention layer every fourth layer (3:1) |
| Text backbone | 64 hidden layers; hidden size 5120; 24 attention heads; 4 KV heads; vocabulary 248,320 |
| Modalities | Text + vision, with native MTP |
| Precision | bf16 |
| Context | 1,048,576 tokens: 262,144 native × YaRN factor 4.0 |
| Native MTP | One hidden layer (mtp_num_hidden_layers: 1) |
Qwythos-27B was post-trained on the same curriculum family as Qwythos-9B — STEM and reasoning first, then the agentic target domain — scaled up to 27B.
The pipeline is full-parameter SFT → DPO → ESFT, run in bf16 with assistant-only loss on long, untruncated sequences. Qwythos-27B-v1 is the checkpoint at the end of that pipeline, before reinforcement learning.
Training data, per-stage hyperparameters, and the packing and kernel setup are not being published.
The base is multimodal. For text-only inference, load it with AutoModelForImageTextToText:
from transformers import AutoModelForImageTextToText, AutoTokenizer
model_id = "empero-ai/Qwythos-27B-v1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
dtype="bfloat16",
device_map="auto",
)
messages = [
{
"role": "user",
"content": "Explain the trade-offs in this terminal plan and propose the next command.",
}
]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
output = model.generate(
**inputs,
do_sample=True,
temperature=0.6,
top_p=0.95,
top_k=20,
repetition_penalty=1.05,
max_new_tokens=16384,
)
new_tokens = output[0][inputs["input_ids"].shape[1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
Use a recent transformers with Qwen3.5 support and Gated-DeltaNet kernels (flash-linear-attention and a CUDA-matched causal_conv1d). Without them, the linear-attention layers fall back to slower PyTorch operations.
TOOLS = [
{"type": "function", "function": {
"name": "run_shell",
"description": "Run a shell command and return combined stdout/stderr.",
"parameters": {"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"]}}},
{"type": "function", "function": {
"name": "web_search",
"description": "Search the web for current facts and citations.",
"parameters": {"type": "object",
"properties": {"query": {"type": "string"},
"max_results": {"type": "integer"}},
"required": ["query"]}}},
]
prompt = tokenizer.apply_chat_template(
messages, tools=TOOLS, tokenize=False, add_generation_prompt=True
)
# then parse <tool_call><function=...><parameter=...>...</parameter></function></tool_call>
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve empero-ai/Qwythos-27B-v1 \
--max-model-len 1010000
The static YaRN factor of 4.0 has a short-context quality trade-off. For roughly 512k context, use factor 2.0; if you will never exceed the 262,144-token native window, restore rope_parameters.rope_type to "default" from the included config.json.pre_yarn backup for maximum short-context fidelity.
For GGUF releases, including llama.cpp, Ollama, and LM Studio workflows, see empero-ai/Qwythos-27B-v1-GGUF. The recommended default is Qwythos-27B-Q4_K_M.gguf; the MTP-enabled default is Qwythos-27B-MTP-Q4_K_M.gguf. Image use also requires mmproj-Qwythos-27B-F16.gguf alongside the selected text quant.
Qwythos-27B is a reasoning model and inherits Qwen3.5's thinking-mode behaviour. These are the shipped defaults in generation_config.json and the recommended starting point:
gen_kwargs = dict(
do_sample=True,
temperature=0.6, # Qwen3.5 thinking-mode recommended
top_p=0.95,
top_k=20,
repetition_penalty=1.05,
max_new_tokens=16384, # generous budget for the <think> block + final answer
)
| Parameter | Value |
|---|---|
temperature | 0.6 (agentic / tool use) · 1.0 (open-ended or creative) |
top_p | 0.95 |
top_k | 20 |
repetition_penalty | 1.05 |
max_new_tokens | 16,384+ |
max_new_tokens so the <think> block and the final answer both fit.Use repetition_penalty=1.05 — a small deviation from Qwen's default of 1.0 that prevents rare non-terminating reasoning loops on long generations.
Sign up for the Empero newsletter at empero.org for releases, evaluations, and research notes on Qwythos and future open-weight models.
If this model helped you, consider supporting the project:
bc1qx6zepu6sfkvshgdmc4ewu6pk6rpadvpgffpp7vltc1qv2mefzps2vtjcpwfx8xxdrpplrcvltswm68r7x42Dbm5xg5Nq26fdyzfEU7KBnAJfhi7Cvz5J2ex5CzHXkfKuNEJzYCcmJ1GTbgjFZ5MBx72sdG1G9239Cd6rsZfv4QeDkYJYQwythos-27B-v1 is derived from Qwen3.5-27B. The weights are released under Apache-2.0, inherited from the Qwen3.5-27B base, for research and experimentation as-is.