kgrabko commited on
Commit
ddbcbfe
·
verified ·
1 Parent(s): 99ea4f8

Card: GGUF Q3_K_M / Q4_K_M / Q6_K with idle-machine CPU speeds; front matter on the first line again

Browse files
Files changed (2) hide show
  1. README.md +7 -8
  2. gguf/README.md +40 -24
README.md CHANGED
@@ -1,4 +1,3 @@
1
-
2
  ---
3
  license: apache-2.0
4
  library_name: pytorch
@@ -33,7 +32,7 @@ tags:
33
  | Vocabulary | 248,320 (Qwen 3.5 tokenizer and chat template), untied input / output embeddings |
34
  | Extra head | 1-layer MTP (multi-token prediction) head kept from the base model, not trained in this SFT |
35
  | Code | `JiRackDeltaNet_70b.py`: single-file PyTorch model; parameter names match the Hugging Face `Qwen3_5ForCausalLM` state dict |
36
- | Weights | bf16 (repository root), an FP8 block-quantized copy in `sft_final_fp8/` and a Q4\_K\_M GGUF in `gguf/` (see below) |
37
 
38
  ## How it was built
39
 
@@ -95,17 +94,17 @@ Assistant: Tom buys 7 pens at $3 each, so he spends 7 x $3 = $21. He pays with a
95
 
96
  ## GGUF (llama.cpp)
97
 
98
- `gguf/JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf` is a 42.65 GB Q4\_K\_M GGUF with a built-in system prompt (direct answers, no reasoning block). If a request has no system message, the chat template in the GGUF adds the prompt; your own system message replaces it. The prompt text, commands and checks are in gguf/README.md.
99
 
100
  ```bash
101
  llama-server -m JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf -c 8192 --jinja --reasoning off --port 8080
102
  ```
103
 
104
- | | Q4\_K\_M GGUF |
105
- | --- | --- |
106
- | Size | 42.65 GB |
107
- | CPU speed (GH200 Grace, 64 threads, `llama-bench`) | prompt 41.4 tokens/s, generation 0.87 tokens/s |
108
- | Pens question above | $29 |
109
 
110
  ## Usage
111
 
 
 
1
  ---
2
  license: apache-2.0
3
  library_name: pytorch
 
32
  | Vocabulary | 248,320 (Qwen 3.5 tokenizer and chat template), untied input / output embeddings |
33
  | Extra head | 1-layer MTP (multi-token prediction) head kept from the base model, not trained in this SFT |
34
  | Code | `JiRackDeltaNet_70b.py`: single-file PyTorch model; parameter names match the Hugging Face `Qwen3_5ForCausalLM` state dict |
35
+ | Weights | bf16 (repository root), an FP8 block-quantized copy in `sft_final_fp8/` and GGUF quantizations (Q3\_K\_M, Q4\_K\_M, Q6\_K) in `gguf/` (see below) |
36
 
37
  ## How it was built
38
 
 
94
 
95
  ## GGUF (llama.cpp)
96
 
97
+ Three GGUF quantizations in `gguf/`, each with a built-in system prompt (direct answers, no reasoning block). If a request has no system message, the chat template in the GGUF adds the prompt; your own system message replaces it. The prompt text, commands and checks are in [gguf/README.md](gguf/README.md).
98
 
99
  ```bash
100
  llama-server -m JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf -c 8192 --jinja --reasoning off --port 8080
101
  ```
102
 
103
+ | | Q3\_K\_M | Q4\_K\_M | Q6\_K |
104
+ | --- | --- | --- | --- |
105
+ | Size | 33.89 GB | 42.65 GB | 57.40 GB (2 parts) |
106
+ | CPU speed, prompt / generation (GH200 Grace, 64 threads, `llama-bench`) | 20.1 / 5.17 tokens/s | 50.2 / 5.04 tokens/s | 45.3 / 4.11 tokens/s |
107
+ | Pens question above | $29 | $29 | $29 |
108
 
109
  ## Usage
110
 
gguf/README.md CHANGED
@@ -1,13 +1,18 @@
1
  # JiRackDeltaNet 70B: GGUF for llama.cpp
2
 
3
- A Q4_K_M GGUF of **JiRackDeltaNet 70B** (the bf16 SFT release in the root of this repository), with a
4
- **built-in system prompt**.
 
 
 
 
 
 
5
 
6
  | | |
7
  |---|---|
