utautako's picture
Trim benchmark card back to original concision (numbers only)
b368a51 verified
|
Raw
History Blame Contribute Delete
8.01 kB
---
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)** モデルです。推論は `<think>…</think>` タグ内で出力されます。
一時的に思考を無効にするには、リクエストボディに `"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 変換です。元の著者とは関係がなく、承認されたものでもありません。意図された用途および制限についてはオリジナルのモデルカードをご参照ください。