Downloads · 30 days
147
26% of all-time downloads
OsaurusAI/Ornith-1.5-9B-JANG_2D
Ornith-1.5-9B-JANG_2D is a image-text-to-text model from OsaurusAI. 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 mlx. The card lists the license as mit.
<p align="center"<a href="https://osaurus.ai"<img src="./osaurus-x-banner.png" alt="Osaurus AI"</a</p
Downloads · 30 days
147
26% of all-time downloads
All-time downloads
575
Public
Parameters
9.4B
8.2 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors4.1 GB · 99%
How the weights are stored.
U329.3B · 99%
From the Hugging Face model README
JANG_2D MLX bundle of ornith-ai/Ornith-1.5-9B — smallest tier — measured 2-bit-base allocation, promoted where the Hessian says it matters.
Ornith 1.5 is an agentic coding / reasoning VLM built on a hybrid gated-delta linear attention + full attention backbone (3:1), with a 27-layer vision tower and native video support.
| Field | Value |
|---|---|
| Source | ornith-ai/Ornith-1.5-9B |
| Architecture | qwen3_5 / Qwen3_5ForConditionalGeneration |
| Size on disk | 3.81 GiB |
| Layers | 32 |
| Hidden size | 4096 |
| Context | 262,144 |
| Shards | 1 |
| Bit distribution | {2: 183, 3: 9, 4: 110, 8: 32} |
Three calibration methods, all driven by one capture pass — the per-input-channel second moment E[x_c^2] is simultaneously the Hessian diagonal, the imatrix weighting and the AWQ salient-channel statistic.
| Method | What it does here |
|---|---|
| Hessian-trace allocation | Bits assigned by measured tr(H)·‖W‖²_F per module, not by tensor name. The vision tower scores higher than the text MLP on this model, which a name-based profile gets backwards. |
| imatrix refit | Activation-weighted affine fit replacing RTN codes — mean weighted rel-err 0.1773. |
| AWQ | Salient-channel scaling (alpha=0.15), absorbed into the producing RMSNorm across 64 norm groups / 184 projections. |
Tensors whose in_features is divisible by no MLX group size (the 27 vision linear_fc2 at 4304) stay fp16.
| Modality | Status |
|---|---|
| Text | supported |
| Vision | supported — 333 vision-tower tensors, preprocessor_config.json + processor_config.json ride with the bundle |
| Video | supported — video_preprocessor_config.json present; verified end-to-end |
| Audio | not supported. The tokenizer defines `< |
Reasoning is ON by default — the no-kwarg generation prompt is byte-identical to enable_thinking=True and ends <|im_start|>assistant\n<think>\n.
It is toggleable, but note how: enable_thinking=False does not remove the think block, it prefills an empty closed one (<think>\n\n</think>\n\n). A parser testing merely for the presence of a <think> block will find one in both modes — test whether it has content.
There are no reasoning_effort tiers on this model family (unlike Qwen3.8). History <think> blocks are preserved unconditionally. Reasoning parser: qwen3; tool parser: qwen3_coder.
Both presets from the vendor card are stamped into jang_config.json, and the coding preset is also written to generation_config.json so the two files agree.
Ornith 1.5 is an agentic coding model (SWE-bench Verified 79, Terminal-Bench 2.1 67.8), so this bundle defaults to the coding preset. Upstream's own
generation_config.jsonships the general numbers (temp 1.0, presence 1.5) — usesampling_modes.generalif you want parity with the vLLM/Transformers defaults.
| Preset | temp | top_p | top_k | min_p | presence | repetition |
|---|---|---|---|---|---|---|
| general | 1.0 | 0.95 | 20 | 0.0 | 1.5 | 1.0 |
| coding (default) | 0.6 | 0.95 | 20 | 0.0 | 0.0 | 1.0 |
Stop tokens: [248046, 248044] (<|im_end|>, <|endoftext|>).
The 9B checkpoint declares mtp_num_hidden_layers: 1 but ships no mtp.* weights, so there is no MTP head to preserve (mtp_mode: metadata_only_missing_weights). Native MTP exists on the 35B-A3B member of this family.
JANG quantization by Jinho Jang — [email protected]
Base model: ornith-ai/Ornith-1.5-9B by Ornith AI.