Downloads · 30 days
382
45% of all-time downloads
Asher-1/GKD_GGUF
GKD_GGUF is a machine learning model from Asher-1. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
- Architecture: GKDT-L = DINOv3 ViT-L vision tower (D=1024, 24 blocks, 16 heads, 4 storage tokens + cls, RoPE with checkpoint periods, LayerScale 1e-5, LinearKMaskedBias qkv) + dinotxt text tower (D=1280, 24 causal bl…
Downloads · 30 days
382
45% of all-time downloads
All-time downloads
849
Public
Repo size
7.6 GB
Likes
0
Public
Click a slice to open those files.
.gguf7.6 GB · 100%
From the Hugging Face model README
models/pytorch/gkd_fullset.best (GKDT-L for
real-world testing, ECCV 2026 release, ~6.34 GB).mytransforms pipeline exactly.All five runtime files are published at https://huggingface.co/Asher-1/GKD_GGUF — no conversion step is needed unless you want a dtype we do not ship:
# everything into the engine's model directory
huggingface-cli download Asher-1/GKD_GGUF --local-dir cpp_ggml/models/gguf
# or just the recommended file
huggingface-cli download Asher-1/GKD_GGUF gkd_fullset-q4_K.gguf --local-dir cpp_ggml/models/gguf
# plain HTTPS also works (no HF client required)
wget https://huggingface.co/Asher-1/GKD_GGUF/resolve/main/gkd_fullset-q4_K.gguf \
-O cpp_ggml/models/gguf/gkd_fullset-q4_K.gguf
| file | dtype | size | download |
|---|---|---|---|
gguf/gkd_fullset-f32.gguf | F32 | 3.39 GiB | link |
gguf/gkd_fullset-f16.gguf | F16 weights | 1.70 GiB | link |
gguf/gkd_fullset-q8_0.gguf | Q8_0 weights | 905 MiB | link |
gguf/gkd_fullset-q4_0.gguf | Q4_0 weights | 483 MiB | link |
gguf/gkd_fullset-q4_K.gguf | Q4_K weights | 483 MiB | link |
All five run on all three backends (cpu / cuda / vulkan). Only 2-D weight
matrices are quantized; vectors (biases, norms, cls/storage and RoPE tensors)
always stay F32, and tensors whose fastest dimension cannot satisfy the block
size fall back to F32 automatically (ne0 % 32 for q8_0/q4_0, ne0 % 256
for q4_K). Shared accuracy facts: keypoint coordinates on the official
examples match stock PyTorch to ≤ 0.0048 px for every dtype; the dtypes
differ in score amplitude and — for q4 — in argmax stability on near-flat
heatmaps (see Verified accuracy below).
gkd_fullset-f32.gguf — fp32 reference (3.39 GiB)../scripts/dump_taps.py).GGML_LLAMAFILE=ON enables the
tinyBLAS fp32 GEMM.gkd_fullset-f16.gguf — fp16 weights, near-lossless (1.70 GiB)gkd_fullset-q8_0.gguf — 8-bit compact, near-lossless (905 MiB)ne0 % 32 == 0; everything else F32.gkd_fullset-q4_0.gguf — simplest 4-bit (483 MiB)d = signed_max/-8), 4.5 bits per
weight. Simple encoding, but a single outlier in a block degrades the
other 31 values.gkd_fullset-q4_K.gguf — super-block 4-bit, recommended (483 MiB)8599e0ea),
pinned as a git submodule at ../third_party/ggml. The submodule stays
pristine: every deviation lives in ../patches/ggml/*.patch and is applied
automatically — and idempotently — at cmake configure time (forward-check →
apply, reverse-check → skip, conflict → abort).Only 2-D weight matrices are quantized; vectors (biases, norms, cls/storage
and RoPE tensors) always stay F32, and tensors whose fastest dimension cannot
satisfy the block size fall back to F32 automatically (ne0 % 32 for
q8_0/q4_0, ne0 % 256 for q4_K).
Q4_0 — 32 values per 18-byte block, a single f16 scale
(d = signed_max / -8, value = (q-8)·d). Simple, but one outlier in a
block degrades the other 31 values.
Q4_K — 256-value super-blocks (144 bytes), each split into 8 sub-blocks
of 32 with independent 6-bit scale+min; (scale, min) are chosen by an
error-minimizing search rather than by fitting the extreme value:
value = d·sc·(q-8) − dmin·m. Same 4.5 bits/value as Q4_0, materially less
reconstruction error — the recommended runtime dtype.
Both writers in ../scripts/convert_gkd_to_gguf.py are numpy ports of ggml's
reference quantizers and were cross-verified against ggml_quantize_chunk
(Q4_0 byte-identical; Q4_K identical modulo the reference's own near-tie
float ordering).
| f32 | f16 | q8_0 | q4_0 | q4_K | |
|---|---|---|---|---|---|
| size (GKDT-L) | 3.39 GiB | 1.70 GiB | 905 MiB | 483 MiB | 483 MiB |
| bits/value (2-D weights) | 32 | 16 | 8.5 | 4.5 | 4.5 |
| max score diff vs PyTorch | 0.0011 | 0.0012 | 0.0021 | 0.026 | 0.017 |
| best backend latency (text) | 51.5 (vulkan) | 41.4 (cuda) | 41.3 (cuda) | 40.7 (cuda) | 41.2 (cuda) / 1211 ms cpu |
The pre-built files above come from exactly this command, so converting yourself is only needed for a custom dtype/checkpoint:
python scripts/convert_gkd_to_gguf.py --dtype f32 # also: f16, q8_0, q4_0, q4_K
# input: models/pytorch/gkd_fullset.best -> models/gguf/gkd_fullset-<dtype>.gguf
The converter folds bias_mask, exports the RoPE periods, stores torch
Linear weights raw (ggml ne = reversed shape), transposes anet.proj (the
official code uses x @ proj), splits the KG cross-attention in_proj into
q/k/v tensors, and quantizes only 2-D matrices that satisfy the block-size
constraint.
Keypoint coordinates agree to ≤ 0.0048 px (max over the three prompt
modes, original-image pixels) for every config of the full
backend × precision matrix — quantization changes score amplitude, never the
argmax location. Mean absolute score difference vs the stock PyTorch
reference (full detail in ../benchmarks/accuracy.json):
| config | text | visual | multimodal |
|---|---|---|---|
cpu-f32 | 0.0005 | 0.0009 | 0.0007 |
cpu-f16 | 0.0005 | 0.0009 | 0.0007 |
cpu-q8_0 | 0.0009 | 0.0008 | 0.0011 |
cpu-q4_0 | 0.0098 | 0.0249 | 0.0078 |
cpu-q4_K | 0.0056 | 0.0140 | 0.0066 |
cuda-f32 | 0.0005 | 0.0011 | 0.0007 |
cuda-f16 | 0.0005 | 0.0006 | 0.0004 |
cuda-q8_0 | 0.0003 | 0.0003 | 0.0013 |
cuda-q4_0 | 0.0098 | 0.0248 | 0.0076 |
cuda-q4_K | 0.0094 | 0.0172 | 0.0068 |
vulkan-f32 | 0.0010 | 0.0008 | 0.0012 |
vulkan-f16 | 0.0012 | 0.0008 | 0.0011 |
vulkan-q8_0 | 0.0009 | 0.0021 | 0.0003 |
vulkan-q4_0 | 0.0098 | 0.0260 | 0.0069 |
vulkan-q4_K | 0.0057 | 0.0115 | 0.0037 |
../benchmarks/accuracy_all_images.json extends the verification to all 15
official test images (text mode, per-image prompt sets) and to the three
official demo commands of test_real_world/scripts/eval_single_obj_gkd.sh
(multimodal whole-image, text with bbox ROI [33,38,241,310], cross-image
visual support from alpaca_150.jpg):
accuracy_by_image.png (config × image error heatmap),
parity_official_examples.png (keypoint overlay grid, PyTorch vs three
q4_K backends).End-to-end latency / speedup over the 15 official images (reference: stock
PyTorch on CUDA, RTX 4090) — generated table, see
../benchmarks/speedup_table.md and the matrices
../benchmarks/latency_matrix.png / ../benchmarks/speedup_matrix.png:
| mode | cpu-f32 | cpu-f16 | cpu-q8_0 | cpu-q4_0 | cpu-q4_K | cuda-f32 | cuda-f16 | cuda-q8_0 | cuda-q4_0 | cuda-q4_K | vulkan-f32 | vulkan-f16 | vulkan-q8_0 | vulkan-q4_0 | vulkan-q4_K | pytorch-cuda (ref) | | text | 1555.2 (0.1x) | 1733.6 (0.1x) | 1670.6 (0.1x) | 1882.3 (0.1x) | 1211.2 (0.2x) | 52.8 (4.4x) | 41.4 (5.6x) | 41.3 (5.6x) | 40.7 (5.7x) | 41.2 (5.6x) | 51.5 (4.5x) | 48.9 (4.7x) | 51.7 (4.5x) | 52.5 (4.4x) | 52.4 (4.4x) | 231.5 | | visual | 1625.5 (0.1x) | 1781.3 (0.1x) | 1759.3 (0.1x) | 1911.4 (0.1x) | 1342.0 (0.1x) | 49.8 (2.7x) | 42.4 (3.1x) | 40.7 (3.2x) | 41.7 (3.2x) | 40.0 (3.3x) | 47.3 (2.8x) | 44.6 (3.0x) | 50.2 (2.6x) | 50.0 (2.6x) | 47.4 (2.8x) | 131.9 | | multimodal | 2102.7 (0.1x) | 2342.4 (0.1x) | 2188.4 (0.1x) | 2441.4 (0.1x) | 1583.5 (0.2x) | 60.4 (5.0x) | 55.1 (5.4x) | 47.0 (6.4x) | 45.5 (6.6x) | 46.0 (6.5x) | 57.1 (5.3x) | 52.3 (5.7x) | 56.7 (5.3x) | 59.7 (5.0x) | 55.5 (5.4x) | 299.8 |
Same as the GKDT release: free for academic research and education, commercial use prohibited.