File size: 23,217 Bytes
21159c4
 
548c6cb
21159c4
 
 
 
 
 
 
 
 
 
 
 
 
9d4f2dc
 
21159c4
548c6cb
21159c4
 
 
548c6cb
9d4f2dc
6782a57
42dbf6e
6782a57
 
 
0a8de3b
e95adc3
 
fd7096c
 
 
 
 
 
 
 
 
54b3bb5
 
 
154d7a4
a7a281e
 
 
 
 
 
6782a57
9d4f2dc
548c6cb
9d4f2dc
6782a57
 
 
 
 
 
548c6cb
21159c4
18a69e8
548c6cb
 
 
42dbf6e
 
 
0a8de3b
d391149
 
18a69e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca42a3e
18a69e8
 
41e6c98
 
 
 
 
 
261bce6
ff239f7
41e6c98
18a69e8
 
 
 
 
 
 
 
 
41e6c98
ca42a3e
 
18a69e8
 
ca42a3e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5a75de7
 
 
 
 
 
548c6cb
 
 
f131287
0a8de3b
548c6cb
f131287
0a8de3b
6782a57
f131287
548c6cb
f131287
d153963
f131287
307ca95
548c6cb
f131287
58293d9
6782a57
548c6cb
6782a57
 
 
f131287
 
 
 
 
 
58293d9
548c6cb
33f572a
6782a57
 
41e6c98
9624662
f131287
130dd95
18a69e8
548c6cb
18a69e8
548c6cb
f131287
 
18a69e8
 
 
 
 
 
e9027a0
548c6cb
f131287
 
 
 
 
 
 
0a8de3b
f131287
 
 
 
548c6cb
3d62660
5ce6af3
548c6cb
9d4f2dc
 
 
d153963
9d4f2dc
18a69e8
9d4f2dc
 
 
 
 
 
 
 
 
18a69e8
548c6cb
 
9d4f2dc
 
 
 
548c6cb
9d4f2dc
 
 
 
 
5ce6af3
548c6cb
5ce6af3
6782a57
5ce6af3
c5fde11
5ce6af3
6782a57
5ce6af3
 
 
 
 
548c6cb
eacd0f9
548c6cb
eacd0f9
548c6cb
eacd0f9
548c6cb
eacd0f9
548c6cb
eacd0f9
548c6cb
 
3d62660
548c6cb
 
e9027a0
548c6cb
 
 
 
 
 
 
 
 
21159c4
548c6cb
9d4f2dc
548c6cb
21159c4
3d62660
 
ecef92b
 
3d62660
548c6cb
 
ecef92b
3d62660
 
 
21159c4
548c6cb
 
6782a57
21159c4
548c6cb
21159c4
6782a57
 
548c6cb
21159c4
966c506
 
eacd0f9
966c506
eacd0f9
966c506
 
 
 
 
 
 
3d62660
 
21159c4
3d62660
21159c4
 
 
 
 
 
 
3d62660
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
---
license: apache-2.0
model_name: Qwen3.6-27B AEON RYS MaxThinkCoder IQ4_NL GGUF for ik-llama, with experimental MTP artifact
language:
- en
- zh
- multilingual
tags:
- gguf
- qwen3
- qwen3.6
- reasoning
- coding
- academic-writing
- uncensored
- rys
- mtp
- ik-llama
base_model:
- AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored
- Qwen/Qwen3.6-27B
---

# Qwen3.6-27B AEON RYS MaxThinkCoder IQ4_NL GGUF for ik-llama

> Hard runtime requirement: use the custom AEON ik-llama fork:
>
> https://github.com/noonr48/qwen36-aeon-ik-llama
>
> The root GGUF files in this repo are built for that fork. Treat this as an `ik-llama` release, not a stock `llama.cpp` model drop.

> **Newer fine-tunes built on this base — [SignalLatch](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-SignalLatch-GGUF) (a behaviour fine-tune) and [PatchCode](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF) (an agentic-coder distil on top of SignalLatch).** This repo is the non-finetuned base.

## Comprehensive Release Record

The full transparent build/test/decision record for this non-finetuned release is here:

https://noonr48.github.io/qwen36-aeon-ik-llama/qwen36-aeon-rys-15-20/index.html

