/ Модель

Характеристики

Лицензия
MIT
Базовая модель
Ornith-1.5-9B
Опубликована
22 авг 2026

Ornith-1.5-9B-NVFP4-MTP-GGUF

Генерация текстаТекст → текст15 профессий

Ornith-1.5-9B-NVFP4-MTP-GGUF — это квантованный GGUF-артефакт модели Ornith-1.5-9B, разработанной ornith-ai и подготовленной пользователем Avifenesh.

744скачиваний за 30 дней4лайкавеса обновлены12 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель предназначена для генерации текста, диалоговых сценариев, работы с кодом и задач, поддерживающих XML-вызов инструментов и рассуждения в формате <think>. Артефакт ориентирован на инференс через tiyuvta serving engine и GPU архитектуры NVIDIA Blackwell; для upstream llama.cpp и Ollama рекомендуется использовать официальные BF16–Q8_0 GGUF-файлы без MTP-головы.

Основная модель имеет 9 млрд параметров, контекст до 262 144 токенов, словарь размером 248 320 и текстовую text-to-text модальность; vision tower в этот артефакт не включён. Используется NVFP4-квантизация с 4-битными весами и FP8-масштабами на блок, при этом эмбеддинги и выходная голова представлены в Q5_K, а нормы — в F32. Размер файла составляет около 5,4 ГБ вместо 18,8 ГБ в BF16. В артефакт добавлена MTP-голова, заимствованная из Qwen3.5-9B; она используется для speculative decoding и не должна изменять итоговые токены, поскольку каждый спрогнозированный токен проверяется целевой моделью. На тестах заявлена токен-в-токен идентичность с обычной greedy-декодировкой и принятие до 59% черновых токенов при K=3, однако показатели производительности в токенах в секунду не приводятся и зависят от оборудования. Лицензия основного Ornith-1.5-9B указана как MIT; MTP-голова происходит из Qwen3.5-9B под Apache-2.0.

Для каких профессий подходит15

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Ornith-1.5-9B — NVFP4 GGUF with MTP head (tiyuvta serving artifact)

NVFP4 (4-bit e2m1, per-16 FP8-e4m3 scales) GGUF of ornith-ai/Ornith-1.5-9B, quantized from the official BF16 safetensors release (token embeddings and output head Q5_K, norms F32). 18.8 GB BF16 → 5.4 GB. Built on request (discussion) as the 9B sibling of Ornith-1.5-35B-A3B-NVFP4-MTP-GGUF.

The MTP head in this file is a graft, and the card says so. The official Ornith-1.5-9B checkpoint declares an MTP head in its config (mtp_num_hidden_layers: 1) but ships no mtp.* tensors — 760 tensors where its base has 775. This artifact takes the trained MTP head from Qwen/Qwen3.5-9B (Apache-2.0, the base model this fine-tune derives from — the two checkpoints are tensor-census-identical except for those 15 head tensors) and grafts it onto the unchanged official Ornith trunk at blk.32 (nextn_predict_layers=1). A draft head can never change output — the target verifies every drafted token — it only moves acceptance and speculative speed. Measured acceptance with the grafted head is in the tables below; the speculative stream is gated token-identical to plain greedy decode at every K.

Built as a serving artifact for the tiyuvta serving engine on RTX Blackwell (sm_120a), with per-request exactness gates: speculative, graphed, and batched serving are gated byte-identical to plain decode.

NVFP4 is not an upstream llama.cpp tensor type: this file runs on the serving engine and on the NVFP4 branch of avifenesh/llama.cpp. For upstream-llama.cpp/Ollama use, the official BF16–Q8_0 GGUFs are the right pick (they carry no MTP head).

  • Hosted inference: https://inference.tiyuvta.ai
  • Context: 262,144 native; chat template embedded — byte-identical to the repo's chat_template.jinja (sha256 9dd2fbd270fe…44e8fd235; XML tool calling + <think> reasoning)
  • Vocabulary: 248,320 (text→text serving; the upstream vision tower is not in this artifact)

