Image-Text-to-Text
Transformers
Safetensors
qwen3_5
int4
w4a16
awq
gptq
llm-compressor
compressed-tensors
vllm
conversational
Instructions to use TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4") model = AutoModelForMultimodalLM.from_pretrained("TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4
- SGLang
How to use TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4 with Docker Model Runner:
docker model run hf.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -18,11 +18,11 @@ Mixed-precision **INT4 (W4A16)** quantization of [`Qwen/Qwen3.8-27B`](https://hu
|
|
| 18 |
built with [llm-compressor](https://github.com/vllm-project/llm-compressor) using
|
| 19 |
**AWQ activation-aware scaling followed by GPTQ**.
|
| 20 |
|
| 21 |
-
**
|
| 22 |
on high-confidence token agreement — at 8 GB less. Runs on anything Turing or newer
|
| 23 |
(no FP8/FP4 hardware required).
|
| 24 |
|
| 25 |
-
This is the size-optimised variant. A
|
| 26 |
[`Qwen3.8-27B-INT4-AWQ-GPTQ`](https://huggingface.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ),
|
| 27 |
keeps the GDN projections at 8-bit and is more accurate again (0.93% vs 1.15% confident).
|
| 28 |
|
|
@@ -56,12 +56,12 @@ Against the BF16 base on 142,727 tokens of self-distilled thinking-mode output p
|
|
| 56 |
| checkpoint | size ↓ | top-1 ↑ | near-tie ↓ | moderate ↓ | confident ↓ | certain ↓ | divmed ↑ | tok/s ↑ |
|
| 57 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 58 |
| `Qwen/Qwen3.8-27B-FP8` *(8-bit ref)* | 29 GB | 96.15% | 22.70% | 3.48% | 1.45% | 0.08% | 47 | 8711 |
|
| 59 |
-
| **this model (GDN 4-bit)** |
|
| 60 |
-
| our
|
| 61 |
| `cyankiwi/Qwen3.8-27B-AWQ-INT4` | **20 GB** | 94.35% | 33.74% | 5.59% | 1.35% | **0.12%** | 29 | 4787 |
|
| 62 |
|
| 63 |
-
Bold marks the best value in each column **among the ~20–
|
| 64 |
-
our own
|
| 65 |
|
| 66 |
**Columns.** `top-1` is raw argmax agreement with BF16. The four bucket columns are
|
| 67 |
*disagreement* rates, split by how confident the base model was at that position
|
|
@@ -76,7 +76,7 @@ damage. Do not rank quantizations of this model by perplexity.
|
|
| 76 |
|
| 77 |
### What the GDN precision costs
|
| 78 |
|
| 79 |
-
Moving the GDN projections from 8-bit to 4-bit is what takes this build from
|
| 80 |
It costs `confident` **0.93% → 1.15%** and `certain` **0.09% → 0.13%** — real but modest.
|
| 81 |
Note the two are not a pure bit-width comparison: at 4-bit the GDN projections also move
|
| 82 |
into GPTQ's error compensation, where at 8-bit they were plain round-to-nearest, so the
|
|
@@ -109,13 +109,32 @@ W4A16 needs only compute capability ≥ 7.5 (Turing), so this runs on 3090/4090/
|
|
| 109 |
as well as Blackwell. Throughput above was measured on B300 and is not representative of
|
| 110 |
Ampere, where Marlin INT4 is comparatively better tuned.
|
| 111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
## Limitations
|
| 113 |
|
| 114 |
-
- **
|
| 115 |
Quantizing `lm_head` would free a further ~1.3 GB but was not measured here.
|
| 116 |
- **Throughput on Blackwell is ~2.3× below NVFP4.** This checkpoint trades speed for fidelity.
|
| 117 |
-
- **The MTP head is not included** — `Qwen3_5ForConditionalGeneration` does not carry it in
|
| 118 |
-
its state dict, so it is dropped during quantization. MTP speculative decoding is unavailable.
|
| 119 |
- **Single evaluation corpus.** All numbers come from one self-distilled corpus. The margins
|
| 120 |
over FP8 and cyankiwi are statistically solid but have not been replicated on a second
|
| 121 |
distribution, nor on downstream task benchmarks.
|
|
|
|
| 18 |
built with [llm-compressor](https://github.com/vllm-project/llm-compressor) using
|
| 19 |
**AWQ activation-aware scaling followed by GPTQ**.
|
| 20 |
|
| 21 |
+
**22 GB, and measurably more faithful to the BF16 model than the official FP8 release**
|
| 22 |
on high-confidence token agreement — at 8 GB less. Runs on anything Turing or newer
|
| 23 |
(no FP8/FP4 hardware required).
|
| 24 |
|
| 25 |
+
This is the size-optimised variant. A 24 GB sibling,
|
| 26 |
[`Qwen3.8-27B-INT4-AWQ-GPTQ`](https://huggingface.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ),
|
| 27 |
keeps the GDN projections at 8-bit and is more accurate again (0.93% vs 1.15% confident).
|
| 28 |
|
|
|
|
| 56 |
| checkpoint | size ↓ | top-1 ↑ | near-tie ↓ | moderate ↓ | confident ↓ | certain ↓ | divmed ↑ | tok/s ↑ |
|
| 57 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 58 |
| `Qwen/Qwen3.8-27B-FP8` *(8-bit ref)* | 29 GB | 96.15% | 22.70% | 3.48% | 1.45% | 0.08% | 47 | 8711 |
|
| 59 |
+
| **this model (GDN 4-bit)** | 22 GB | **95.88%** | **25.26%** | **3.60%** | **1.15%** | 0.13% | **51** | 4716 |
|
| 60 |
+
| our 24 GB sibling (GDN 8-bit) | 24 GB | 96.30% | 22.29% | 3.52% | 0.93% | 0.09% | 48 | 4617 |
|
| 61 |
| `cyankiwi/Qwen3.8-27B-AWQ-INT4` | **20 GB** | 94.35% | 33.74% | 5.59% | 1.35% | **0.12%** | 29 | 4787 |
|
| 62 |
|
| 63 |
+
Bold marks the best value in each column **among the ~20–22 GB checkpoints**; the FP8 row and
|
| 64 |
+
our own 24 GB sibling sit in different size classes and are shown for reference only.
|
| 65 |
|
| 66 |
**Columns.** `top-1` is raw argmax agreement with BF16. The four bucket columns are
|
| 67 |
*disagreement* rates, split by how confident the base model was at that position
|
|
|
|
| 76 |
|
| 77 |
### What the GDN precision costs
|
| 78 |
|
| 79 |
+
Moving the GDN projections from 8-bit to 4-bit is what takes this build from 24 GB to 22 GB.
|
| 80 |
It costs `confident` **0.93% → 1.15%** and `certain` **0.09% → 0.13%** — real but modest.
|
| 81 |
Note the two are not a pure bit-width comparison: at 4-bit the GDN projections also move
|
| 82 |
into GPTQ's error compensation, where at 8-bit they were plain round-to-nearest, so the
|
|
|
|
| 109 |
as well as Blackwell. Throughput above was measured on B300 and is not representative of
|
| 110 |
Ampere, where Marlin INT4 is comparatively better tuned.
|
| 111 |
|
| 112 |
+
## Speculative decoding (MTP)
|
| 113 |
+
|
| 114 |
+
The model's **MTP (multi-token prediction) head is included**, in BF16, and works with
|
| 115 |
+
vLLM's `mtp` speculative decoding:
|
| 116 |
+
|
| 117 |
+
```python
|
| 118 |
+
from vllm import LLM
|
| 119 |
+
llm = LLM("TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", tensor_parallel_size=2,
|
| 120 |
+
speculative_config={"method": "mtp", "num_speculative_tokens": 2})
|
| 121 |
+
```
|
| 122 |
+
|
| 123 |
+
`Qwen3_5ForConditionalGeneration` does not carry `mtp.*` in its state dict, so
|
| 124 |
+
llm-compressor never sees it and it is absent from most community quantizations of this
|
| 125 |
+
model — even though `config.json` declares `mtp_num_hidden_layers: 1`. It is grafted back
|
| 126 |
+
in here from the base checkpoint and excluded from quantization (`re:.*mtp.*` in
|
| 127 |
+
`quantization_config.ignore`; without that exclusion the quantization target regexes also
|
| 128 |
+
match `mtp.layers.0.mlp.*` and vLLM fails to load). Draft quality drives acceptance rate,
|
| 129 |
+
so it is kept at full precision rather than quantized.
|
| 130 |
+
|
| 131 |
+
Acceptance rate has not been measured; the head is verified to load and generate.
|
| 132 |
+
|
| 133 |
## Limitations
|
| 134 |
|
| 135 |
+
- **22 GB is still tight on a single 24 GB card** once KV cache is accounted for.
|
| 136 |
Quantizing `lm_head` would free a further ~1.3 GB but was not measured here.
|
| 137 |
- **Throughput on Blackwell is ~2.3× below NVFP4.** This checkpoint trades speed for fidelity.
|
|
|
|
|
|
|
| 138 |
- **Single evaluation corpus.** All numbers come from one self-distilled corpus. The margins
|
| 139 |
over FP8 and cyankiwi are statistically solid but have not been replicated on a second
|
| 140 |
distribution, nor on downstream task benchmarks.
|