Ornith-1.0-35B-Vision
Ornith-1.0-35B-Vision is an experimental vision-enabled MLX derivative of
deepreinforce-ai/Ornith-1.0-35B,
intended for fast local inference on Apple Silicon.
It combines the affine-quantized Ornith language body from
wang-yang/Ornith-1.0-35B-MTPLX
with the source-BF16 Qwen3.5-compatible vision tower and processor metadata from
Shiftedx/ornith-1.0-35b-mxfp4-vision-mtplx.
The MTP sidecar and all MTP index entries were deliberately removed: this repository is a
standard autoregressive VLM and does
not require MTP-specific loader patches.
Highlights
- Qwen3.5 MoE multimodal architecture: 35B total / approximately 3B active parameters
- 40 language layers, 256 experts, hidden size 2,048
- Language body: affine 4-bit, group size 64; selected MoE gates use affine 8-bit/G64
- Vision tower: 27 layers, BF16, hidden size 1,152, output size 2,048, patch size 16
- 333 indexed vision tensors preserved from the qualified vision donor
- Native image, text, tool-use and agentic-coding workloads through MLX-VLM/oMLX
- Thinking disabled in the uploader's local qualification
- No
mtp.safetensors; mtp_num_hidden_layers=0
Among the 35B-class MLX models evaluated locally by the uploader, this model delivered the
highest measured single-request decode speed while retaining vision support. This is a
same-machine observation, not a universal cross-hardware ranking.
Local performance
The following measurements were produced with oMLX on an Apple M3 Ultra with 96 GiB unified
memory, running macOS 26.5.2.
Prompt processing (pp) and text generation (tg) use synthetic token lengths; image
encoding time is not represented by these text-only throughput cases.
Single request
| Test | TTFT | TPOT | pp TPS | tg TPS | End-to-end | Throughput | Peak memory |
|---|
| pp1024 / tg128 | 464.8 ms | 9.73 ms/tok | 2,202.9 tok/s | 103.6 tok/s | 1.709 s | 674.0 tok/s | 19.35 GB |
| pp4096 / tg128 | 1,769.1 ms | 9.83 ms/tok | 2,315.3 tok/s | 102.5 tok/s | 3.030 s | 1,394.0 tok/s | 20.07 GB |
Continuous batching — pp1024 / tg128 per request
| Batch | Aggregate tg TPS | Speedup | Aggregate pp TPS | pp TPS/request | Mean TTFT | End-to-end |
|---|
| 1x | 103.6 tok/s | 1.00x | 2,202.9 tok/s | 2,202.9 tok/s | 464.8 ms | 1.709 s |
| 2x | 192.7 tok/s | 1.86x | 1,755.3 tok/s | 877.6 tok/s | 1,166.7 ms | 2.495 s |
| 4x | 288.3 tok/s | 2.78x | 1,761.9 tok/s | 440.5 tok/s | 2,196.5 ms | 4.101 s |
Results are local point measurements. Runtime version, OS version, thermals, cache state,
prompt structure and concurrent workloads can materially affect performance.
Local intelligence evaluation
All runs below used thinking off. These are sampled oMLX evaluations rather than complete
official benchmark submissions.
| Benchmark | Score | Correct / evaluated | Full dataset | Time |
|---|
| MMLU | 83.0% | 83 / 100 | 14,042 | 52.6 s |
| CMMLU | 82.0% | 82 / 100 | 11,582 | 27.3 s |
| TruthfulQA | 90.0% | 90 / 100 | 817 | 25.4 s |
| HumanEval | 93.0% | 93 / 100 | 164 | 124.2 s |
| MBPP | 86.0% | 86 / 100 | 500 | 71.0 s |
| LiveCodeBench | 40.0% | 12 / 30 | 1,055 | 234.1 s |
The smaller samples, especially the 30-problem LiveCodeBench run, have substantial sampling
uncertainty. Scores should only be compared with runs using the same harness, sample IDs,
random seed, decoding settings and execution environment. These tests do not measure visual
reasoning quality.
Usage
Install a recent MLX-VLM build compatible with Qwen3.5 MoE VLM checkpoints, then run:
1python -m mlx_vlm.generate \
2 --model zwcf5200/Ornith-1.0-35B-Vision \
3 --image image.jpg \
4 --prompt "Describe this image." \
5 --max-tokens 256
The model can also be served by a compatible oMLX release and accessed through its
OpenAI-compatible Chat Completions API using image_url content parts.
Suggested no-thinking agent settings
The uploader found the following conservative profile more reliable for Hermes-style tool use:
1{
2 "enable_thinking": false,
3 "temperature": 0.4,
4 "top_p": 0.9,
5 "top_k": 20,
6 "min_p": 0.0,
7 "repetition_penalty": 1.0,
8 "presence_penalty": 0.0,
9 "max_tokens": 4096,
10 "max_tool_result_tokens": 2048
11}
For agent harnesses, use bounded output/tool-turn budgets and reject or deduplicate malformed
or repeated tool calls. Do not use </tool_call> itself as a stop string because removing the
closing marker can prevent the server from parsing a valid call.
Qualification
- Shard index contains no stale or missing files
- Strict MLX-VLM lazy weight binding: pass
- Vision tower and processor loading: pass
- Real image-description request through oMLX: pass
- MTP sidecar/index/runtime metadata: absent; MTP depth is explicitly set to
0
- Local Hermes tool-use qualification with the recommended no-thinking profile: pass without
the previously observed large burst of repeated calls
Provenance
- Language model lineage:
deepreinforce-ai/Ornith-1.0-35B (MIT)
- Quantized language artifact:
wang-yang/Ornith-1.0-35B-MTPLX; its MTP sidecar is not included
- Vision tensors and processor metadata:
Shiftedx/ornith-1.0-35b-mxfp4-vision-mtplx
- Vision payload: 333 BF16 tensors, preserved without requantization
- This repository is a file-level composition/format conversion; no additional weight training
was performed by the uploader
Review all upstream model cards and licenses before redistribution or production use. The
language lineage includes MIT-licensed Ornith weights, while the vision/Qwen components are
subject to Apache-2.0 terms.
Limitations
- Experimental composition; not an official DeepReinforce or Qwen release
- Local throughput is specific to the uploader's machine and oMLX setup
- Intelligence figures are sampled local evaluations and may not reproduce across harnesses
- Visual quality has been functionally validated but not evaluated on a standardized VLM suite
- Tool-call reliability depends on matching chat-template/parser behavior and agent guardrails
- Upstream safety characteristics remain applicable; no additional safety alignment was trained