8
- | File | `JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf` |
9
- | Size | 42.65 GB (39.7 GiB), 69.93B parameters, 1,714 tensors |
10
- | Quantization | Q4_K_M: `convert_hf_to_gguf.py` (bf16 GGUF) → `llama-quantize` |
11
  | llama.cpp architecture | `qwen35` (Qwen 3.5 layout: 96 Gated DeltaNet + 32 gated full-attention layers, 128 in total) |
12
  | Built and tested with | llama.cpp build `5d7793d` (October 28, 2026) |
13
  | Context | trained with sequences up to 8,192 tokens |
@@ -22,6 +27,8 @@ cd llama.cpp
22
  cmake -B build # add -DGGML_CUDA=ON for NVIDIA GPUs
23
  cmake --build build -j --config Release
24
  hf download CMSManhattan/JiRackDeltaNet_70b gguf/JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf --local-dir .
 
 
25
  ```
26
 
27
  OpenAI-compatible server:
@@ -29,6 +36,7 @@ OpenAI-compatible server:
29
  ```bash
30
  ./build/bin/llama-server -m gguf/JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf \
31
  -c 8192 --jinja --reasoning off --port 8080
 
32
  ```
33
 
34
  ```bash
@@ -40,8 +48,8 @@ curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/jso
40
 
41
  Interactive chat in the terminal: `./build/bin/llama-cli` with the same `-m`, `-c`, `--jinja` and `--reasoning off` flags.
42
 
43
- With a GPU build, `-ngl 999` puts all layers on the GPU (the weights alone are 42.65 GB). On a smaller GPU,
44
- offload part of the layers with `-ngl N`. GPU speed is not measured yet.
45
 
46
  ## Built-in system prompt
47
 
@@ -70,32 +78,40 @@ system message together with `"chat_template_kwargs": {"enable_thinking": true}`
70
 
71
  ## Measured
72
 
73
- All numbers below were measured on the CPU of an NVIDIA GH200 node (Grace, 64 threads) with a CPU-only llama.cpp build,
74
- while other jobs were running on the node's GPU.
75
 
76
- | Test | Result |
77
- |---|---|
78
- | `llama-bench` prompt processing (pp512) | 41.4 tokens/s |
79
- | `llama-bench` generation (tg128) | 0.87 tokens/s |
80
- | Pens question (greedy, `--reasoning off`, built-in prompt) | "Tom buys 7 pens at $3 each, so the total cost is 7 * 3 = $21. He pays with a $50 bill, so the change he gets is 50 - 21 = $29." (53 tokens, 0.88 tokens/s) |
81
- | Template, no system message | built-in prompt added; the reply starts after an empty `<think></think>` block |
82
- | Template, own system message | built-in prompt not added |
83
- | Template, with tools | built-in prompt added after the tools block |
84
- | Template, `enable_thinking: true` | the reply starts inside `<think>` |
85
-
86
- Against the source GGUF, the file with the built-in prompt was checked as follows:
87
  - the only changed metadata key is the chat template;
88
  - all 1,714 tensors have the same names, types and shapes;
89
  - 8 of the tensors were compared byte for byte.
90
 
91
- On CPU, generation is limited by memory bandwidth (42.65 GB of weights are read for every token), so plan for about
92
- one token per second on CPU, as measured above. For interactive use, offload layers to a GPU.
 
 
 
 
 
 
 
 
 
93
 
94
  ## Limitations
95
 
96
  - The 64 layers added by depth expansion have been trained only by the SFT run (~45 M tokens). See the main model card.
97
- - Q4_K_M is a lossy 4-bit quantization of the bf16 weights. Benchmarks of this GGUF (GSM8K, HumanEval, tool calling)
98
- are not measured yet.
99
  - Not ternary yet: ternary QAT (and a TQ2_0 GGUF) is a planned later stage.
100
  - An Ollama build is not published yet.
101
  - Not for medical, legal or financial advice.
 
1
  # JiRackDeltaNet 70B: GGUF for llama.cpp
2
 
3
+ GGUF quantizations of **JiRackDeltaNet 70B** (the bf16 SFT release in the root of this repository). Each file has the
4
+ same **built-in system prompt**.
5
+
6
+ | File | Size | Notes |
7
+ |---|---|---|
8
+ | `JiRackDeltaNet_70b_with_prompt.Q3_K_M.gguf` | 33.89 GB | smallest; on the ARM CPU we tested, prompt processing is 2.5× slower than Q4_K_M |
9
+ | `JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf` | 42.65 GB | recommended balance of size, speed and quality |
10
+ | `JiRackDeltaNet_70b_with_prompt.Q6_K-00001-of-00002.gguf` + `-00002-of-00002.gguf` | 57.40 GB (45.01 + 12.39) | closest to bf16; split in two parts, load the first one |
11
 