That page is the detailed companion to this model card. It covers the layer-selection process, quantization-survival checks, runtime profile, practical-test notes, caveats, and the reasoning behind centering this release on the `IQ4_NL` GGUF. This Hugging Face README is the quick download/runtime page; the linked record is where the comprehensive details live.

For future planned RYS releases, this is the expected pattern: a concise model card for use, plus a public companion record for transparency.

SignalLatch behavior fine-tune page:
`https://noonr48.github.io/qwen36-aeon-ik-llama/qwen36-aeon-rys-signallatch/index.html`

## Project Positioning

The broader goal of this model series is practical local work: capable, functional models that fit realistic hardware and can simply get tasks done. Built on the AEON uncensored base, this release is meant to stay low-friction: less lecturing, less getting in the way, and more focus on completing the task in front of it.

RYS and `IQ4_NL` are the practical part of that goal: preserving useful reasoning and coding behavior in a compact form factor. One 24 GB-class GPU can be enough for a serious local worker. If you have more GPUs, the natural deployment pattern is simple: run more workers in parallel and get more work done at once.

## Runtime + Release Point

Default: use `Qwen3.6-27B-AEON-RYS-MaxThinkCoder-IQ4_NL-ik-llama-custom-mixed.gguf` for normal inference.

The BF16 artifacts are included for exploration, inspection, conversion, and continued work. The release itself is aimed at practical use through the `IQ4_NL` GGUF: a much smaller file that keeps the model's reasoning and coding behavior close to the BF16 source.

The point of RYS here is not a huge BF16 headline gain. In our testing, the RYS BF16 model only gave roughly a `1%` gain over the Unsloth/official-style BF16 baseline. The useful result was quantization resistance: this specific AEON RYS `15,20` branch, custom runtime path, and `IQ4_NL` quantization held up far better after compression.

We had tried the same broad quantization approach on the official/non-RYS model before, but the outcome was poor: reasoning and coding quality degraded noticeably. The RYS branch was selected because it preserved those behaviors much better under the practical quantized release path.

Experimental: use the MTP GGUF only if you specifically want to test `ik_llama.cpp` multi-token prediction on this model.

Result: the MTP GGUF loads with the expected MTP tensors, but MTP mode was slower than the no-MTP path in our internal graph-split tests, and practical long-output checks favored the normal non-MTP IQ4_NL file.

Runtime: this is an `ik-llama`-targeted release, not a stock `llama.cpp` release.

Required runtime URL: https://github.com/noonr48/qwen36-aeon-ik-llama

Download/build that fork first; the recommended GGUF is intended for this runtime path.

RYS weight representation note: this release uses materialized RYS. The copied `15,20` window is exported as normal GGUF layer tensors, so output layers `20..24` have their own tensors copied from source layers `15..19` instead of aliasing those source buffers at runtime. That is intentional for this release: it keeps the checkpoint, GGUF conversion, quantization path, and downstream modification/fine-tune workflows explicit. A procedural/aliased runtime could be explored in future work to reduce duplicate weight memory, but the current `IQ4_NL` artifact has already been tested as stable and reliable, so I do not plan to change its representation without rebuilding and re-verifying the release.

### Recommended llama-server profile

Use the custom AEON ik-llama fork and start with this public deployment shape for the recommended non-MTP `IQ4_NL` GGUF:

```bash
./build/bin/llama-server \
  -m /path/to/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-IQ4_NL-ik-llama-custom-mixed.gguf \
  -c 65536 \
  -ngl 999 \
  -np 1 \
  -fa on \
  -sm graph \
  --temp 0.7 \
  --jinja \
  --reasoning-format deepseek \
  --reasoning-budget 0
```

For long-context use, the same profile can be run with a larger context. The default KV type is `f16`; we have also tested the `f16` KV path up to about `160k` context without seeing the earlier failure pattern:

```bash
  -c 131072
```

Practical single-GPU deployment note: the Q4_NL release is small enough for practical use on a single RTX 3090 / 24 GB-class card. In an observed reference profile, roughly `160k` context with default/FP16 KV fit at about `20.3 GiB` total VRAM. Treat this as a deployment reference point, not a guaranteed cross-hardware memory benchmark.

For the later 131k practical canvas-agent comparison, we used FP32 KV as a conservative isolation setting to make sure any failure would not be caused by KV precision:

