Instructions to use Kwaipilot/KAT-Coder-V2.5-Dev with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Kwaipilot/KAT-Coder-V2.5-Dev with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Kwaipilot/KAT-Coder-V2.5-Dev") 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("Kwaipilot/KAT-Coder-V2.5-Dev") model = AutoModelForMultimodalLM.from_pretrained("Kwaipilot/KAT-Coder-V2.5-Dev", 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 Kwaipilot/KAT-Coder-V2.5-Dev with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Kwaipilot/KAT-Coder-V2.5-Dev" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Kwaipilot/KAT-Coder-V2.5-Dev", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Kwaipilot/KAT-Coder-V2.5-Dev
- SGLang
How to use Kwaipilot/KAT-Coder-V2.5-Dev 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 "Kwaipilot/KAT-Coder-V2.5-Dev" \ --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": "Kwaipilot/KAT-Coder-V2.5-Dev", "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 "Kwaipilot/KAT-Coder-V2.5-Dev" \ --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": "Kwaipilot/KAT-Coder-V2.5-Dev", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Kwaipilot/KAT-Coder-V2.5-Dev with Docker Model Runner:
docker model run hf.co/Kwaipilot/KAT-Coder-V2.5-Dev
Community benchmark results discussion
This discussion is for comparing the in-house versus the community evals. From the preliminary community benchmarks the model seems to be weaker than ornith-1.0-35b and qwen3.6-35b-a3b noticeably, compared to the in-house testing.
Official Kwaipilot in-house benchmark results
| Model | SWE-bench Verified | SWE-bench Pro |
|---|---|---|
| KAT-Coder-V2.5-Dev | 69.40 | 45.96 |
| Qwen3.6-35B-A3B | 64.40 | 40.63 |
| Ornith-1.0-35B | 55.80 | 34.47 |
Community results (Model provider results)
| Model | SWE-bench Verified | SWE-bench Pro |
|---|---|---|
| KAT-Coder-V2.5-Dev | 69.4 | 45.96 |
| Qwen3.6-35B-A3B | 73.4 | 49.5 |
| Ornith-1.0-35B | 75.6 | 50.4 |
Some of my questions:
I'm genuinely interested how there can be such big gaps in the runs?
Are the sampling parameters during your in-house testing far different from the model provider proposed ones?
Could it be explained by different harnesses used during testing?
How much weight can we put on these benchmarks at all for the fine-tuned medium-sized Qwen models?
This discussion is meant for shearing of opinions and knowledge, so I encourage everybody willing to engage. 😄
Thanks for raising these thoughtful questions!
A primary factor is that it can be challenging to exactly reproduce the official reported benchmark numbers. Notably, the Qwen team has targeted optimizations on certain evaluation datasets. To ensure fair comparisons across all models, we re-run all evaluations under a unified, consistent standard setup. You can find detailed evaluation settings described in the footnote text below our benchmark table.
I actually tested these two models. Previously, I used Ornith, and I felt that KAT-Coder was a bit better—just my personal impression, without any benchmarking.
I agree, I have tested Ornith, Agents-a1, Ternary Bonsai, Laguna XS2.1 but this one is not in the same category.
And I’m not talking about standard benchmarks; I’m talking about a real software development environment with over 100 files and 50,000 lines of code.
I feel like we are very very close to Qwen3.6 27B...
Happy to get this on my old RTX3060 with 260k context window.
Very good work !
First of all, thank you for responding @liushiyang . I've checked and you ran qwen3.6-35b-a3b at SWE-bench Verified / Multilingual / Pro, KAT-Code-Bench with these parameters: pass@k=1, temperature=1.0, top_p=0.95, 256k ctx.
While Qwen recommends these to be used for coding tasks:
- "Thinking mode for precise coding tasks (e.g. WebDev): temperature=0.6, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0"
Qwen did state they used the following parameters on their benchmarks:
- "SWE-Bench Series: Internal agent scaffold (bash + file-edit tools); temp=1.0, top_p=0.95, 200K context window."
- Though this line might indicate some cherry picking in their eval: "We correct some problematic tasks in the public set of SWE-bench Pro and evaluate all baselines on the refined benchmark."
Deepreinforce-ai's recommends the same parameters as Qwen's for coding tasks but their reported parameters used on their own benchmarks were:
- "Terminal-Bench 2.1 (Claude Code): We evaluate Terminal-Bench 2.1 using Claude Code 2.1.126 with parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072. Results are averaged over 5 runs. Again, Qwen chat template needs to be modified."
- "SWE-Bench Verified, Pro and Multilingual: using OpenHands harness with temp=1.0, top_p=0.95, 256k context window."
Not sure how your model server behaves if some of these are not set explicitly.
One question I would think of as interesting right now would be:
Why didn't you do multiple runs per model on the benchmarks?
@space-spike
Thanks for the thoughtful question!
There are two main reasons we didn’t run multiple repeated evaluations for each checkpoint:
First, we have a large pool of candidate checkpoints to evaluate. Running 5 repeated trials for every candidate would lead to an infeasible computational overhead.
Second, if a single model achieves strong results consistently across all 7 benchmarks, we argue that high scores across such a diverse set of tasks are unlikely to come purely from random sampling luck, making repeated runs less necessary for filtering promising candidates.
Understood. Thanks for the transparency and the engagement from the Kwaipilot team.
I'll be testing the model myself in day-to-day coding and my local evals, so I'll maybe have more feedback and food for thought. Cheers 😄
Ran my evals (math and coding problems) with the q4_k_m.gguf quant by bartowski. Though my quick benchmarks are not hard enough for this model class, the Kat-Coder-v2.5 completes the problems with a fraction of thinking tokens used compared to vanilla qwen3.6-35b-a3b and ornith-1.0-35b. The traces contain genuine reasoning, and the model doesn't ramble almost at all, it thinks clearly and follows through the problem steps efficiently. If that causes it to catch less of its mistakes on longer harder problems is yet to be seen.
I'm impressed with this models reasoning, what thinking traces did you use in the RL part of training?
Any plans for an MTP/Dflash/DSpark head for this model?
Tried using mtp and dflash from qwen3.6-35b-a3b as spec-draft for this model, they work alright.
If I might, I suggest you take a look at unlsoth's chat template for the qwen3.6-35b-a3b. It's mostly the same as yours but a bit more robust for coding agent harnesses and it could work well for kat-coder-v2.5-dev as well.
For me it solved C coding task much better and faster than 3.6 35b and even 27b but that was since it is moe in the end it is faster bat would say same quality.
@vlarmet
@space-spike
@Joske0000
Guys thank you for your feedback. Please share your config you've used to run it with llama.cpp. KV cache quantization keys, etc.
llama-server.exe -m Kwaipilot_KAT-Coder-V2.5-Dev-Q5_K_M.gguf
--no-mmap
-t 4
--cache-reuse 256
--jinja
--chat-template-file D:\llama.cpp\chat_template.jinja
--reasoning-format deepseek
--reasoning-budget 8000
--temp 0.7
--top-p 0.8
--top-k 20
--presence-penalty 1.5
-c 260000
-ngl 99
--n-cpu-moe 35
-fa on
--host 0.0.0.0
--port 8080
note : I use Froggeric chat template and -ctk and -ctv are f16 by default