12
  | | |
13
  |---|---|
14
+ | Model | 69.93B parameters, 1,714 tensors |
15
+ | Quantization | `convert_hf_to_gguf.py` (bf16 GGUF) → `llama-quantize`, no importance matrix |
 
16
  | llama.cpp architecture | `qwen35` (Qwen 3.5 layout: 96 Gated DeltaNet + 32 gated full-attention layers, 128 in total) |
17
  | Built and tested with | llama.cpp build `5d7793d` (October 28, 2026) |
18
  | Context | trained with sequences up to 8,192 tokens |
 
27
  cmake -B build # add -DGGML_CUDA=ON for NVIDIA GPUs
28
  cmake --build build -j --config Release
29
  hf download CMSManhattan/JiRackDeltaNet_70b gguf/JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf --local-dir .
30
+ # Q6_K: both parts
31
+ # hf download CMSManhattan/JiRackDeltaNet_70b --include "gguf/*Q6_K*" --local-dir .
32
  ```
33
 
34
  OpenAI-compatible server:
 
36
  ```bash
37
  ./build/bin/llama-server -m gguf/JiRackDeltaNet_70b_with_prompt.Q4_K_M.gguf \
38
  -c 8192 --jinja --reasoning off --port 8080
39
+ # Q6_K: -m gguf/JiRackDeltaNet_70b_with_prompt.Q6_K-00001-of-00002.gguf (the second part is found automatically)
40
  ```
41
 
42
  ```bash
 
48
 
49
  Interactive chat in the terminal: `./build/bin/llama-cli` with the same `-m`, `-c`, `--jinja` and `--reasoning off` flags.
50
 
51
+ With a GPU build, `-ngl 999` puts all layers on the GPU, which needs the file size in GPU memory plus the context. On a
52
+ smaller GPU, offload part of the layers with `-ngl N`. GPU speed is not measured yet.
53
 
54
  ## Built-in system prompt
55
 
 
78
 
79
  ## Measured
80
 
81
+ CPU speed: `llama-bench` on the CPU of an NVIDIA GH200 node (Grace, 64 threads), CPU-only llama.cpp build, nothing else
82
+ running. Answers: `llama-server --reasoning off`, greedy, built-in prompt.
83
 
84
+ | | Q3_K_M | Q4_K_M | Q6_K |
85
+ |---|---|---|---|
86
+ | Prompt processing (pp512) | 20.1 tokens/s | 50.2 tokens/s | 45.3 tokens/s |
87
+ | Generation (tg128) | 5.17 tokens/s | 5.04 tokens/s | 4.11 tokens/s |
88
+ | Pens question | $29 | $29 | $29 |
89
+
90
+ Q4_K_M answer: "Tom buys 7 pens at $3 each, so the total cost is 7 * 3 = $21. He pays with a $50 bill, so the change
91
+ he gets is 50 - 21 = $29."
92
+
93
+ Each file was checked against the GGUF it was made from:
 
94
  - the only changed metadata key is the chat template;
95
  - all 1,714 tensors have the same names, types and shapes;
96
  - 8 of the tensors were compared byte for byte.
97
 
98
+ Template checks through `llama-server` (on Q4_K_M; the template is byte-identical in all three files):
99
+
100
+ | Request | Result |
101
+ |---|---|
102
+ | no system message | built-in prompt added; the reply starts after an empty `<think></think>` block |
103
+ | own system message | built-in prompt not added |
104
+ | with tools | built-in prompt added after the tools block |
105
+ | `enable_thinking: true` | the reply starts inside `<think>` |
106
+
107
+ Generation reads the whole file once per token, so on CPUs with less memory bandwidth than Grace it is proportionally
108
+ slower.
109
 
110
  ## Limitations
111
 
112
  - The 64 layers added by depth expansion have been trained only by the SFT run (~45 M tokens). See the main model card.
113
+ - These are lossy quantizations of the bf16 weights, made without an importance matrix. Benchmarks of the GGUF files
114
+ (GSM8K, HumanEval, tool calling) are not measured yet.
115
  - Not ternary yet: ternary QAT (and a TQ2_0 GGUF) is a planned later stage.
116
  - An Ollama build is not published yet.
117
  - Not for medical, legal or financial advice.