玩模型开放模型 · 清晰来源 · 自主选择
返回模型目录
fallentree /

Qwen3.8-27B-Uncensored-GP100-GGUF

HF 源站

fallentree/Qwen3.8-27B-Uncensored-GP100-GGUF is an uncensored open-source model hosted on Hugging Face.

Image-Text-to-Textllama.cppGGUFChineseEnglishMultilingualLicense: apache-2.027Bqwen3.8qwen35uncensoredabliteratedspeculative-decodingdflash2loopspecpascalsm_60gp100q4_1q4_1_g64visionconversational
README.md说明 / 使用方法

license: apache-2.0 library_name: llama.cpp pipeline_tag: image-text-to-text base_model:

  • Qwen/Qwen3.8-27B
  • JonathanColetti/Qwen3.8-27B-Uncensored
  • mradermacher/Qwen3.8-27B-Uncensored-i1-GGUF
  • incoai/Qwen3.8-27B-DFlash2 language:
  • en
  • zh tags:
  • gguf
  • qwen3.8
  • qwen35
  • uncensored
  • abliterated
  • speculative-decoding
  • dflash2
  • loopspec
  • pascal
  • sm_60
  • gp100
  • q4_1
  • q4_1_g64
  • vision

Qwen3.8-27B Uncensored — Q4_1_G64 4.5 bpw for GP100

Q4_1_G64 · 4.5 bpw · 15.0 GiB · +10% no-spec vs Q4_1 · 128k wall −4.8%

GGUF pack of the JonathanColetti abliteration for 2× Tesla P100 (sm_60).

The served target is type-43 Q4_1_G64: mradermacher i1 Q4_1 body, output head left Q8_0, other Q4_1 weights refit to one (d,m) per 64 weights (4.5 bpw) with the local imatrix. Same HFMA2 decode as Q4_1; fewer DRAM sectors (36 B / 64 w vs 20 B / 32 w). The Q4_1 parent stays in the repo so stock llama.cpp still has a file it can load.

Why this type, and how a decode round actually spends time: DESIGN.md. It walks GP100 vs GP104 (Pascal Tuning Guide + Arafa), the lab DECODE_TIMELINE.md trust tags, why Q4_K is a 2.3× tax at the same 4.5 bpw, why G64 is a storage grouping not a new inner product, and which levers are closed.

The point of G64 is speed, not extra context. On the realistic vibe bar — a 128K session that grows, then compacts — G64 finishes first:

packimagegraph-slots128k+compact novel wall_sum
G64llama-p100:pr-sm60-g64slot (a8c9f3a7b)81532.79 s
Q4_1same image, DFlash-3 / ngram 3..711609.65 s

G64 wins by 76.86 s (−4.8%). Q4_1 on --graph-slots 8 OOMed CUDA1 (~436 MiB) at the ~110k regrow; the Q4_1 number above is the run that finished.

Do not quote 100 tok/s exact-reuse, or a short HumanEval wall, as the headline. Those are below.

Two paths

Path A — stock llama.cpp. Load the Q4_1 target + Q4_1 DFlash + F16 mmproj. G64 is type 43; stock llama.cpp refuses it cleanly. Path A does not include LoopSpec (ngram-mod,draft-dflash) or the speed table.

Path B — this fork, latest rebase. thefallentree/llama.cpp-gp100 branch cursor/gemma4-mtp-host-6006 @ 958bce0bb (onto ggml-org master 930e2fa59, 2026-09-16). LoopSpec, sm_60 HFMA2, slot-release, empty-src sampling, GDN checkpoint eviction. Do not freeze on a8c9f3a7b / gp100-qwen38-g64slot (2026-09-05 archive). Do not track pr-sm60 HEAD — commit 31 (19d05ddb7) aborts Qwen LoopSpec in cpy.cu.

sm_60 only. P40 / GTX 10-series are sm_61; the HFMA2 path is gated off there.

Files

FileSizeMix
Qwen3.8-27B-Uncensored.i1-Q4_1_G64-Q8_0-head.gguf14.996 GiBPath B. 504× Q4_1_G64 + Q8_0 output.weight + Q4_1 token_embd. imatrix=yes
Qwen3.8-27B-Uncensored.i1-Q4_1-Q8_0-head.gguf16.439 GiBPath A. i1 Q4_1 body, Q8_0 head, Q4_1 token_embd
Qwen3.8-27B-Uncensored-DFlash2-Q4_1-private-q4-head-exact-embd.gguf2.611 GiBServed draft for both targets. token_embd left Q4_1
mmproj-Qwen3.8-27B-Uncensored-F16.gguf0.864 GiBVision projector, F16

