GGUF
English
Chinese
multilingual
qwen3
qwen3.6
reasoning
coding
coding-agent
academic-writing
uncensored
rys
lora
iq4_nl
bf16
conversational
Instructions to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16 # Run inference directly in the terminal: llama cli -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16 # Run inference directly in the terminal: llama cli -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16 # Run inference directly in the terminal: ./llama-cli -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Use Docker
docker model run hf.co/jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
- LM Studio
- Jan
- Ollama
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Ollama:
ollama run hf.co/jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
- Unsloth Studio
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF to start chatting
- Pi
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Run Hermes
hermes
- OpenClaw new
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Docker Model Runner:
docker model run hf.co/jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
- Lemonade
How to use jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull jackasda211233/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF:BF16
Run and chat with the model
lemonade run user.Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode-GGUF-BF16
List all available models
lemonade list
- Atomic Chat
| <html lang="en"><head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Qwen3.6 AEON RYS PatchCode β Testing Process</title> | |
| <style> | |
| :root{--bg:#0d1117;--card:#161b22;--ink:#c9d1d9;--mut:#8b949e;--acc:#58a6ff;--bd:#30363d;--gw:#f85149;--gd:#3fb950} | |
| *{box-sizing:border-box} | |
| body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif} | |
| main{max-width:900px;margin:0 auto;padding:40px 24px 120px} | |
| h1,h2,h3,h4{color:#f0f6fc;line-height:1.25;font-weight:650;margin:1.8em 0 .6em} | |
| h1{font-size:2em;border-bottom:1px solid var(--bd);padding-bottom:.3em;margin-top:.3em} | |
| h2{font-size:1.45em;border-bottom:1px solid var(--bd);padding-bottom:.25em} | |
| h3{font-size:1.15em} | |
| a{color:var(--acc);text-decoration:none} | |
| a:hover{text-decoration:underline} | |
| code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.88em;background:#1f2630;padding:.12em .4em;border-radius:5px;color:#79c0ff} | |
| pre{background:#010409;border:1px solid var(--bd);border-radius:8px;padding:14px 16px;overflow:auto} | |
| pre code{background:none;padding:0;color:var(--ink);font-size:.85em} | |
| blockquote{margin:1em 0;padding:.6em 1em;border-left:3px solid var(--acc);background:#0f1a26;border-radius:0 6px 6px 0;color:#d2dbe6} | |
| table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.93em;display:block;overflow-x:auto} | |
| th,td{border:1px solid var(--bd);padding:7px 11px;text-align:left} | |
| th{background:#21262d;color:#f0f6fc;font-weight:650} | |
| tr:nth-child(even) td{background:#0f151c} | |
| hr{border:0;border-top:1px solid var(--bd);margin:2em 0} | |
| strong{color:#f0f6fc} | |
| ul,ol{padding-left:1.4em} | |
| li{margin:.25em 0} | |
| .bnr{background:#2a1a1a;border:1px solid #5c2e2e;border-left:4px solid var(--gw);padding:14px 18px;border-radius:8px;margin:18px 0} | |
| .bnr a{color:#ffb3b3} | |
| </style> | |
| </head> | |
| <body> | |
| <main> | |
| <h1>Qwen3.6 AEON RYS PatchCode (merged_lam0.5): What We Actually Did</h1> | |
| <p>This is the longer, more casual write-up for the PatchCode upload candidate (internal project name <code>merged_lam0.5</code>).</p> | |
| <p>The clean model card stays short. This document is the full story: what we distilled, exactly how the dataset was built, how we tested it, why the early single-run scores fooled us, why we stopped trusting them, and why the upload candidate ended up being the plain <code>IQ4_NL</code> (reasoning-imatrix) merged GGUF rather than a heavier mixed-quant recipe.</p> | |
| <p>Related public guides: | |
| - runtime fork: <code>https://github.com/noonr48/qwen36-aeon-ik-llama</code> | |
| - RYS layer-duplication / architecture guide: <code>https://github.com/noonr48/qwen36-aeon-ik-llama/tree/main/docs/rys-layer-duplication-guide</code> | |
| - previous fine-tuned release (SignalLatch): <code>https://huggingface.co/jackasda211233/Qwen3.6-27B-AEON-RYS-SignalLatch-GGUF</code></p> | |
| <p>Related release line: | |
| - previous finetune: <code>Qwen3.6-27B-AEON-RYS-SignalLatch-ckpt386-s010-IQ4_NL.gguf</code> | |
| - this upload candidate: <code>Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode.IQ4_NL.gguf</code></p> | |
| <h2>Glossary</h2> | |
| <ul> | |
| <li><code>AEON</code>: the upstream/source model family this RYS line was built from (<code>AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored</code>).</li> | |
| <li><code>SignalLatch</code> / <code>ckpt386-s010</code>: the previous finetune in this line β a behaviour LoRA (checkpoint 386) merged into the AEON RYS base at strength <code>0.10</code>. PatchCode is built on top of this.</li> | |
| <li><code>PatchCode</code> / <code>merged_lam0.5</code>: the public name for this release. It is a second behaviour distil (an agentic-coder joint LoRA) merged onto SignalLatch at strength <code>0.5</code>.</li> | |
| <li><code>IQ4_NL</code>: the quantized GGUF deployment format we actually upload and run.</li> | |
| <li><code>imatrix</code>: importance-matrix-assisted quantization data. <code>reasoning-imatrix</code> = calibrated on reasoning/coding text (the kind that worked); <code>media-imatrix</code> = an earlier calibration kind that underperformed.</li> | |
| <li><code>ik-llama</code>: the custom runtime fork. The <code>qwen3_5</code> hybrid architecture does not load on stock <code>llama.cpp</code> / <code>vLLM</code>.</li> | |
| <li><code>KritaLite</code>: our hardened real-world discriminator build (a ~160k-token multi-file app, 15 binary verifier components). Single-shot coding gates saturate on this model family, so we stopped trusting them.</li> | |
| <li><code>discipline</code> / <code>fable_style</code>: a rubric measuring the distilled action-first style (no preamble, claim-requires-run, narrateβactβverify).</li> | |
| </ul> | |
| <h2>The short version</h2> | |
| <p>We started from the SignalLatch finetune and distilled a second, agentic-coder behaviour LoRA on top of it. The goal was not a new general chat model. The goal was to make the model a better coding agent: action-first execution, claims backed by an actual run, systematic diagnoseβfix loops, stable multi-turn tool use, and fewer stalled runs.</p> | |
| <p>After a full 5-phase bake-off, the model that held up was:</p> | |
| <pre><code class="language-text">Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode.IQ4_NL.gguf | |
| </code></pre> | |
| <p>That means: | |
| - base: <code>Qwen3.6-27B-AEON-RYS-SignalLatch-ckpt386-s010</code> | |
| - adapter: agentic-coder joint LoRA, checkpoint <code>3661</code> | |
| - merge strength: <code>0.5</code> (effective alpha/r = 1.0) | |
| - deploy format: plain <code>IQ4_NL</code> with reasoning-imatrix | |
| - runtime: custom AEON ik-llama fork</p> | |
| <p>The awkward part β and the reason this write-up is long β is that the eventual ship pick was <strong>not</strong> the candidate that looked best early. A mixed-quant recipe (<code>c76</code>) hit a perfect-looking build score on the first multi-seed pass and did not reproduce. A 5-seed, same-condition confirm reversed the read. The plain <code>IQ4_NL</code> ended up tied with everything else within noise, so the decision fell to non-noise axes (size, recipe safety), where plain <code>IQ4_NL</code> wins.</p> | |
| <h2>What this was meant to upgrade</h2> | |
| <p>PatchCode is an upgrade over the existing SignalLatch finetune:</p> | |
| <pre><code class="language-text">Qwen3.6-27B-AEON-RYS-SignalLatch-ckpt386-s010-IQ4_NL.gguf | |
| </code></pre> | |
| <p>The new work was not another RYS architecture pass (the architecture is unchanged and is documented in the layer-duplication guide). The new work was a behaviour distil layered on top of SignalLatch, then merged and quantized into the same practical Q4-class deployment lane.</p> | |
| <p>Public framing stays narrow:</p> | |
| <blockquote class="bnr"> | |
| <p>This is a practical coding-agent / tool-use-oriented fine-tuned IQ4_NL variant of the SignalLatch release.</p> | |
| </blockquote> | |
| <p>It should not be framed as: | |
| - a universal upgrade over base in every format | |
| - a general chat benchmark win | |
| - a stock <code>llama.cpp</code> / <code>vLLM</code> model | |
| - a live-LoRA deployment recipe</p> | |
| <h2>The dataset β exact pipeline</h2> | |
| <p>This is the part most people ask about, so it is written out in full. The training blend is <code>~58.5k</code> examples and is made of two pieces: a large <strong>synthetic coding-agent behaviour backbone</strong> and a smaller <strong>curated action-first style slice</strong>, blended together.</p> | |
| <h3>Piece 1 β synthetic coding-agent behaviour backbone (~43k)</h3> | |
| <p>A standalone generator (<code>generate_v2.py</code>) produces synthetic multi-turn coding-agent traces. It is <strong>fully synthetic</strong> β no real user data, no scraped repos. The pipeline:</p> | |
| <ol> | |
| <li><strong>Behaviour-driven generation.</strong> A pool of parallel workers calls a coding-agent teacher model. Each call is shaped around a named <em>behaviour</em> from a fixed behaviour pool (~30 behaviours), for example: | |
| - <code>survey_before_edit</code> β read/search the real context before touching code | |
| - <code>hypothesis_driven_debugging</code> β form a hypothesis, then verify | |
| - <code>tool_intent_first</code> β express tool intent before prose | |
| - <code>weigh_alternatives_then_commit</code> β weigh β₯3 options, commit to one, verify | |
| - <code>external_awareness</code> β check versions/docs before asserting | |
| - <code>recall_first_habit</code> β recall prior context before re-deriving</li> | |
| <li><strong>Tool-agnostic vocabulary (anti-lock-in).</strong> Tool calls use a behavioural-category vocabulary (e.g. <code>memory_search</code>, <code>repo_search</code>, <code>render_or_visual_proof</code>), not real tool names. This is deliberate: the model learns <em>when/why to use a tool</em>, not a specific vendor's API surface.</li> | |
| <li><strong>Scenarios.</strong> A synthetic scenario bank provides repo-shaped task context (file trees, failing tests, stack traces) so the traces are grounded in realistic edit/verify loops.</li> | |
| <li><strong>Quality gates (per sample).</strong> Traces that fail the gates are dropped, not emitted: | |
| - <code>no-op-edit</code> guard (a claimed edit that changes nothing) | |
| - <code>claim-without-verify</code> reject (the assistant claims done with no run/check) | |
| - <code>reasoning-empty</code> / <code>incomplete-trace</code> / <code>lang-runner-mismatch</code> / <code>prompt-over-cap</code></li> | |
| <li><strong>Deficit-resume scheduling.</strong> Generation runs continuously, tracks per-behaviour deficits, and resumes after interruption until target counts are met. (~30 samples/sec on the build host.)</li> | |
| </ol> | |
| <p><strong>Corpus assembly + filtering (exact counts):</strong> | |
| - raw unified coding corpus: <code>71,776</code> samples | |
| - filter drops <code>10,666</code> bad samples β <code>61,110</code> kept | |
| - top drop reasons: <code>prompt_over_cap</code> 3,946 Β· <code>lang_runner_mismatch</code> 3,645 Β· <code>reasoning_empty</code> 2,086 Β· <code>incomplete_trace</code> 861 Β· <code>claim_without_verify</code> 620 | |
| - coding training subset used for the blend: <code>43,075</code> (<code>meda_lora_train_v2x1</code>)</p> | |
| <p>The broader synthetic corpus spans five behaviour layers (media-behaviour 42,973 Β· tool-depth 15,242 Β· reliability 19,393 Β· self-correction 31,476 Β· coding 7,721 = <code>116,805</code> total before filtering); the blend draws the coding-oriented subset.</p> | |
| <h3>Piece 2 β curated action-first style slice (~7k)</h3> | |
| <p>A smaller slice of curated execution-style traces that model the exact discipline we wanted to amplify: terse narrateβactβverify, no preamble, claim-requires-run. Composition (<code>6,953</code> total): | |
| - own multi-project execution sessions (<code>5,455</code>) β span many different projects on purpose, so the style generalises instead of locking to one domain | |
| - a different-domain contributor (<code>1,130</code>) β explicitly included for cross-project transfer | |
| - reasoning-chain exemplars (<code>368</code>) β weigh-alternatives deliberation seeds</p> | |
| <p><strong>De-identification / anti-lock-in pass:</strong> real tool names, hostnames, absolute paths, and identifiers are abstracted to behavioural-category tokens / placeholders. The supervision is <strong>assistant-turn-only</strong> β system/user/tool turns (where real project content lives) are masked (<code>IGNORE_INDEX</code>), so the model learns a <em>behaviour policy conditioned on varied context</em>, not project facts as outputs.</p> | |
| <h3>Piece 3 β the blend</h3> | |
| <p>A small blender oversamples the style slice so it is not drowned by the larger coding backbone, then shuffles:</p> | |
| <ul> | |
| <li>coding backbone: <code>43,075</code></li> | |
| <li>style slice oversampled ~2.2Γ</li> | |
| <li>blended training file: <code>58,576</code> (<code>blend_meda_fable</code>) β <strong>~74% coding backbone / ~26% action-first style</strong></li> | |
| </ul> | |
| <p>The oversample ratio was chosen so the style shows up without overfitting the smaller slice; a held-out task type was used to check it generalises rather than parrots.</p> | |
| <h3>What the dataset is <em>not</em></h3> | |
| <ul> | |
| <li>It is not scraped real-user data or real private repos.</li> | |
| <li>It is not a single-topic dataset β both pieces deliberately span many projects/domains.</li> | |
| <li>It does not teach new domain <em>facts</em>; it teaches an execution <em>discipline</em>.</li> | |
| </ul> | |
| <h2>The training piece</h2> | |
| <p>A single LoRA was joint-co-trained on the blended <code>58.5k</code> set (one adapter, not two-then-merge β a prior two-adapter Ξ»-merge plan was superseded because post-hoc merges can kill a fragile capability with no usable Ξ»).</p> | |
| <p>Training config: | |
| - PEFT type: <code>LORA</code> | |
| - rank: <code>r=32</code>, alpha: <code>64</code> (alpha/r = 2.0) | |
| - dropout: <code>0.05</code> | |
| - target modules: <strong>all-linear</strong>, including the hybrid arch projections β <code>q/k/v/o_proj</code>, <code>gate/up/down_proj</code>, <code>out_proj</code>, and the linear-attn/SSM projections <code>in_proj_qkv / in_proj_a / in_proj_b / in_proj_z</code> | |
| - supervision: completion-only (assistant turns only) | |
| - optimiser: adamw, lr <code>5e-5</code> + warmup + cosine decay | |
| - epochs: <code>1</code> | |
| - backend: model-parallel <code>device_map</code> across a multi-GPU host (the max-quality path; the no-NVLink fleet ruled out DeepSpeed/FSDP here)</p> | |
| <p>Completion: | |
| - <code>global_step=3661</code> = <code>epoch 1.0</code> complete | |
| - final <code>train_loss β 0.853</code> | |
| - runtime ~91h (~89.5 s/it), grad-norm steady (no divergence) | |
| - 37 checkpoints saved across the run β full trajectory available for eval</p> | |
| <p>The adapter was behaviour-focused and small. It was not trained to teach broad new knowledge.</p> | |
| <h2>The merge β why Ξ»=0.5</h2> | |
| <p>The trained default adapter strength (alpha/r = 2.0) was <strong>over-applied</strong>. A checkpoint Γ strength eval showed half-strength beat full-strength on all three tested checkpoints:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>checkpoint</th> | |
| <th style="text-align: right;">Ξ»=0.3</th> | |
| <th style="text-align: right;">Ξ»=0.5</th> | |
| <th style="text-align: right;">Ξ»=0.7</th> | |
| <th style="text-align: right;">Ξ»=1.0</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>3661</td> | |
| <td style="text-align: right;">0.522</td> | |
| <td style="text-align: right;"><strong>0.617</strong></td> | |
| <td style="text-align: right;">0.490</td> | |
| <td style="text-align: right;">0.491</td> | |
| </tr> | |
| <tr> | |
| <td>2600</td> | |
| <td style="text-align: right;">0.567</td> | |
| <td style="text-align: right;"><strong>0.573</strong></td> | |
| <td style="text-align: right;">β</td> | |
| <td style="text-align: right;">0.442</td> | |
| </tr> | |
| <tr> | |
| <td>1800</td> | |
| <td style="text-align: right;">0.540</td> | |
| <td style="text-align: right;"><strong>0.564</strong></td> | |
| <td style="text-align: right;">β</td> | |
| <td style="text-align: right;">0.397</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p>At Ξ»=1.0 the adapter was net-neutral-to-harmful (one checkpoint fell <em>below</em> the un-adapted base). The mechanism: an over-loud LoRA delta pushes activations into regimes that hurt calibrated behaviour (preamble returns, over-claiming). Ξ»=0.5 (effective alpha/r = 1.0) keeps the style direction but respects base calibration. So the merge was done at <strong>Ξ»=0.5 onto SignalLatch (ckpt386-s010)</strong>, then exported to BF16 GGUF. (A future v2 could bake the good strength in by training at alpha=r=32, removing the inference-time knob.)</p> | |
| <p><img alt="Merge strength sweep β Ξ»=0.5 wins on all three checkpoints; trained default Ξ»=1.0 is over-applied." src="assets/lambda_sweep.png" /></p> | |
| <h2>Why the final testing moved to merged IQ4_NL</h2> | |
| <p>The key question was not "best adapter in BF16" β it was "what we would actually deploy". The deploy target was a merged GGUF, <code>IQ4_NL</code>, imatrix-quantized, on the custom ik-llama runtime (Jinja + DeepSeek reasoning format + flash attention + graph split, temp <code>0.7</code>).</p> | |
| <p>Live LoRA loading is not the production path for this release (the tested serving profile uses flash attention, which conflicts with live LoRA on this runtime). So the long-term path became: <strong>merge the adapter first, then export + quantize a full GGUF.</strong> That is why the upload is a merged GGUF, not an adapter.</p> | |
| <p>The plain <code>IQ4_NL</code> uses the <strong>reasoning/coding imatrix</strong> (the kind that worked). An earlier build used a media-domain imatrix; it underperformed and was superseded.</p> | |
| <h2>The testing ladder (5 phases + confirms)</h2> | |
| <p>Single-shot and hard-suite gates <strong>saturate</strong> on this model family (every quant scores ~the same, including BF16). The discrimination that actually changed the decision came from a 160k-token real-world build (KritaLite) run multi-seed, plus a discipline rubric, plus an autonomous-loop convergence test. The phases:</p> | |
| <p><strong>Phase 1 β single-seed real-world build.</strong> Made the plain <code>IQ4_NL</code> look like the winner (0.933 vs c76's 0.867). This was <strong>noise</strong> β it did not reproduce.</p> | |
| <p><strong>Phase 2 β multi-seed KritaLite (3 seeds).</strong> Reversed phase 1: <code>c76</code>/<code>c404</code>/<code>c373</code> hit 0.933; plain <code>IQ4_NL</code> dropped to 0.867. Now a mixed-quant recipe looked like the winner.</p> | |
| <p><strong>Phase 3 β 40-recipe broad search.</strong> Returned all-zero. Root cause was a <strong>harness bug</strong> (the eval script imports a <code>config.json</code> that was not copied into the eval root), not real scores.</p> | |
| <p><strong>Phase 4 β search re-gate (bug fixed).</strong> Re-scored all 53 candidates correctly. No new recipe beat the curated originals; the broad search does not help this merge.</p> | |
| <p><strong>Phase 5 β discipline + agentic process.</strong> Plain <code>IQ4_NL</code> and BF16 led the action-first <em>discipline</em> rubric (0.931); <code>c76</code> led <em>process efficiency</em> (fewest turns/tools/errors).</p> | |
| <p><strong>Overnight 2 β base-precision Γ attention-promotion matrix (3 seeds).</strong> Decomposed the build/discipline tradeoff. No candidate clears "both" (build β₯ 0.90 <strong>and</strong> discipline β₯ 0.90): | |
| - promotion destroys discipline regardless of base precision | |
| - uniform higher precision does <strong>not</strong> fix build (build is not precision-limited)</p> | |
| <p><strong>Confirm β 5-seed, same-condition, baseline vs c76 head-to-head.</strong> The decisive run:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>candidate</th> | |
| <th style="text-align: right;">build (5-seed)</th> | |
| <th style="text-align: right;">long-context</th> | |
| <th style="text-align: right;">discipline (5-seed)</th> | |
| <th style="text-align: right;">size</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td><strong>plain IQ4_NL (reasoning imx)</strong></td> | |
| <td style="text-align: right;">0.920 (Β±0.067)</td> | |
| <td style="text-align: right;">0.975</td> | |
| <td style="text-align: right;">0.842 (Β±0.333)</td> | |
| <td style="text-align: right;">16.6 G</td> | |
| </tr> | |
| <tr> | |
| <td>c76 (promoted attn)</td> | |
| <td style="text-align: right;">0.907 (Β±0.067)</td> | |
| <td style="text-align: right;">0.935</td> | |
| <td style="text-align: right;">0.867 (Β±0.292)</td> | |
| <td style="text-align: right;">20 G</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p>build gap <code>0.013</code> βͺ <code>0.067</code> noise floor β <strong>not discriminating</strong>. c76's earlier "0.933 build win" did not reproduce (it scored 0.933 β 0.867 β 0.907 across passes β pure run-to-run variance).</p> | |
| <p><strong>Q8 confirm β 5-seed, near-lossless Q8 vs plain IQ4_NL.</strong> Q8 shows no edge on any axis and is ~2Γ the size β ruled out. Near-lossless precision buys nothing measurable here.</p> | |
| <p><strong>Agentic-loop β the autonomy axis (8 held-out tasks Γ 5 seeds).</strong> Each quant runs a held-out mini-project (README + failing pytest suite) autonomously; converged = objective pytest pass, not self-claimed:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>quant</th> | |
| <th style="text-align: right;">convergence</th> | |
| <th style="text-align: right;">mean turns</th> | |
| <th style="text-align: right;">recovery</th> | |
| <th style="text-align: right;">halluc-success</th> | |
| <th style="text-align: right;">stall</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>plain IQ4_NL</td> | |
| <td style="text-align: right;">100% (40/40)</td> | |
| <td style="text-align: right;">7.2</td> | |
| <td style="text-align: right;">0.4</td> | |
| <td style="text-align: right;">0%</td> | |
| <td style="text-align: right;">0%</td> | |
| </tr> | |
| <tr> | |
| <td>c76</td> | |
| <td style="text-align: right;">100% (40/40)</td> | |
| <td style="text-align: right;">6.6</td> | |
| <td style="text-align: right;">0.4</td> | |
| <td style="text-align: right;">0%</td> | |
| <td style="text-align: right;">0%</td> | |
| </tr> | |
| <tr> | |
| <td>Q8</td> | |
| <td style="text-align: right;">100% (40/40)</td> | |
| <td style="text-align: right;">7.0</td> | |
| <td style="text-align: right;">0.5</td> | |
| <td style="text-align: right;">0%</td> | |
| <td style="text-align: right;">0%</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p><strong>Non-discriminating (0pp spread).</strong> The distilled discipline (action-first, claim-requires-run, verify-before-claim) is preserved across all quants.</p> | |
| <h2>The noise lesson (critical β reuse for every future bake-off)</h2> | |
| <p>The SignalLatch-style suite is <strong>noisier than it looked</strong>: | |
| - KritaLite build: Β±0.067β0.13 <strong>run-to-run</strong> variance (beyond seed). c76 scored 0.933 β 0.867 β 0.907 on the same gguf. | |
| - discipline: Β±0.3 spread. | |
| - build is <strong>ceiling-limited</strong> (max 0.933 = 14/15) β zero headroom to discriminate two good quants.</p> | |
| <p><strong>Rule:</strong> 3-seed differences <0.13 on this suite are meaningless. Use <strong>5+ seeds, same-condition head-to-head</strong> before any ship call. Only non-noise axes (size, recipe methodology/safety, long-context at ceiling) reliably tiebreak. HumanEval was rejected β it saturates on Qwen and is the wrong mode for an agent.</p> | |
| <p>This is exactly how a 3-seed pass almost shipped the <em>weaker</em> model.</p> | |
| <h2>The ship decision</h2> | |
| <p>With build, discipline, long-context, and autonomy all <strong>tied within noise</strong>, the decision fell to non-noise axes, where plain <code>IQ4_NL</code> wins all three:</p> | |
| <p><img alt="No candidate clears BOTH build and discipline (β₯0.90) β promotion destroys discipline; precision does not fix build." src="assets/bothquest.png" /></p> | |
| <p><img alt="Ship scoreboard (5-seed): IQ4_NL ties the field within noise on build/long-context/discipline, and wins on size." src="assets/ship_scoreboard.png" /></p> | |
| <ul> | |
| <li><strong>smaller</strong> (16.6 G vs 20β29 G)</li> | |
| <li><strong>marginal long-context</strong> edge (0.975 vs 0.935β0.969)</li> | |
| <li><strong>plain-quant recipe</strong> β the fleet's proven pattern; promotion/mixed recipes carry evidence-harmful risk (discipline collapse) for zero measured benefit</li> | |
| </ul> | |
| <p>Ship: <strong>plain <code>IQ4_NL</code> (reasoning-imatrix)</strong>. The mixed-recipe <code>c76</code> is retained on disk as the build-heavy fallback if a future, harder build-gate ever discriminates beyond the noise floor (use 5+ seeds).</p> | |
| <h2>What the testing says and does not say</h2> | |
| <p><strong>Does say:</strong> | |
| - PatchCode's distilled action-first discipline is preserved through <code>IQ4_NL</code> (tied with BF16 across build / long-context / discipline / autonomy). | |
| - Near-lossless precision (Q8) and attention promotion buy no measurable edge on this suite. | |
| - Plain <code>IQ4_NL</code> is the defensible default on size + recipe safety.</p> | |
| <p><strong>Does not say:</strong> | |
| - It does not prove PatchCode is better for all tasks. | |
| - It does not prove plain <code>IQ4_NL</code> is globally optimal. | |
| - It does not make this a stock <code>llama.cpp</code> / <code>vLLM</code> release. | |
| - It does not make live LoRA loading the recommended serving setup.</p> | |
| <p>The most accurate public sentence:</p> | |
| <blockquote> | |
| <p>On a 5-seed, same-condition practical coding-agent bake-off, PatchCode plain <code>IQ4_NL</code> tied BF16 within noise on build, long-context, discipline, and autonomous-loop convergence, and was the selected default on size and recipe safety.</p> | |
| </blockquote> | |
| <h2>Selected artifact</h2> | |
| <pre><code class="language-text">Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode.IQ4_NL.gguf (16.6 GB β recommended) | |
| Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode.BF16.gguf (57.6 GB β source-quality reference) | |
| </code></pre> | |
| <p>Recommended runtime: <code>https://github.com/noonr48/qwen36-aeon-ik-llama</code></p> | |
| <pre><code class="language-bash">./build/bin/llama-server \ | |
| -m /path/to/Qwen3.6-27B-AEON-RYS-Agentic-Coder-PatchCode.IQ4_NL.gguf \ | |
| -c 65536 -ngl 999 -np 1 -fa on -sm none \ | |
| --temp 0.7 --jinja --reasoning-format deepseek --reasoning-budget 0 | |
| </code></pre> | |
| <p>(<code><think></code> is emitted as a separate <code>reasoning_content</code> field β use <code>--reasoning-format deepseek</code> or fold it back so tool-action parsing sees the action.)</p> | |
| <h2>Final read</h2> | |
| <p>This was not a clean leaderboard. It was a real engineering pass: distil the style, build a hardened discriminator because the easy gates saturated, get fooled by a one-run perfect build score, repeat the finalists same-condition, discover the build is ceiling-limited and noisy, and ship the smallest plain-quant that ties everything within noise.</p> | |
| <pre><code class="language-text">PatchCode IQ4_NL is a practical agentic-coder upgrade over the SignalLatch release. | |
| It is the selected default among the tested quants, tied with BF16 within noise β | |
| not a universal final answer. | |
| </code></pre> | |
| </main> | |
| </body> | |
| </html> | |