Provenance and verification

Trunkornith-ai/Ornith-1.5-9B official BF16 safetensors (MIT), unchanged bytes; per-shard sha256 receipts banked at mint
MTP headthe 15 mtp.* tensors of Qwen/Qwen3.5-9B (Apache-2.0, trained by Qwen for this backbone), grafted at blk.32 through the standard converter mapping; per-tensor sha256 receipts banked at mint. Ornith-1.5-9B itself ships no mtp.* weights
Conversionconvert_hf_to_gguf.py (avifenesh/llama.cpp nvfp4-imatrix-scale-search), BF16, MTP bundled (qwen35, 33 blocks incl. NextN, rope.dimension_count 64)
Quantizationllama-quantize NVFP4 ftype (same branch), --output-tensor-type q5_k --token-embedding-type q5_k: blocks + MTP NVFP4, embeddings/output Q5_K, norms F32 — the same recipe as the 35B sibling
Main fileOrnith-1.5-9B-NVFP4-Q5K-mtp.gguf, 5,442,334,016 B, sha256 7a8631ecdffe51f90533f4fa053a6dfb96528d4240a9ed81abd1c0c087c47502
Exactnessserving engine v0.104.1 batteries, 2026-08-22, RTX 5090 Laptop: kernel-check green · run-spec K=1..8 self-consistency PASS every K (spec ≡ plain greedy, token-identical), raw and chat-templated, embedded and masked head · prefill ≡ decode argmax and batched-prime ≡ tokenwise argmax MATCH on all probes · the engine's chat render ≡ transformers.apply_chat_template prompt ids on all probes · 48-tok greedy vs BF16 CPU oracle forks only at logit near-ties (top-2 margin ≤ 0.5, rig token = oracle rank-2; an official-Q8_0 control forks from the same oracle within 30–40 tokens on the same probes) · serve surface: greedy chat determinism ×2 byte-identical, tools round-trip emits OpenAI tool_calls with schema-typed arguments ("celsius":true) and zero content leak, per-request usage.spec accounting

Measured acceptance (exactness harness, not a throughput bank)

Greedy run-spec, serving engine v0.104.1, RTX 5090 Laptop. Acceptance = accepted/drafted over the run; the speculative stream is token-identical to plain decode in every row (that is the gate). This laptop card is thermally limited, so no tok/s numbers are published here — measure on your own hardware.

headprobeK=1K=2K=3
embedded grafted headchat-templated code prompt, 64 tok0.800.710.59
embedded grafted headraw continuation probe, 32 tok0.720.570.45
masked head (frspec-sxc32768)chat-templated code prompt, 64 tok0.700.710.56

What ships here, file by file

filesizewhat it is
Ornith-1.5-9B-NVFP4-Q5K-mtp.gguf5.4 GBThe trunk. NVFP4 weights, Q5_K embeddings + full 248,320-row LM head, grafted MTP (NextN) block at blk.32. Serves on its own; every other file in this repo is optional speed.
mtp-Ornith-1.5-9B-NVFP4-frspec-sxc32768.gguf0.94 GBStandalone masked MTP draft head, top-32,768 own-generation ranks (agentic-session prompt corpus).
ornith15-9b-ranks-sxc-32768.gguf.txt~186 KBRanks list, plain text: one token id per line, most-frequent first, 32,768 lines. Drives the serving engine's load-time trim — this is the file that pairs with a trunk that already carries a head.
ornith15-9b-ranks-sxc-32768.gguf~131 KBThe same ranks as a one-tensor GGUF container (d2t, i32 [32768]). Interchangeable with the .txt anywhere a ranks file is accepted.

Where the masked head lives, and what the mask does

mtp-Ornith-1.5-9B-NVFP4-frspec-sxc32768.gguf contains:

tensorshape / typerole
output.weight[4096, 32768] NVFP4the masked LM head — 32,768 rows gathered from the trunk's 248,320-row head, in rank order
d2ti32 [32768]the mask itself: d2t[i] = full-vocab token id of masked row i
blk.32.nextn.{eh_proj,enorm,hnorm,shared_head_norm}.weight + blk.32.attn_* / blk.32.ffn_*—the MTP (NextN) block, extracted byte-verbatim from the trunk, block requantized Q4_K_M
token_embd.weight[4096, 248320] Q5_Kfull-vocab embeddings (drafting reads the trunk's ids)

"Masked head" means: the draft proposes tokens only from the top-32,768 ids ranked by how often this model itself emits them (FR-Spec-style d2t trim). The ranked distribution is 100% model-generated — 138,065 own-generated tokens over real agentic-session prompts; external text was used as prompts only. topN = 32768 fixes the masked head's shape — a different topN is a different artifact.

The mask can never change output. Verification runs on the target's full vocabulary, so a trim moves draft acceptance (speed) and nothing else — run-spec asserts the masked-head speculative stream token-identical to plain decode, and that gate is PASS on this artifact (file sha256 6b027b05ba92dfda2f9786a1a970b028b8475345223b9dc85b25d1e51224775b). On the build's --validate A/B the trim cost 0.5 acceptance pts against the untrimmed embedded head (0.429 vs 0.434 over the held-out sweep) for a 7.6× smaller draft-head read — verdict GOOD on the measurement card; end-to-end tok/s decides it on yours.

How the files are used (tiyuvta serving engine)

This artifact runs on the tiyuvta serving engine. Three ways to draft, all gated byte-identical to plain decode:

  1. Trunk alone. The grafted head is embedded in Ornith-1.5-9B-NVFP4-Q5K-mtp.gguf, so the trunk drafts from its own full 248,320-row head with no extra file.
  2. Trunk + pre-trimmed masked head. mtp-Ornith-1.5-9B-NVFP4-frspec-sxc32768.gguf attaches to the trunk as an external draft head (blk.32, head_vocab=32768, d2t map).
  3. Ranks file only. ornith15-9b-ranks-sxc-32768.gguf.txt (or the ranks .gguf) self-trims at load: the engine gathers the 32,768 ranked rows from the trunk's own output.weight bytes (byte-level row gather, zero requant).

Note on safetensors trunks: the official Ornith-1.5-9B safetensors checkpoint ships no MTP head, so there is nothing there for a ranks file to trim; speculative drafting for this model comes from this repo's GGUFs.

Other runtimes

The trunk is a standard GGUF layout for the qwen35 architecture with a NextN block; engines that read NextN heads see the grafted MTP out of the box. The masked draft files carry the d2t tensor layout (see ggml-org/llama.cpp#25187); outside the serving engine, draft from the trunk's embedded full head instead of the masked files.

Build your own ranks (and your own masked head)

Rank files are vocab + distribution artifacts of the exact serving model: derive fresh ranks from the model's own generations for every model and every requant. The recipe:

  1. Ranks from the model's OWN generations (corpus text is prompts only): count how often the model emits each token id, keep the top 32,768, and write them as a d2t container (.gguf) and as one id per line (.txt).
  2. Extract the MTP block byte-verbatim from the trunk, trim the head to those ranks, and requantize (NVFP4 head + Q4_K_M block, the measured-best order) with llama-quantize.

The measured laws: per model, per requant (foreign ranks measured −12 acceptance pts on an identical tokenizer); chat template ON if you serve chat (a raw-derived rank set once cost −15 acceptance pts); corpus floor ≥ 4× topN own-generated tokens (131,072 for a 32,768 head); validate before trusting (frspec-owngen … --validate A/Bs trimmed vs untrimmed end-to-end).

Built with convert_hf_to_gguf.py + llama-quantize (NVFP4 branch) + frspec-owngen + tools/make-trimmed-draft.sh — the same recipe documented above.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

llama.cpp

Нельзя запустить

GGUF-модель ждёт проверки: нужно выбрать файл кванта под доступные GPU.

Ревизия весов
ca20d49

0 моделей