Text Generation
Transformers
Safetensors
English
qwen3_5_moe
image-text-to-text
reasoning
distillation
chain-of-thought
qwen
qwen3.6
kimi
kimi-k2
mixture-of-experts
Mixture of Experts
lora
unsloth
conversational
Instructions to use lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled") 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("lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled") model = AutoModelForMultimodalLM.from_pretrained("lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled") 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 lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled
- SGLang
How to use lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled 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 "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled" \ --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": "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled", "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 "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled" \ --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": "lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Unsloth Studio
How to use lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled", max_seq_length=2048, ) - Docker Model Runner
How to use lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled with Docker Model Runner:
docker model run hf.co/lordx64/Qwen3.6-35B-A3B-Kimi-K2.6-Reasoning-Distilled
Eval: add base MATH-500=53% + TL;DR explaining what distillation actually does (style transfer, not capability gain)
Browse files
README.md
CHANGED
|
@@ -145,12 +145,21 @@ The initial plan was full LoRA including the MoE expert FFNs (`gate_proj/up_proj
|
|
| 145 |
|
| 146 |
Methodology: vLLM + lm-eval-harness with a custom `<think>`-stripping wrapper, `max_gen_toks=16384` to allow full Kimi-style reasoning chains before answer extraction. Each model evaluated under identical conditions on a single H200. See [`training/eval.py`](https://github.com/lordx64/distillation/blob/main/training/eval.py).
|
| 147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
### Head-to-head: Kimi-Distill vs Base
|
| 149 |
|
| 150 |
| Benchmark | Setup | Base Qwen3.6-35B-A3B | **Kimi-Distill (this model)** | Δ |
|
| 151 |
|---|---|---:|---:|---:|
|
| 152 |
| **GSM8K** | 8-shot CoT, 300 examples, strict-match | 64.00% | **92.67%** | **+28.67 pp** ✅ |
|
| 153 |
-
| **MATH-500** | 0-shot, 100 problems, math_verify |
|
| 154 |
| **GPQA Diamond** | 0-shot CoT, 198 problems, flex-extract | 79.29% | 75.25% | -4.04 pp |
|
| 155 |
| **MMLU-Pro math** | 5-shot, custom-extract | 27.20% | **64.80%** | **+37.60 pp** ✅ |
|
| 156 |
| **MMLU-Pro CS** | 5-shot, custom-extract | 20.49% | **61.46%** | **+40.97 pp** ✅ |
|
|
@@ -159,9 +168,14 @@ Methodology: vLLM + lm-eval-harness with a custom `<think>`-stripping wrapper, `
|
|
| 159 |
| MMLU-Pro overall | 5-shot, custom-extract | 6.35% | 14.67% | +8.32 pp (extractor-affected for both) |
|
| 160 |
| AIME 2024 / 2025 | 0-shot, 30 problems, strict-match | 0.00% | 0.00% | extractor format issue (see note) |
|
| 161 |
|
| 162 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
|
| 164 |
-
|
| 165 |
|
| 166 |
### Notes on the methodology issues
|
| 167 |
|
|
|
|
| 145 |
|
| 146 |
Methodology: vLLM + lm-eval-harness with a custom `<think>`-stripping wrapper, `max_gen_toks=16384` to allow full Kimi-style reasoning chains before answer extraction. Each model evaluated under identical conditions on a single H200. See [`training/eval.py`](https://github.com/lordx64/distillation/blob/main/training/eval.py).
|
| 147 |
|
| 148 |
+
> **TL;DR — what this distillation actually does, based on the head-to-head data below:**
|
| 149 |
+
>
|
| 150 |
+
> **The distillation makes the model unconditionally think, but doesn't improve raw reasoning capability over the base.**
|
| 151 |
+
>
|
| 152 |
+
> - On benchmarks where the **base fails to invoke its own thinking** (GSM8K under fewshot pattern, most MMLU-Pro subjects): distill **+28 to +40 pp**.
|
| 153 |
+
> - On benchmarks where the **base already thinks natively** (MATH-500, GPQA Diamond): distill **−4 to −6 pp** (a small style-imitation cost).
|
| 154 |
+
>
|
| 155 |
+
> Use this model when you want predictable `<think>`-block reasoning on prompts that don't trigger the base's thinking mode (fewshot evals, plain Q&A, latency-sensitive deploys with fixed prompt templates). Use the base directly when you can already prompt it for zero-shot CoT.
|
| 156 |
+
|
| 157 |
### Head-to-head: Kimi-Distill vs Base
|
| 158 |
|
| 159 |
| Benchmark | Setup | Base Qwen3.6-35B-A3B | **Kimi-Distill (this model)** | Δ |
|
| 160 |
|---|---|---:|---:|---:|
|
| 161 |
| **GSM8K** | 8-shot CoT, 300 examples, strict-match | 64.00% | **92.67%** | **+28.67 pp** ✅ |
|
| 162 |
+
| **MATH-500** | 0-shot, 100 problems, math_verify | 53.00% | 47.00% | -6.00 pp |
|
| 163 |
| **GPQA Diamond** | 0-shot CoT, 198 problems, flex-extract | 79.29% | 75.25% | -4.04 pp |
|
| 164 |
| **MMLU-Pro math** | 5-shot, custom-extract | 27.20% | **64.80%** | **+37.60 pp** ✅ |
|
| 165 |
| **MMLU-Pro CS** | 5-shot, custom-extract | 20.49% | **61.46%** | **+40.97 pp** ✅ |
|
|
|
|
| 168 |
| MMLU-Pro overall | 5-shot, custom-extract | 6.35% | 14.67% | +8.32 pp (extractor-affected for both) |
|
| 169 |
| AIME 2024 / 2025 | 0-shot, 30 problems, strict-match | 0.00% | 0.00% | extractor format issue (see note) |
|
| 170 |
|
| 171 |
+
### What the data is actually telling us
|
| 172 |
+
|
| 173 |
+
Two patterns, depending on whether the base model invokes its own thinking under the eval prompt:
|
| 174 |
+
|
| 175 |
+
- **Where the base fails to invoke thinking** (GSM8K under fewshot pattern, most MMLU-Pro subjects), the distillation wins by a wide margin: **GSM8K +28.67 pp**, MMLU-Pro Math **+37.60 pp**, MMLU-Pro CS **+40.97 pp**. The Kimi-distill emits `<think>` blocks unconditionally — it doesn't follow the fewshot pattern; it reasons regardless. That's a real prompt-robustness gain.
|
| 176 |
+
- **Where the base already thinks natively** (MATH-500, GPQA Diamond), the distill is **slightly worse**: -6.00 pp on MATH-500, -4.04 pp on GPQA. Style imitation incurs a small cost when the base was already doing the right thing.
|
| 177 |
|
| 178 |
+
So the honest framing: this distillation **transfers Kimi K2.6's verbose reasoning style and makes the model think unconditionally**. It does not add raw reasoning capability or factual knowledge over the base. Use the Kimi-distill when you want predictable thinking on prompts that don't trigger the base's own thinking mode (fewshot evals, plain Q&A patterns); use the base directly when you can already prompt it correctly (zero-shot CoT on math/STEM).
|
| 179 |
|
| 180 |
### Notes on the methodology issues
|
| 181 |
|