CoolFace
Modelpublic

popfido/Qwythos-9B-Claude-Mythos-5-1M-BF16-MLX-MTP-Visual

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
1likes56downloads
Model Card

Qwythos-9B-Claude-Mythos-5-1M — BF16 MLX (MTP + Vision)

Full-precision MLX conversion of [empero-ai/Qwythos-9B-Claude-Mythos-5-1M-GGUF](https://huggingface.co/empero-ai/Qwythos-9B-Claude-Mythos-5-1M-GGUF) (Qwen3.5-9B, hybrid GatedDeltaNet + attention) including the MTP head and the Qwen3.5-9B vision tower.

Converted from the `MTP-BF16` GGUF (+ the F16 mmproj) to float16 MLX weights — the highest-fidelity, non-quantized variant (no Q8/4-bit step). For smaller/faster options see the Q8 and `oQ4` repos. Tool: [popfido/gguf2mlx @ feat/qwen35-mtp-vision](https://github.com/popfido/gguf2mlx/tree/feat/qwen35-mtp-vision).

Verification

Activations were compared layer-by-layer against llama.cpp (build 9590, eval-callback) on identical token ids:

  • —Text backbone: bit-exact through embedding, norms, the full GatedDeltaNet recurrence, gated-norm and out_proj. Greedy generation is correct (factual recall, counting, arithmetic); chat is coherent.
  • —MTP head: present as mtp.* (loads via MTP-aware loaders; stock mlx-lm strips it automatically).
  • —Vision: all 333 vision-tower params match the mlx-vlm qwen3_5 model; image descriptions match llama.cpp mtmd output.

Conversion notes (Qwen3.5 specifics handled)

  • —Zero-centered RMSNorm gamma reconstructed (−1 to undo llama.cpp's +1).
  • —GatedDeltaNet decay: A_log = log(−ssm_a).
  • —Value-head re-segmentation: Qwen3.5 stores SSM value-heads strided ([k0_v0, k1_v1, …]); permuted to the grouped layout the mlx kernel expects.
  • —YaRN rope (factor 4, original ctx 262144).
  • —BF16 GGUF tensors dequantized to float16.

Usage

python
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template

model, processor = load("popfido/Qwythos-9B-Claude-Mythos-5-1M-BF16-MLX-MTP-Visual")
prompt = apply_chat_template(processor, model.config, "Describe this image.", num_images=1)
print(generate(model, processor, prompt, image=["image.png"], max_tokens=128).text)

Recommended sampling: temperature 0.6, top_p 0.95, top_k 20, repetition_penalty 1.05.

License & attribution

Inherits apache-2.0 from the base model. All credit for the model to empero-ai; this repo is an MLX-format conversion only.