Coder-o1-mini-reasoning - AWQ
4-bit AWQ quantization of kd13/Coder-o1-mini-reasoning, a compact Python-focused reasoning model for coding assistance, debugging, code explanation, and math/logic reasoning.
Quantized with llm-compressor using AWQModifier + W4A16_ASYM. Calibrated on 256 code-instruction samples at 2048 tokens, with the model's own chat template applied.
lm_head is left at full precision. Weights are 4-bit; activations stay 16-bit.
Format
This is compressed-tensors format, which is what current AWQ tooling produces. vLLM and transformers both detect it automatically from config.json — you do not need to pass --quantization awq. The older AutoAWQ format is not interchangeable with this one; if a loader expects quant_config.json, it wants the legacy format and will not read this repo.
Usage
vLLM
vllm serve kd13/Coder-o1-mini-reasoning-AWQ --max-model-len 8192
Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("kd13/Coder-o1-mini-reasoning-AWQ", device_map="auto")
tok = AutoTokenizer.from_pretrained("kd13/Coder-o1-mini-reasoning-AWQ")
msgs = [
{"role": "system", "content": "You are a helpful Python coding assistant."},
{"role": "user", "content": "Explain list comprehensions with an example."},
]
prompt = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
ids = tok(prompt, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(**ids, max_new_tokens=300)[0]))
Requires pip install compressed-tensors.
Hardware
A CUDA GPU is required — AWQ has no CPU path. For local or CPU inference use the GGUF build instead.
On Ampere or newer (compute capability 8.0+) vLLM uses the Marlin kernel, which is where the throughput gains come from. Turing cards such as the T4 fall back to a slower kernel and see much less benefit.
Chat template
ChatML, with Qwen-style tool calling:
<|im_start|>system
{system}<|im_end|>
<|im_start|>user
{message}<|im_end|>
<|im_start|>assistant
Tool definitions are injected into the system message inside <tools> tags, and the model replies with a JSON object inside <tool_call> tags. Tool results are returned wrapped in <tool_response>. vLLM exposes this through its OpenAI-compatible tools parameter.
A default system prompt is applied when you do not supply one. Pass an explicit system prompt to control the assistant's stated identity.