Why / how: DESIGN.md. Convert any model + serve recipe: CONVERT.md. Header dump: TENSORS.md. Bench protocol + raw rows: BENCH.md.

The G64 DFlash draft is held. Production uses the Q4_1 draft.

Speed (Path B, 2× Tesla P100)

Same coding fixture, 512 gen, ignore-eos, GPU already warm. Token budgets from POST /tokenize. Prefill and decode are separate. Restart between sizes so novel ngram is clean.

Headline: 128K session + compact

tools/bench_vibe_128k_compact.py: warmup, grow 1k → pin-keep → 16k → 64k → 128k, compact (keep 4k + tail 16k), regrow ~110k, compact again. Score is the sum of novel walls. Prefix cache on (token-ID prefixes, --slot-prompt-similarity 0.05, --ctx-checkpoints 8 --checkpoint-min-step 0). mmproj is loaded (disables ctx_shift).

G64 1532.79 s vs Q4_1 1609.65 s (Q4_1 needed --graph-slots 1).

Exact-reuse decode (G64 constant-w8 vs Q4_1 cap 7)

Same fixture, same g64slot binary, restart between sizes. G64 reuse is faster at 16k and 64k.

promptpackprefill tok/snovel decodeexact-reusereuse accept
1kG64 g64slot18136.0101.70.989
1kQ4_1 (older pr-sm60-ds)20146.860.80.70 (hash mismatch)
16kG64 g64slot214.539.3100.60.996
16kQ4_1 g64slot193.653.191.30.991
64kG64 g64slot194.733.469.30.869
64kQ4_1 g64slot177.840.156.90.849 (hash mismatch)

No-spec llama-bench (same g64slot binary)

llama-bench -p 512 -n 128, tensor split, FA on, Q8 KV. G64 is faster at every depth:

depthQ4_1 tg128G64 tg128G64 ΔQ4_1 pp512G64 pp512
032.2235.69+10.8%207.9228.9
102432.5736.10+10.8%210.5231.3
1638429.1432.07+10.1%195.6214.8

Honest short-prompt loss

G64 constant-w8 (DFlash-7 / ngram 7) loses the short novel-wall bar. Publish it:

taskQ4_1 cap 7G64 w8 (g64slot)
coding-1k novel wall15.63–16.07 s19.88 s
HumanEval/0–7 novel wall sum71.21 s82.92 s

1k accept 0.286 vs Q4_1 ~0.53 — DFlash-7 rejects most drafts on a short prompt. Do not serve cap 3 / DFlash-2 to hide this; those arms do not beat Q4_1 on the 128k bar.

Wiki PPL (shipped files)

Same g64slot llama-perplexity, eval/wiki.test.raw, 40 chunks, tensor split:

filePPL
Q4_16.0409 ± 0.144
G646.1198 ± 0.147 (+1.31%)

Under the +2% publish gate. Older G64 emulation (different GGUF) was +1.0% (6.113 vs 6.051).

Run (Path B)

git clone https://github.com/thefallentree/llama.cpp-gp100
cd llama.cpp-gp100 && git checkout cursor/gemma4-mtp-host-6006   # 958bce0bb; not g64slot
# build llama-server with CUDA (sm_60)

./build/bin/llama-server \
  --model Qwen3.8-27B-Uncensored.i1-Q4_1_G64-Q8_0-head.gguf \
  --model-draft Qwen3.8-27B-Uncensored-DFlash2-Q4_1-private-q4-head-exact-embd.gguf \
  --mmproj mmproj-Qwen3.8-27B-Uncensored-F16.gguf \
  --jinja \
  --spec-type ngram-mod,draft-dflash \
  --spec-draft-n-max 7 --spec-draft-n-min 0 \
  --spec-ngram-mod-n-min 7 --spec-ngram-mod-n-max 7 \
  --backend-sampling --graph-slots 8 \
  --ctx-checkpoints 8 --checkpoint-min-step 0 \
  --slot-prompt-similarity 0.05 \
  --device CUDA0,CUDA1 --split-mode tensor --tensor-split 1,1 \
  --device-draft CUDA1 \
  --cache-type-k q8_0 --cache-type-v q8_0 \
  --cache-type-k-draft q4_0 --cache-type-v-draft q4_0 \
  --ctx-size 131072 --flash-attn on