```bash
  -c 131072 \
  -ctk f32 \
  -ctv f32
```

Runtime notes:
- `-c 65536` is the practical baseline profile; `-c 131072` is the long-context comparison profile.
- FP32 KV was used for the 131k canvas comparison as a conservative validation setting, not because FP16 KV is known-bad. For normal practical use, start with default/FP16 KV and reduce context or KV precision only if your system needs it.
- `-sm graph` is the tested strength-sweep / comparison path. If you are running a RAM-cache parallel deployment, use the separate setup below.
- Do not pass `--ctx-checkpoints 0` for RAM prompt-cache deployments. The prompt may still match, but without recurrent context checkpoints the server can fall back to full prompt reprocessing.
- Use Jinja plus DeepSeek reasoning formatting for the OpenAI-compatible chat path.

### Parallel RAM-cache and agent-harness setup

The custom AEON ik-llama fork now includes a runtime adjustment for explicit slot lanes and RAM prompt-cache reuse. This matters for agent harnesses such as OpenCode, where you may want one long-running worker on `slot0` and another on `slot1` instead of letting requests bounce between slots.

Generic two-slot server shape:

```bash
./build/bin/llama-server \
  -m /path/to/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-IQ4_NL-ik-llama-custom-mixed.gguf \
  -c 360000 \
  -np 2 \
  -ngl 999 \
  -b 256 \
  -ub 64 \
  -fa on \
  -sm layer \
  -ctk f16 \
  -ctv f16 \
  --temp 0.7 \
  --jinja \
  --reasoning-format deepseek \
  --reasoning-budget 0 \
  --alias qwen36-aeon-rys-q4nl \
  -cram 65536
```

How to read that setup:
- `-np 2` creates two parallel slots.
- `-c 360000` is the total server context budget; with two slots, each lane receives roughly half.
- `-cram 65536` enables RAM prompt cache. The value is MiB and is server-wide, so adjust it to your host memory budget.
- keep context checkpoints enabled. Do not add `--ctx-checkpoints 0` if you want RAM prompt-cache restores to avoid full prompt reprocessing.
- use `-sm layer` for this two-GPU / two-slot RAM-cache path. On this recurrent/hybrid path, `-sm graph` disables the checkpoints needed for actual restore.
- set a stable `--alias`, then point the agent harness at `<alias>-slot0` and `<alias>-slot1`.

Minimal OpenCode-style provider shape:

```json
{
  "provider": {
    "aeon-rys-q4nl-p2": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "AEON RYS Q4_NL p2",
      "options": {
        "baseURL": "http://<host>:<port>/v1",
        "timeout": false
      },
      "models": {
        "qwen36-aeon-rys-q4nl-slot0": {
          "name": "AEON RYS Q4_NL slot0",
          "reasoning": true,
          "interleaved": { "field": "reasoning_content" },
          "limit": { "context": 180096, "input": 171904, "output": 8192 }
        },
        "qwen36-aeon-rys-q4nl-slot1": {
          "name": "AEON RYS Q4_NL slot1",
          "reasoning": true,
          "interleaved": { "field": "reasoning_content" },
          "limit": { "context": 180096, "input": 171904, "output": 8192 }
        }
      }
    }
  }
}
```

The important part is the model-name suffix. If your server alias is `qwen36-aeon-rys-q4nl`, the OpenAI-compatible request model names `qwen36-aeon-rys-q4nl-slot0` and `qwen36-aeon-rys-q4nl-slot1` pin requests to the matching server slot.

Rationale: a long-running agent benefits from a stable context lane. If a harness sends related work sometimes to slot 0 and sometimes to slot 1, the live KV/recurrent checkpoint state for that lane may not match the next request and the server may need to reprocess more of the prompt. Slot suffixes make the lane explicit. In the unpatched pinned-slot path we tested, those suffixes selected the slot but skipped RAM prompt-cache save/load. The current fork fixes that by running the RAM prompt-cache path for pinned slots too.

Verification we performed: direct A/B/A requests against the current fork showed the expected cache behavior. The repeated `A` request produced `found better prompt`, `prompt cache load took ...`, and `restored context checkpoint` in the server log instead of a full prompt reprocess. When `--ctx-checkpoints 0` was present, the prompt match could still be found, but the server had no checkpoint state to restore and fell back to reprocessing. That is why the RAM-cache profile above leaves checkpoints enabled.

