--- license: mit pipeline_tag: image-text-to-text library_name: llama.cpp base_model: - sakamakismile/Ornith-1.0-35B-NVFP4 - deepreinforce-ai/Ornith-1.0-35B base_model_relation: quantized language: - ja tags: - gguf - llama-cpp - qwen - qwen3_5_moe - qwen35moe - nvfp4 - compressed-tensors - vision - vlm - multimodal - mixture-of-experts - agentic-coding - quantized - rtx-5090 - blackwell --- # Ornith-1.0-35B-NVFP4-noMTP-BF16-GGUF [`sakamakismile/Ornith-1.0-35B-NVFP4`](https://huggingface.co/sakamakismile/Ornith-1.0-35B-NVFP4) の GGUF 変換版です。**compressed-tensors の NVFP4 重みをそのまま保持**し、**BF16 のビジョン・プロジェクタ (mmproj)** と **BF16 (ロスレス) の埋め込み層 & 出力層**を採用しています。テキスト専用チェックポイント (MTP ヘッドなし)。RTX 5090 (Blackwell) で `llama-benchy` を用いてベンチマーク取得済み。 ## 特徴 - **NVFP4 保持** — 430 個の NVFP4 テンサー(MoE エキスパート、attention、linear-attention/SSM)をネイティブ 4bit フォーマットで保持し、再量子化は行っていません。 - **ロスレス埋め込み & 出力** — `token_embd` と `lm_head` を **BF16** で保持(Q4_K/Q6_K ではない)ため、語彙および出力射影の精度はソースのままです。 - **ビジョン / mmproj** — 別途 BF16 のビジョン・プロジェクタにより image-text-to-text が可能です。 - **MTP なし** — ソースチェックポイントに multi-token-prediction ヘッドが含まれていないため、クリーンな自己回帰 (AR) モデルです (`block_count = 40`)。 - **Blackwell ネイティブ FP4** — RTX 50 シリーズ (`sm_120`) でネイティブ FP4 テンサーコアカーネルによる prefill/decoding を使用します。 ## ファイル | ファイル | サイズ | 説明 | |---|---:|---| | `Ornith-1.0-35B-NVFP4-noMTP-BF16.gguf` | 19.60 GiB | メイン GGUF — NVFP4 ボディ保持、BF16 `token_embd`/`lm_head` | | `mmproj-Ornith-1.0-35B-BF16.gguf` | 861 MiB | 画像入力用ビジョン・プロジェクタ (mmproj) | ## 使い方 (llama.cpp) ```bash # テキストのみ llama-server -m Ornith-1.0-35B-NVFP4-noMTP-BF16.gguf --host 0.0.0.0 --port 8080 --jinja # ビジョン付き (image-text-to-text) llama-server -m Ornith-1.0-35B-NVFP4-noMTP-BF16.gguf \ --mmproj mmproj-Ornith-1.0-35B-BF16.gguf \ --host 0.0.0.0 --port 8080 --jinja ``` Blackwell (RTX 50xx) 向けにネイティブ FP4 アクセラレーションを使用するには、CUDA 12.8 以上でコンパイルし、 `-DCMAKE_CUDA_ARCHITECTURES=120` を指定してください。`-ngl 999` で全レイヤをオフロード、`-c 262144` で最大コンテキストを使用できます。 このモデルは**思考 (thinking)** モデルです。推論は `` タグ内で出力されます。 一時的に思考を無効にするには、リクエストボディに `"chat_template_kwargs": {"enable_thinking": false}` を指定します。 ## ビジョン 本モデルはマルチモーダル (image-text-to-text) です。画像入力は `--mmproj` オプションで別途用意した mmproj ファイルを指定する必要があります。 llama.cpp で検証済み(合成画像の入力に対し、モデルが形状と色を正しく記述しました)。 mmproj の読み込みが**テキスト生成スループットに与える影響はごくわずか**です(ベンチマーク参照)。 ## ベンチマーク RTX 5090 (32 GB)、llama.cpp **b9812** (`0e53b82a9`、MSVC 19.50、`sm_120a`、`BLACKWELL_NATIVE_FP4=1`)、 `llama-benchy` (pp = 512/4096、tg = 512、runs = 3、`--latency-mode generation`)、 tokenizer `deepreinforce-ai/Ornith-1.0-35B`、ctx = 262144、KV キャッシュ `q8_0`。自己回帰 (spec decoding なし)。 | モード | pp | Prefill (pp) tok/s | Generation (tg) tok/s | 最大 tg | |---|---:|---:|---:|---:| | Text | 512 | 6539.84 ± 84.57 | 193.58 ± 3.20 | 194.00 | | Text | 4096 | 7754.81 ± 288.02 | 193.75 ± 1.92 | 194.33 | | Vision (+mmproj) | 512 | 6076.30 ± 335.59 | 188.55 ± 1.97 | 189.00 | | Vision (+mmproj) | 4096 | 7674.93 ± 86.51 | 190.58 ± 0.24 | 191.00 | 一貫性テストは全 run で PASSED。生成レイテンシ ≈ 112–125 ms。 ## ランタイム設定 RTX 5090 で `llama-server` 読み込み時: | パラメータ | 値 | |---|---:| | コンテキスト (`c`) | 196 608 | | 最大トークン数 | 32 768 | | スペキュラティブデコーディング | なし | | ビジョンプロジェクタ | `mmproj-Ornith-1.0-35B-BF16.gguf` | | KV キャッシュタイプ | q8_0 | | **VRAM 使用量** | **22.68 GiB** | ## 量子化 / 変換に関する注意 `llama.cpp` の `convert_hf_to_gguf.py` を用い、`sakamakismile` の NVFP4 チェックポイント (`compressed-tensors`、`format: nvfp4-pack-quantized`) から直接変換しています。自動検出され `GGML_TYPE_NVFP4` へ再パックされます — 全精度へのデ量子化は行われません。 - **`--outtype bf16`(Q4_K ではない)。** `bf16` を指定することで NVFP4 ボディを保持し、大きな 2-D 重み (`token_embd`、`lm_head`) を **BF16** で残します。小さい 1-D テンサー(ノルム、バイアス、ルーターゲート、スケール)のみが F32 です。**大きな重みが無駄に F32 へ肥大化することがないため**、適切なサイズ(19.60 GiB)に収めるのに後続の `llama-quantize` パスは不要です。 - **`--no-mtp`。** チェックポイントの `config.json` に `mtp_num_hidden_layers: 1` と宣言されていますが、**MTP テンサーは含まれていません**。`--no-mtp` により `block_count = 40` を維持し、存在しない MTP ヘッドを要求するのを防ぎます。 - **テンサー構成:** NVFP4 × 430、F32 × 1161(スケール / ノルム / ルーターゲート)、BF16 × 2(`token_embd`、`lm_head`) **BF16 出力の速度 / 品質トレードオフ:** `lm_head` を BF16 で保持する (~1.0 GiB) ことで、完全に量子化されたビルドと比較して生成スループットが約 **14 % 低下**します(本モデル ≈ 193 tok/s 対 Q4_K_M ≈ 223 tok/s、同一ハードウェア上)。これは出力射影が ~248k 語彙に対してデコードステップごとに読み込まれるためです。 このビルドは**ロスレス埋め込み/出力を優先**しています。速度を優先する場合は `llama-quantize` による出力層の Q6_K 量子化が必要です。 ## モデル詳細 - **オリジナル(量子化済み)モデル:** [`sakamakismile/Ornith-1.0-35B-NVFP4`](https://huggingface.co/sakamakismile/Ornith-1.0-35B-NVFP4) - **ベースモデル:** [`deepreinforce-ai/Ornith-1.0-35B`](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B) - **アーキテクチャ:** `qwen35moe`(Qwen3.5-MoE ファミリー; ハイブリッド full + gated-linear attention)、`block_count = 40`、MTP なし - **MoE:** 256 エキスパート、8 個活性化; 埋め込み次元 2048; コンテキスト長 262144 - **量子化:** NVFP4(430 テンサー)保持; `token_embd`/`lm_head` BF16; スケール/ノルム F32 - **変換:** `llama.cpp` `convert_hf_to_gguf.py --outtype bf16 --no-mtp`(メイン)および `--mmproj --outtype bf16`(ビジョン) - **ファイルサイズ:** メイン 19.60 GiB、mmproj 861 MiB ## ライセンスおよび帰属 **MIT** ライセンスの下でリリースされています。これは `sakamakismile/Ornith-1.0-35B-NVFP4`(ベースモデル `deepreinforce-ai/Ornith-1.0-35B`、NVFP4 量子化は `sakamakismile`)の非公式 GGUF 変換です。元の著者とは関係がなく、承認されたものでもありません。意図された用途および制限についてはオリジナルのモデルカードをご参照ください。