Path A: same command with the Q4_1 target, --spec-draft-n-max 3, --spec-ngram-mod-n-min 3 --spec-ngram-mod-n-max 7, and --graph-slots 1 if you want the 128k+compact path to finish on 2×16 GB.

Context

Default is 131072 + Q8_0 K/V. Native qwen35.context_length is 262144.

G64 saves ~2 GiB of weights. That does not buy a larger Q8 window for multi-turn chat. 163840 and 196608 Q8 decode the first high-n_kv turn and OOM CUDA1 on the cached second turn (leftover FA workspace stays resident). 256K Q8 loads but idle free is ~598 MiB.

Capacity mode is 256K with Q4_0 KV (./run.sh qwen-long in the lab scripts). Q4 KV PPL was +0.67% vs Q8 on an earlier measurement. Do not raise Q8 past 131072 on 2× P100.

Why / how (short)

GP100 is not GP104: two schedulers/SM, no DP4A, HFMA2 is 2× FP32 only as half2, I2F/F2F are quarter-rate, HBM2 ~606 GB/s measured, PCIe only. Q4_K is the same 4.5 bpw as G64 and a ~2.3× decode-round tax here because its scales are extracted every row iteration. Q4_0’s 18-byte block fails 4-byte alignment on half its blocks. G64 is Q4_1’s aligned (d,m) + nibbles stretched to 64 weights (36 B / 64 w). Same A16 HFMA2 inner product; fewer DRAM sectors.

A decode round on this pair is accept (~10 µs) + draft on CUDA1 (GPU0 idle) + issue-bound verify. ~600 launches/round are real; their cost is 0.64 ms. CUDA graphs replay launches and measured flat. The legal speed clock is predicted_per_token_ms, not the old wall-clock slot harness.

Full write-up, with the Pascal Tuning Guide, Arafa, DECODE_TIMELINE.md trust tags, and the lab architecture reviews: DESIGN.md.

To G64 a different model (not this 27B pack): CONVERT.md — scripts/g64/convert_to_g64.py inspect|convert|serve on the fork. Not Qwen-specific. Default mix is G64 body / Q8_0 head / Q4_1 token_embd.

Architecture

qwen35, 27B, 65 blocks (48 gated-attn+SSM, 17 full-attn), d_model 5120, FFN 17408, vocab 248320, context 262144, native MTP on blk.64. Dense.

HFMA2 takes Q4_1 / Q4_1_G64 / Q4_K / Q8_0 with ne[0]%32==0, ne[1]%4==0, weight ne[2]==1. Every quantized 2-D weight here passes.

Related work (not this stack)

Minima (2026-09) reports NVFP4 W4A4 on Qwen3.8-27B with vLLM + FP8 KV on Blackwell SM120. The overlapping claim is that GDN linears are the easy half to quantize — this G64 pack already 4-bit those weights, gates included. It is not NVFP4, not FP8 KV, and P100 cannot run that recipe. Do not copy those numbers onto this card.

Provenance

BaseQwen/Qwen3.8-27B (Apache 2.0)
AbliterationJonathanColetti/Qwen3.8-27B-Uncensored
i1 Q4_1 bodymradermacher/Qwen3.8-27B-Uncensored-i1-GGUF
G64 targetthat Q4_1, refit to Q4_1_G64 (imatrix); output.weight stays Q8_0; token_embd stays Q4_1
DFlash2incoai/Qwen3.8-27B-DFlash2 / z-lab
Runtimethefallentree/llama.cpp-gp100 cursor/gemma4-mtp-host-6006 @ 958bce0bb

License

Apache 2.0, inherited from Qwen/Qwen3.8-27B. Local inference and research. Abliterated / uncensored — not a safety-tuned deployment model.

HUGGING FACE

上游数据

HF 下载量1024
HF 点赞量1

HF 下载量为源站最近 30 天统计,与本站点击分开。

SITE STATS

本站统计

下载点击—
请求数—
匿名去重—最近 7 天—

本站下载量记录按钮点击,不代表下载完成;短时连点会去重。

来源与版本

作者
fallentree
最近更新
2026/09/16
最新创建
2026/09/04
HF 趋势
436
数据快照
2026/09/16
版本
未知
许可证
apache-2.0