Full runtime and release details are in the companion record:

https://noonr48.github.io/qwen36-aeon-ik-llama/qwen36-aeon-rys-15-20/index.html

Behavior fine-tune note: a newer minimal behavioral fine-tune of this RYS line is available as `SignalLatch`:

https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-SignalLatch-GGUF

It keeps the same practical `IQ4_NL` deployment idea, but adds a small checkpoint-386 / strength-0.10 behavior merge trained around a `Review -> Align -> Latch -> Repair -> Confirm` loop for coding agents: scoped context review, goal and constraint alignment, waiting for concrete tool/command signals, targeted repair from evidence, and focused validation.

### Which File Should I Download?

- **Normal inference / recommended default:**
  [`Qwen3.6-27B-AEON-RYS-MaxThinkCoder-IQ4_NL-ik-llama-custom-mixed.gguf`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/blob/main/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-IQ4_NL-ik-llama-custom-mixed.gguf)
  Runtime: [`qwen36-aeon-ik-llama`](https://github.com/noonr48/qwen36-aeon-ik-llama)
- **MTP runtime testing only:**
  [`Qwen3.6-27B-AEON-RYS-MaxThinkCoder-SpeedBoosted-IQ4_NL-MTP-Experimental.gguf`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/blob/main/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-SpeedBoosted-IQ4_NL-MTP-Experimental.gguf)
  Runtime: [`qwen36-aeon-ik-llama`](https://github.com/noonr48/qwen36-aeon-ik-llama) with Qwen3.5/Qwen3.6 MTP support
- **BF16 GGUF exploration / conversion checks:**
  [`Qwen3.6-27B-AEON-RYS-MaxThinkCoder-BF16.gguf`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/blob/main/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-BF16.gguf)
- **Transformers, LoRA, SFT, continued training, or inspection:**
  [`bf16-safetensors/`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/tree/main/bf16-safetensors)

### Quality / Compression

The released IQ4_NL GGUF is about `70%` smaller on disk than the BF16 GGUF:
`54G` BF16 -> `16G` IQ4_NL.

This is a mixed validation snapshot, not a broad leaderboard benchmark. It compares the RYS BF16 source artifact against the released RYS `IQ4_NL` file.

The important read is the compression behavior: after the drop from BF16 to `IQ4_NL`, the mixed four-probe score changed by less than `1%` relative.

| probe | RYS BF16 | released RYS IQ4_NL |
|---|---:|---:|
| mixed 4-probe mean | `0.7299` | `0.7244` |
| `math_16` | `0.8421` | `0.7897` |
| `eq_16` | `0.7123` | `0.7111` |
| `math_4` | `0.4851` | `0.5170` |
| `gsm8k_5` | `0.8800` | `0.8800` |

Mixed four-probe snapshot change: `-0.0055` absolute, about `-0.75%` relative.

That is the intended claim for this release: RYS made this practical Q4_NL deployment path much more resistant to reasoning/coding degradation. The BF16 RYS model is available for exploration, but the main artifact is the compressed `IQ4_NL` GGUF.

Practical coding-agent test: we also used this non-finetuned RYS `IQ4_NL` model in an isolated Krita-like canvas-agent task: a local app with layers, brushes, transforms, opacity controls, and a local-only AI image generation stub. Under temp `0.7`, `131072` context, conservative FP32 KV cache, flash-attention, graph-split setup, the first attempt hit an invalid tool/diff formatting failure before producing usable root files, but a clean retry completed with `rc=0` and verifier score `1.0`. FP32 KV was used here to isolate the model/task behavior from KV precision questions; separate long-context checks with FP16/default KV have reached about `160k` context without showing the earlier failure pattern. This is a useful practical result: the compressed RYS path can complete the coding-agent task, while the later SignalLatch behavior fine-tune was added to improve reliability and completion discipline on top of this base.

### Speed / MTP

These are context-specific internal snapshots, not a normalized cross-hardware benchmark or a public speed claim. Hardware identifiers and local machine details are intentionally omitted here; treat the rows as relative notes for the tested runtime shapes only.

The first two rows compare the custom runtime path against an internal, non-released patched upstream-style comparison path. The MTP rows are a separate graph-split runtime experiment and should not be read as a direct hardware comparison.

| check | setup | decode speed |
|---|---|---:|
| recommended custom `ik-llama` deployment | graph split, total server `ctx=409600`, `np=2` (~204800 token KV budget/slot), `f32/f32` KV | `39.37 tok/s` |
| internal non-released patched upstream-style comparison path | layer-style comparison, `ctx=4096`, `np=1`, `f16` KV | `22.51 tok/s` |
| no-MTP short generation | graph split, 192-token check | `48.68 tok/s` |
| naive MTP draft-1 short generation | graph split, same 192-token check | `38.16 tok/s` |
| adaptive MTP short generation | graph split, same 192-token check | `45.36 tok/s` |
| adaptive MTP longer generation | graph split, 768-token check | `46.95 tok/s` vs `48.71 tok/s` no-MTP |

Note: the `SpeedBoosted` filename is legacy packaging wording for the custom `ik_llama` release context. Treat this file as experimental MTP, not as a speedup claim.

### Model Details

- Public codename: `MaxThinkCoder`
- Source model: [`AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored`](https://huggingface.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored)
- RYS branch: AEON-derived `blocks:15,20`
- Focus: coding, technical reasoning, academic-style writing, and long-context English work
- Required runtime: custom [`qwen36-aeon-ik-llama`](https://github.com/noonr48/qwen36-aeon-ik-llama)
- RYS build guide: [`docs/rys-layer-duplication-guide`](https://github.com/noonr48/qwen36-aeon-ik-llama/tree/main/docs/rys-layer-duplication-guide)
- Not a generic safe-default chat model
- Not a stock `llama.cpp` release

Tool-calling note: use a build of the linked `ik-llama` fork that includes the May 2026 duplicate `tool_call` filtering. It deduplicates repeated identical `tool_calls` server-side.


## Experimental MTP Details

An optional MTP-capable IQ4_NL GGUF is included for testing ik_llama.cpp multi-token prediction:

[`Qwen3.6-27B-AEON-RYS-MaxThinkCoder-SpeedBoosted-IQ4_NL-MTP-Experimental.gguf`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/blob/main/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-SpeedBoosted-IQ4_NL-MTP-Experimental.gguf)

Use it only with an `ik_llama.cpp` build that has Qwen3.5/Qwen3.6 MTP support. The tested MTP path used:

```bash
-sm graph -mtp --draft-max 1 --draft-p-min 0.0 --draft-min 0 -b 128 -ub 32 -ctk f16 -ctv f16 -fa on -gr
```

What our tests found:
- MTP is structurally intact in this artifact: it has `qwen35.nextn_predict_layers = 1` and the `blk.69.nextn.*` tensors.
- This uploaded MTP file is the MTP-aware imatrix requant, so the MTP tail block is covered by the imatrix instead of falling back to missing-imatrix behavior for the `blk.69` matrix tensors.
- We tried graph split, MTP graph reuse, avoiding unnecessary logits in MTP warmup/update paths, safer KV/recurrent restore handling, GPU-side draft argmax, and a runtime adaptive MTP gate.
- In our tested graph-split configurations, MTP remained below the non-MTP path: `38.16 tok/s` naive MTP and `45.36 tok/s` adaptive MTP vs `48.68 tok/s` non-MTP on the 192-token check.
- A 768-token check showed the same pattern: `46.95 tok/s` adaptive MTP vs `48.71 tok/s` non-MTP.
- GPU-side argmax was neutral to slightly slower in this setup.
- Practical quality testing also favored the original non-MTP release: fewer long-output repeat penalties and better default behavior.

What this means in practice:
- the MTP artifact loads and can be useful for runtime/MTP research
- the linked `ik-llama` fork has Qwen3.5/Qwen3.6 MTP support and still supports the non-MTP GGUF
- the recommended model for actual use is still the normal non-MTP `IQ4_NL-ik-llama-custom-mixed` GGUF
- MTP may become useful later if the MTP head is calibrated or fine-tuned for the RYS/AEON hidden-state distribution

Recommendation: download the MTP file if you specifically want to test MTP. For normal use, use the original non-MTP `IQ4_NL-ik-llama-custom-mixed` GGUF.


## BF16 GGUF And Safetensors

A BF16 GGUF is also included for people who want to explore the unquantized GGUF-side artifact from the same released `15,20` RYS branch:

[`Qwen3.6-27B-AEON-RYS-MaxThinkCoder-BF16.gguf`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/blob/main/Qwen3.6-27B-AEON-RYS-MaxThinkCoder-BF16.gguf)

Use this if you want a GGUF reference build, local conversion/testing, or to compare quantization behavior against the released `IQ4_NL` GGUF. It is here for exploration and downstream work. For normal inference, the `IQ4_NL` file is the practical target. For Transformers/LoRA/SFT workflows, use the [`bf16-safetensors/`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/tree/main/bf16-safetensors) folder instead.

Size note:
- BF16 GGUF: about `54G`
- IQ4_NL GGUF: about `16G`

The quality/compression snapshot is shown at the top of this card. The short version is that the released IQ4_NL file is the practical inference target, while the BF16 artifacts are included for reference, training workflows, and conversion work.

The original HF-format BF16 checkpoint for the released `15,20` RYS branch is included here:

[`bf16-safetensors/`](https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF/tree/main/bf16-safetensors)

Use the files in that folder for Transformers-based work such as LoRA, SFT, continued training, or conversion into another training format. Use the GGUF file in the repo root for `ik-llama` inference.

Loading example:

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

repo_id = "jackasda211233/Qwen3.6-27B-AEON-RYS-15-20-GGUF"
subfolder = "bf16-safetensors"

tok = AutoTokenizer.from_pretrained(repo_id, subfolder=subfolder, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    repo_id,
    subfolder=subfolder,
    torch_dtype="bfloat16",
    device_map="auto",
    trust_remote_code=True,
)
```

RYS note for anyone rebuilding or modifying this checkpoint: the config is part of the model. The BF16 folder keeps the corrected hybrid-stack metadata for the `15,20` insert, including `text_config.num_hidden_layers = 69` and a 69-entry `text_config.layer_types` list. Do not change the layer count without remapping `layer_types` to the same layer order as the tensors.

## Runtime Compatibility

We did build and benchmark an internal standard-typed comparison artifact.
We are not releasing it as a public `llama.cpp` file.

Why:
- the main model this project is about is the custom mixed GGUF, which needs the forked `ik-llama` runtime
- even the internal standard-typed comparison path was only validated on a patched upstream-style `llama.cpp`, not clean stock mainline
- to avoid implying stock `llama.cpp` support, this release does not include that internal comparison artifact

So the intended reading is simple:
- this repo releases the `ik-llama`-targeted model
- if you want plain stock `llama.cpp`, this is not that release

## Project Focus And RYS Choice

This is a deliberately narrow project. The target is a practical Q4-class English-first model optimized for coding, technical reasoning, academic-style writing, and long-context work.

This release came from the AEON-derived `15,20` RYS branch. That branch was the practical release target because it quantized cleanly and held up as the best balanced candidate for this experiment.

The honest summary is that RYS was not a dramatic BF16-only upgrade in this run. The BF16-side gain over the Unsloth/official-style BF16 baseline was only around `1%`. The practical value was that the RYS branch made this model much more resistant to quality loss under the `IQ4_NL` quantization path than the non-RYS/official-style model had been.

The source path is uncensored, so this is not a generic safe-default chat model.

## Imatrix calibration profile

The quantization was deliberately biased toward reasoning and technical work.

Heuristic calibration breakdown:
- `math_reasoning`: `5,688` chunks, `1,706,070` chars (`36.0%`)
- `code_technical`: `3,518` chunks, `1,343,392` chars (`28.4%`)
- `experiment_docs`: `808` chunks, `224,169` chars (`4.7%`)
- `writing_chat`: `387` chunks, `164,097` chars (`3.5%`)
- `other`: `5,139` chunks, `1,249,396` chars (`26.4%`)

Practical read:
- heavy focus on reasoning math, code, technical prose, and experiment artifacts
- very little emphasis on generic social chat

## Use case

Recommended:
- coding
- technical reasoning
- academic-style writing
- long-context English work

Not recommended as a generic safe-default chat model.
This branch came from an uncensored source path.