Devansh Batham commited on
Commit
c9150ad
·
1 Parent(s): d0a349e

Streamline model card and refresh chart

Browse files
README.md CHANGED
@@ -14,23 +14,19 @@ tags:
14
 
15
  # nyx
16
 
17
- nyx is a compact 4B decision model for Choice, Score, and Noul workloads. The release is one 3.29 GB GGUF that runs with llama.cpp on CPU, Apple Metal, NVIDIA CUDA, and AMD HIP.
18
 
19
- ![Animated light-theme chart comparing the nyx reference and Jev across six classification benchmarks](assets/nyx-benchmarks.svg)
20
 
21
  ## Model
22
 
23
  | Property | Value |
24
  |---|---|
25
- | Base | [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B) |
26
- | Base revision | `851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a` |
27
  | File | `nyx.gguf` |
28
- | Size | 3,288,582,784 bytes (3.29 GB / 3.06 GiB) |
29
- | Quantization | Importance-matrix IQ4_XS with selected Q5_K/Q6_K tensors |
30
  | SHA-256 | `39d64fb19863cfc067e2411fcb2a0444113dda13798b15de5617736d91914359` |
31
- | Runtime | Pinned llama.cpp build in [`devanshbatham/nyx`](https://github.com/devanshbatham/nyx) |
32
-
33
- The architecture, tokenizer, and base weights originate from Qwen. nyx adds decision-task adaptation, task-vector composition, quantization, and a production API integration.
34
 
35
  ## Run
36
 
@@ -38,7 +34,6 @@ The architecture, tokenizer, and base weights originate from Qwen. nyx adds deci
38
  git clone https://github.com/devanshbatham/nyx.git /opt/nyx
39
  hf download devanshbatham/nyx --local-dir /opt/nyx-model
40
 
41
- # auto-detects CPU, Metal, CUDA, or HIP
42
  /opt/nyx/scripts/build-llama-cpp.sh /opt/llama.cpp
43
 
44
  export LLAMA_SERVER_BIN=/opt/llama.cpp/build/bin/llama-server
@@ -46,13 +41,13 @@ export NYX_GGUF_PATH=/opt/nyx-model/nyx.gguf
46
  /opt/nyx/scripts/serve-model.sh
47
  ```
48
 
49
- Budget at least 8 GB of free RAM, VRAM, or unified memory for one 4,096-token slot and 6 GB of free disk. More context and concurrent slots require more memory. The model backend binds to unauthenticated loopback port `30000`; do not expose it publicly.
50
 
51
- For the authenticated `POST /v1/systemone` API and typed Python/TypeScript clients, use [`github.com/devanshbatham/nyx`](https://github.com/devanshbatham/nyx). The gateway implements the TypeSafe System One wire contract for Choice, Score, Noul, model discovery, bearer authentication, and request IDs.
52
 
53
- ## Evaluation
54
 
55
- The public comparison below is for the pre-quantization nyx reference. The pretrained Qwen base and nyx reference used the same local runtime; all three systems received the same 2,277 frozen requests.
56
 
57
  | Benchmark | Qwen3.5-4B base | nyx reference | Jev 1.13 |
58
  |---|---:|---:|---:|
@@ -67,29 +62,8 @@ The public comparison below is for the pre-quantization nyx reference. The pretr
67
  | Round trip, median / p95 | 54.85 / 67.96 ms | 55.56 / 72.77 ms | 182.33 / 245.12 ms |
68
  | Throughput | 17.44 req/s | 17.15 req/s | 42.43 req/s |
69
 
70
- Local timings used one AMD Instinct MI325X, one execution slot, Q8 KV cache, Flash Attention, and a 4,096-token context. Jev used remote HTTPS at concurrency 8, so its timing is descriptive rather than a hardware-controlled speed comparison.
71
-
72
- ### Compact-release fidelity
73
-
74
- The released GGUF was compared with the 8.42 GB reference on a separate frozen 1,024-case set.
75
-
76
- | Metric | Reference | Released GGUF |
77
- |---|---:|---:|
78
- | Correct | 873/1,024 | 874/1,024 |
79
- | Accuracy | 85.25% | 85.35% |
80
- | Decision agreement | — | 98.73% (1,011/1,024) |
81
- | Decision disagreements | — | 13 |
82
-
83
- The compact model gained seven decisions and lost six relative to the reference. It did not meet the experiment's original 99.5% agreement target; publication followed an explicit decision to accept that tradeoff. See the [evaluation record](benchmarks/random-six-report.md).
84
-
85
- ## Limitations
86
-
87
- - Optimized for structured classification and decision workloads; general assistant quality was not established.
88
- - The released GGUF has not been rerun on the full public 2,277-case suite.
89
- - NVIDIA and Apple performance and cross-vendor decision parity have not been measured.
90
- - Public-benchmark pretraining overlap is unknown.
91
- - Outputs can be incorrect or biased. Validate consequential decisions independently.
92
 
93
- ## License and attribution
94
 
95
- Apache License 2.0. nyx is derived from [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B), also distributed under Apache-2.0. Qwen and Alibaba Cloud are credited as the original model authors. This project is not endorsed by or affiliated with Qwen, Alibaba Cloud, TypeSafe, or Jev.
 
14
 
15
  # nyx
16
 
17
+ nyx is a compact 4B decision model for Choice, Score, and Noul workloads. The release is one 3.29 GB GGUF for llama.cpp on CPU, Apple Metal, NVIDIA CUDA, and AMD HIP.
18
 
19
+ ![Animated green-and-white chart comparing nyx and Jev across six classification benchmarks](assets/nyx-benchmarks.svg)
20
 
21
  ## Model
22
 
23
  | Property | Value |
24
  |---|---|
25
+ | Base | [Qwen/Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B) |
 
26
  | File | `nyx.gguf` |
27
+ | Size | 3.29 GB / 3.06 GiB |
28
+ | Format | GGUF, importance-matrix IQ4_XS with selected Q5_K/Q6_K tensors |
29
  | SHA-256 | `39d64fb19863cfc067e2411fcb2a0444113dda13798b15de5617736d91914359` |
 
 
 
30
 
31
  ## Run
32
 
 
34
  git clone https://github.com/devanshbatham/nyx.git /opt/nyx
35
  hf download devanshbatham/nyx --local-dir /opt/nyx-model
36
 
 
37
  /opt/nyx/scripts/build-llama-cpp.sh /opt/llama.cpp
38
 
39
  export LLAMA_SERVER_BIN=/opt/llama.cpp/build/bin/llama-server
 
41
  /opt/nyx/scripts/serve-model.sh
42
  ```
43
 
44
+ Allow 8 GB of free RAM, VRAM, or unified memory and 6 GB of disk for one 4,096-token slot. Larger contexts and concurrent slots need more memory.
45
 
46
+ The production API and typed Python/TypeScript clients are in [devanshbatham/nyx](https://github.com/devanshbatham/nyx).
47
 
48
+ ## Benchmarks
49
 
50
+ Accuracy on 2,277 frozen classification requests:
51
 
52
  | Benchmark | Qwen3.5-4B base | nyx reference | Jev 1.13 |
53
  |---|---:|---:|---:|
 
62
  | Round trip, median / p95 | 54.85 / 67.96 ms | 55.56 / 72.77 ms | 182.33 / 245.12 ms |
63
  | Throughput | 17.44 req/s | 17.15 req/s | 42.43 req/s |
64
 
65
+ Local Qwen and nyx latency: MI325X, concurrency 1. Jev latency: remote HTTPS, concurrency 8. The published GGUF matched the nyx reference on 98.73% of a separate 1,024-case fidelity set. [Reproduce the nyx/Jev benchmark](https://github.com/devanshbatham/nyx/tree/main/benchmarks).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
+ ## License
68
 
69
+ Apache-2.0. nyx is derived from [Qwen/Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B); Qwen and Alibaba Cloud are credited as the original model authors. This project is not affiliated with Qwen, Alibaba Cloud, TypeSafe, or Jev.
assets/nyx-benchmarks.svg CHANGED
benchmarks/random-six-report.md DELETED
@@ -1,71 +0,0 @@
1
- # Six public classification benchmarks
2
-
3
- These results describe the 8.42 GB pre-quantization nyx reference, not the 3.29 GB release GGUF. The compact file was selected using the separate fidelity evaluation reported below.
4
-
5
- Frozen paired cohort: 2,277 cases; case SHA-256 `046a38c24747fd724003aca7e5f1d1b6e148d599092222361c0717ecff84ecad`; every failure counts as wrong.
6
-
7
- | Dataset | Cases | Qwen3.5-4B base | nyx | Jev 1.13 |
8
- |---|---:|---:|---:|---:|
9
- | AG News | 400 | 87.75% (351/400) | 85.75% (343/400) | 86.50% (346/400) |
10
- | TREC coarse | 500 | 86.60% (433/500) | 84.20% (421/500) | 93.00% (465/500) |
11
- | CoLA | 400 | 77.75% (311/400) | 81.50% (326/400) | 77.75% (311/400) |
12
- | RTE | 277 | 84.12% (233/277) | 88.09% (244/277) | 91.34% (253/277) |
13
- | Emotion | 300 | 47.67% (143/300) | 46.33% (139/300) | 47.00% (141/300) |
14
- | IMDb | 400 | 95.75% (383/400) | 95.75% (383/400) | 97.00% (388/400) |
15
- | Dataset-macro accuracy | 2,277 | 79.94% | 80.27% | 82.10% |
16
- | Dataset-macro F1 | 2,277 | 79.83% | 80.48% | 81.85% |
17
- | Pooled micro accuracy | 2,277 | 81.42% (1,854/2,277) | 81.51% (1,856/2,277) | 83.62% (1,904/2,277) |
18
-
19
- Jev-only versus nyx-only correct cases were 121 to 73; the exact two-sided McNemar p-value is `0.0006995`. nyx-only versus Qwen-only correct cases were 112 to 110 (`p=0.9465`).
20
-
21
- ## Runtime
22
-
23
- The release profile uses one llama.cpp execution slot because it was the fastest measured configuration for this latency-oriented workload.
24
-
25
- | Measurement | Result |
26
- |---|---:|
27
- | Reference model file | 8,424,393,056 bytes |
28
- | Measured VRAM | 9,927,208,960 bytes |
29
- | Round trip, median | 55.56 ms |
30
- | Round trip, p95 | 72.77 ms |
31
- | Round trip, mean | 57.92 ms |
32
- | Full-run wall time | 132,780.73 ms |
33
- | Sustained throughput | 17.15 requests/s |
34
-
35
- The nyx timing is direct loopback HTTP to llama.cpp on one AMD Instinct MI325X, with full GPU offload, Flash Attention, Q8 KV cache, 4,096 tokens per slot, and client/server concurrency 1. It excludes the authenticated gateway and external network. The Qwen base used the identical local profile and measured 54.85 ms median, 67.96 ms p95, and 17.44 requests/s.
36
-
37
- The previously observed Jev remote-HTTPS run used client concurrency 8 and reported 182.33 ms median, 245.12 ms p95, and 42.43 requests/s. Different hardware, network topology, and concurrency make that timing descriptive rather than a controlled speed comparison.
38
-
39
- ## Batching check
40
-
41
- The first 120 frozen cases were repeated at three concurrency levels. The server had the same number of 4,096-token slots as the client concurrency.
42
-
43
- | Concurrency | Correct | Median / p95 | Throughput |
44
- |---:|---:|---:|---:|
45
- | 1 | 94/120 | 57.20 / 89.01 ms | 15.79 requests/s |
46
- | 2 | 94/120 | 162.80 / 219.25 ms | 11.77 requests/s |
47
- | 8 | 94/120 | 606.22 / 887.68 ms | 11.61 requests/s |
48
-
49
- All 120 class decisions were identical across the three runs. Batching was rejected because it reduced throughput and increased latency.
50
-
51
- ## Protocol and limits
52
-
53
- - Dataset selection, sampled examples, request order, and labels were frozen before provider scoring.
54
- - AG News, CoLA, Emotion, and IMDb are fixed class-stratified samples; TREC test and RTE validation are complete.
55
- - Each request contained one Choice question. Both systems completed 2,277/2,277 cases with zero errors.
56
- - Public-benchmark pretraining overlap is unknown. This finite suite does not establish universal classification quality.
57
- - The NVIDIA RTX 4000 Ada target still requires an on-device latency and class-decision parity run before production rollout.
58
-
59
- ## Compact release fidelity
60
-
61
- The released importance-matrix IQ4_XS candidate was evaluated against the reference on a frozen 1,024-case selection spanning Banking77, BoolQ, CLINC150, code-defect annotation, commit type, DBpedia14, email spam, SNLI, structured rules, and tweet sentiment.
62
-
63
- | Metric | Reference | Released GGUF |
64
- |---|---:|---:|
65
- | File size | 8,424,393,056 bytes | 3,288,582,784 bytes |
66
- | Correct | 873/1,024 | 874/1,024 |
67
- | Accuracy | 85.25% | 85.35% |
68
- | Decision agreement | — | 98.73% (1,011/1,024) |
69
- | Decision disagreements | — | 13 |
70
-
71
- The released candidate gained seven decisions and lost six relative to the reference. This is fidelity evidence, not a fresh public-benchmark run. The candidate did not meet the experiment's original 99.5% agreement target and was released only after that threshold was explicitly waived.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
release-manifest.json CHANGED
@@ -14,20 +14,16 @@
14
  "sha256": "a7c85805e2a02824e60d752e1d543649918c081b45b150615a926ea2f79f2e91"
15
  },
16
  "README.md": {
17
- "bytes": 4518,
18
- "sha256": "dcb056c79af04ccbc3662af1bee3a480885cac0451d3322f2399bfca6cdead35"
19
  },
20
  "assets/IOSEVKA-OFL.md": {
21
  "bytes": 4674,
22
  "sha256": "4fbfa00e9fb9e9a774ab4c099bc6e8b2ac1a46f6492a2c260f958b004d172da6"
23
  },
24
  "assets/nyx-benchmarks.svg": {
25
- "bytes": 121931,
26
- "sha256": "d0096f7d804d89f1cebec9e1e966cb05c855382b9842f5741cb162e3f7b884d5"
27
- },
28
- "benchmarks/random-six-report.md": {
29
- "bytes": 4372,
30
- "sha256": "68f53d0f47f25a3cf92fe73be76537164270b18b10d374e2247456f7daf3036f"
31
  },
32
  "nyx.gguf": {
33
  "bytes": 3288582784,
@@ -40,5 +36,5 @@
40
  },
41
  "format_version": 1,
42
  "repository": "devanshbatham/nyx",
43
- "total_bytes": 3288731957
44
  }
 
14
  "sha256": "a7c85805e2a02824e60d752e1d543649918c081b45b150615a926ea2f79f2e91"
15
  },
16
  "README.md": {
17
+ "bytes": 2568,
18
+ "sha256": "8a64b70816f33dd4997b1b815ab267ad5e2192f3401425d1cadc9dc69e6fca5a"
19
  },
20
  "assets/IOSEVKA-OFL.md": {
21
  "bytes": 4674,
22
  "sha256": "4fbfa00e9fb9e9a774ab4c099bc6e8b2ac1a46f6492a2c260f958b004d172da6"
23
  },
24
  "assets/nyx-benchmarks.svg": {
25
+ "bytes": 121677,
26
+ "sha256": "3d950fd5ce930e3309c444513c45e2748c7716029fca4bda4b999a8b23fce1fa"
 
 
 
 
27
  },
28
  "nyx.gguf": {
29
  "bytes": 3288582784,
 
36
  },
37
  "format_version": 1,
38
  "repository": "devanshbatham/nyx",
39
+ "total_bytes": 3288725381
40
  }