Text Generation
Transformers
Safetensors
English
Chinese
multilingual
qwen3_5
image-text-to-text
abliterated
uncensored
qwen3
qwen3.6
nvfp4
modelopt
mtp
multi-token-prediction
speculative-decoding
hybrid-attention
mamba
gated-deltanet
text-only
aeon
rtx-pro-6000
b100
b200
dedicated-vram-blackwell
sm_120
sm_100
conversational
Instructions to use AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP") 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("AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP") model = AutoModelForMultimodalLM.from_pretrained("AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP", 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 AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP
- SGLang
How to use AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP 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 "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP" \ --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": "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP" \ --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": "AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP with Docker Model Runner:
docker model run hf.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Text-NVFP4-MTP
docs: vLLM compatibility status on aeon-vllm-ultimate:latest
Browse filesCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- README.md +46 -1
- assets/perf/qwen27b_variant_family.svg +36 -0
README.md
CHANGED
|
@@ -41,12 +41,57 @@ tags:
|
|
| 41 |
|
| 42 |
> ## π AEON vLLM Ultimate container
|
| 43 |
>
|
| 44 |
-
> [`ghcr.io/aeon-7/aeon-vllm-ultimate:latest`](https://github.com/AEON-7/vllm-ultimate-dgx-spark) (= tag `:2026-06-
|
| 45 |
>
|
| 46 |
> The image ENTRYPOINT is `/bin/bash`, so a raw `docker run` must pass `--entrypoint vllm` and then `serve ...` (do **not** write `IMAGE vllm serve`, which runs `bash vllm serve` and fails).
|
| 47 |
>
|
| 48 |
> **Why the long-context fix matters (DFlash path on DGX Spark):** if you instead drive this body with a DFlash drafter on a Spark/GB10, note that the z-lab Qwen3.6-27B DFlash drafter is a sliding-window model β 4 of its 5 layers use sliding-window attention (window 2048). PR #40898 (in `aeon-vllm-ultimate:latest`) runs those layers as proper SWA; earlier images ran them as full attention, so drafting collapsed once context grew past ~2048 tokens. PR #41703 additionally makes `--enable-prefix-caching` corruption-immune with DFlash. Net: long-context drafting holds up; short-context (<2048, one window) is unchanged. (This MTP repo's native `qwen3_5_mtp` head is the recommended drafter on dedicated VRAM β see the [`-Multimodal-NVFP4-MTP-XS`](https://huggingface.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Multimodal-NVFP4-MTP-XS) sibling for the Spark-side DFlash benchmarks.) Full setup + bench comparison: [container README](https://github.com/AEON-7/vllm-ultimate-dgx-spark).
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
## Variants
|
| 51 |
|
| 52 |
| Format | Size | Use case |
|
|
|
|
| 41 |
|
| 42 |
> ## π AEON vLLM Ultimate container
|
| 43 |
>
|
| 44 |
+
> [`ghcr.io/aeon-7/aeon-vllm-ultimate:latest`](https://github.com/AEON-7/vllm-ultimate-dgx-spark) (= tag `:2026-06-18-v0.23.0-dflashfix`; rollback `:2026-06-11-pr41703`) β the unified **vLLM v0.23.0** image (built from source for sm_121a) for **all** Qwen3.6-27B AEON repos: NVFP4 KV cache + DFlash + TurboQuant K8V4 + AEON sm_121a patches, plus PR #40898 (sliding-window attention for the DFlash drafter) and the DFlash high-concurrency block-table fix. On **dedicated-VRAM Blackwell** this variant serves with `--quantization modelopt` and `--speculative-config '{"method":"qwen3_5_mtp","num_speculative_tokens":3}'` (native MTP β see Usage below). **On the DGX Spark / GB10 this text export does not load** β see the vLLM-compatibility note immediately below.
|
| 45 |
>
|
| 46 |
> The image ENTRYPOINT is `/bin/bash`, so a raw `docker run` must pass `--entrypoint vllm` and then `serve ...` (do **not** write `IMAGE vllm serve`, which runs `bash vllm serve` and fails).
|
| 47 |
>
|
| 48 |
> **Why the long-context fix matters (DFlash path on DGX Spark):** if you instead drive this body with a DFlash drafter on a Spark/GB10, note that the z-lab Qwen3.6-27B DFlash drafter is a sliding-window model β 4 of its 5 layers use sliding-window attention (window 2048). PR #40898 (in `aeon-vllm-ultimate:latest`) runs those layers as proper SWA; earlier images ran them as full attention, so drafting collapsed once context grew past ~2048 tokens. PR #41703 additionally makes `--enable-prefix-caching` corruption-immune with DFlash. Net: long-context drafting holds up; short-context (<2048, one window) is unchanged. (This MTP repo's native `qwen3_5_mtp` head is the recommended drafter on dedicated VRAM β see the [`-Multimodal-NVFP4-MTP-XS`](https://huggingface.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Multimodal-NVFP4-MTP-XS) sibling for the Spark-side DFlash benchmarks.) Full setup + bench comparison: [container README](https://github.com/AEON-7/vllm-ultimate-dgx-spark).
|
| 49 |
|
| 50 |
+
## vLLM compatibility (DGX Spark / aeon-vllm-ultimate:latest)
|
| 51 |
+
|
| 52 |
+
**Status: this text export does not load on the unified container as shipped.** Validated 2026-06-18 on [`ghcr.io/aeon-7/aeon-vllm-ultimate:latest`](https://github.com/AEON-7/vllm-ultimate-dgx-spark) (vLLM v0.23.0, sm_121a).
|
| 53 |
+
|
| 54 |
+
The reason is purely a packaging mismatch, not a problem with the weights:
|
| 55 |
+
|
| 56 |
+
- `config.json` declares the **multimodal architecture** `Qwen3_5ForConditionalGeneration` (`model_type: qwen3_5`), so vLLM routes it through the **multimodal loader**.
|
| 57 |
+
- The multimodal loader expects an **image processor** in the repo, but this is a text-only export (the vision tower was stripped during quantization), so no processor files ship here.
|
| 58 |
+
- vLLM therefore aborts during init with **"cannot load image processor"** before serving can start.
|
| 59 |
+
|
| 60 |
+
**This is fixable two ways**, either of which would let this exact NVFP4+MTP body serve on the Spark:
|
| 61 |
+
|
| 62 |
+
1. **Re-export with a text-only architecture** (e.g. a `*ForCausalLM` head class instead of `Qwen3_5ForConditionalGeneration`), so vLLM uses the text loader and never looks for an image processor; or
|
| 63 |
+
2. **Add the processor files** (`preprocessor_config.json` / image-processor config) so the multimodal loader can initialize even though no image input is used.
|
| 64 |
+
|
| 65 |
+
Until then, **for vLLM serving on `aeon-vllm-ultimate:latest` (DGX Spark / GB10), use the [`-Multimodal-NVFP4-MTP-XS`](https://huggingface.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Multimodal-NVFP4-MTP-XS) sibling instead** β it is the smallest NVFP4 export, loads cleanly, and is the **fastest single-stream** option in this family (~42 tok/s at c=1 with DFlash). This card still serves fine on **dedicated-VRAM Blackwell** (RTX PRO 6000 / B100 / B200) via the text path with native MTP β see Usage below.
|
| 66 |
+
|
| 67 |
+
### Where this variant sits in the family
|
| 68 |
+
|
| 69 |
+
<p align="center"><img src="assets/perf/qwen27b_variant_family.svg" width="100%" alt="Qwen3.6-27B-AEON-Ultimate variant comparison: Multimodal-MTP-XS is fastest single-stream and the recommended Spark choice; BF16 baseline is ~2Γ the memory"></p>
|
| 70 |
+
|
| 71 |
+
### Recommended Spark alternative β measured c=1 throughput (Multimodal-NVFP4-MTP-XS)
|
| 72 |
+
|
| 73 |
+
These are the per-category single-stream numbers for the working sibling on `aeon-vllm-ultimate:latest` (DGX Spark / GB10, DFlash speculative decoding):
|
| 74 |
+
|
| 75 |
+
| Category | Decode tok/s | TTFT (ms) | TPOT (ms) | Prefill (tok/s) | DFlash accept % |
|
| 76 |
+
|---|---:|---:|---:|---:|---:|
|
| 77 |
+
| Coding | 42.6 | 141 | 23.5 | 318 | 34.5 |
|
| 78 |
+
| Math | 55.9 | 248 | 17.9 | 246 | 48.0 |
|
| 79 |
+
| Reasoning | 49.3 | 232 | 20.3 | 211 | 41.7 |
|
| 80 |
+
| Prose | 31.2 | 229 | 32.1 | 166 | 23.2 |
|
| 81 |
+
| Natural language | 34.8 | 228 | 28.7 | 175 | 26.6 |
|
| 82 |
+
| Extraction / JSON | 57.4 | 234 | 17.4 | 231 | 49.3 |
|
| 83 |
+
|
| 84 |
+
Long-context (β16kβ32k) DFlash acceptance holds at ~45%. Aggregate throughput scales to **c=64** on the unified container (Reasoning peaks ~340 tok/s). Full per-concurrency data lives on the [XS sibling card](https://huggingface.co/AEON-7/Qwen3.6-27B-AEON-Ultimate-Uncensored-Multimodal-NVFP4-MTP-XS).
|
| 85 |
+
|
| 86 |
+
## What we fixed for the DGX Spark
|
| 87 |
+
|
| 88 |
+
All AEON models run on one unified container β **`ghcr.io/aeon-7/aeon-vllm-ultimate:latest`** (= `:2026-06-18-v0.23.0-dflashfix`; rollback `:2026-06-11-pr41703`). It is **vLLM v0.23.0 built from source for sm_121a (GB10 / Blackwell)** and merged with the AEON speculative-decoding stack.
|
| 89 |
+
|
| 90 |
+
- **DFlash high-concurrency fix** *(new)* β slices the speculative drafter's KV block-table to the unpadded batch (`block_table[:num_reqs]`). The drafter previously **crashed at β₯32 concurrent requests** (padded-vs-unpadded block-table shape mismatch in FlashAttention); it now scales cleanly to **c=64**. A port of upstream PR #43982, which fixed this for MTP but never for DFlash.
|
| 91 |
+
- **Unified vLLM 0.23.0 image** β NVFP4 KV cache (PR #44389, the only 4-bit KV path on sm_121a) + DFlash sliding-window attention (PR #40898, so long-context draft acceptance holds) + sm_121a-native CUTLASS NVFP4/FP8 kernels + boot/CUDA-graph patches, all in a single tag.
|
| 92 |
+
|
| 93 |
+
> **Stock baseline pending fresh vanilla re-bench:** no apples-to-apples stock (vanilla vLLM, no DFlash, no sm_121a opts) baseline exists for this family yet. A fully-vanilla benchmark on the current version is pending; the optimized figures above are measured on `aeon-vllm-ultimate:latest` (vLLM 0.23.0).
|
| 94 |
+
|
| 95 |
## Variants
|
| 96 |
|
| 97 |
| Format | Size | Use case |
|
assets/perf/qwen27b_variant_family.svg
ADDED
|
|