Instructions to use mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth") 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("mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth") model = AutoModelForMultimodalLM.from_pretrained("mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth", 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 mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth
- SGLang
How to use mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth 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 "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth" \ --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": "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth", "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 "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth" \ --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": "mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth with Docker Model Runner:
docker model run hf.co/mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth
Keural Nova v1.2 — NVFP4 (unsloth mixed-precision recipe)
Mixed-precision NVFP4 quantization of Keural Nova v1.2, by MKD, for high-throughput serving on NVIDIA Blackwell via vLLM.
Replicates the unsloth/Qwen3.6-35B-A3B-NVFP4 recipe — a dynamic mixed FP8/FP4 scheme that
keeps accuracy-sensitive layers at higher precision. This is the most accuracy-preserving of
our NVFP4 builds. (A pure-NVFP4 variant is at
Keural-Nova-v1.2-experimental-NVFP4.)
- 67 GB (bf16) → 24.8 GB — slightly larger than pure NVFP4 because sensitive layers stay FP8.
- Format:
compressed-tensors/ mixed-precision → served natively by vLLM.
The recipe (exactly unsloth's)
| Precision | Layers |
|---|---|
| FP8 (8-bit) | attention (q/k/v/o), linear-attn projections (in_proj_qkv/z, out_proj), lm_head, last 8 layers' experts (32–39) |
| FP4 (NVFP4, 4-bit) | the first 32 layers' experts + shared experts (the bulk) |
| High-precision (bf16) | linear-attn in_proj_a/b/norm, router gates (mlp.gate, shared_expert_gate), vision tower, MTP |
Verified coverage: layer-0 experts FP4, layer-32 experts FP8, all listed sensitive layers bf16.
⚠️ Hardware
FP4 tensor cores exist only on Blackwell (B200 / GB200 / RTX 50xx) — serve there for the speed/memory benefit (Hopper lacks FP4 kernels).
Serving (vLLM on Blackwell)
vllm serve mkd-hossain/Keural-Nova-v1.2-experimental-NVFP4-unsloth \
--served-model-name Keural-Nova-v1.2 \
--tensor-parallel-size 2 --max-model-len 262144 \
--tool-call-parser qwen3_xml --enable-auto-tool-choice
Non-thinking default; Qwen XML tool calls; native 256K for agents (YaRN only for >256K). Multimodal works.
Quantization details
- Tool:
llm-compressor(compressed-tensors), using unsloth's exactconfig_groups+ignore. - Calibration: 512 samples from the Keural Nova v1.2 SFT mix, seq-len 2048.
Accuracy
Mixed FP8/FP4 keeps the most sensitive layers (linear-attn, gates, attention, final-layer experts)
in higher precision, so this typically loses less than pure NVFP4 — the same design as unsloth's
public checkpoint. Validate on Blackwell with scripts/nvfp4_verify_vllm.py against the
bf16 base.
License & attribution
Apache-2.0, inheriting the base Qwen/Qwen3.6-35B-A3B license. Recipe after
unsloth/Qwen3.6-35B-A3B-NVFP4. "Keural Nova" is a model by MKD.
- Downloads last month
- 157
Model tree for mkd-ai/Keural-Nova-v1.2-experimental-NVFP4-unsloth
Base model
Qwen/Qwen3.6-35B-A3B