Quickstart
from transformers import AutoTokenizer, AutoModelForCausalLM
m = "axonlabsai/Ranger-7B"
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, device_map="auto", dtype="auto")
msgs = [{"role": "user", "content": "Write a Python LRU cache with O(1) get and put."}]
text = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
out = model.generate(**tok(text, return_tensors="pt").to(model.device), max_new_tokens=1024)
print(tok.decode(out[0], skip_special_tokens=True))
Tool calling is supported through the standard tools= argument:
tools = [{"type": "function", "function": {
"name": "run_tests",
"description": "Run the project's test suite.",
"parameters": {"type": "object", "properties": {"path": {"type": "string"}}},
}}]
text = tok.apply_chat_template(msgs, tools=tools, tokenize=False, add_generation_prompt=True)
GGUF
Quantised builds live in gguf/ for llama.cpp, Ollama,
LM Studio, and anything else in that ecosystem.
Table with columns: file, bits, size, use it when| file | bits | size | use it when |
|---|
Ranger-7B-Q4_K_M.gguf | 4 | ~4.7 GB | default — fits 8GB VRAM or plain CPU |
Ranger-7B-Q5_K_M.gguf | 5 | ~5.4 GB | a little more headroom, better fidelity |
Ranger-7B-Q8_0.gguf | 8 | ~8.1 GB | near-lossless, 12GB+ VRAM |
Ranger-7B-F16.gguf | 16 | ~15.2 GB | reference / for making your own quants |
llama-cli -hf axonlabsai/Ranger-7B:Q4_K_M -p "Write a Python LRU cache."
# or locally
llama-cli -m Ranger-7B-Q4_K_M.gguf -c 8192 -p "..."
Because the model is terse, a 1024-token budget is genuinely enough for most
work — which is the entire point of it.
What Axon Labs changed
A LoRA (rank 64, alpha 128) over all attention and MLP projections across all 28
layers, merged into the weights — the model ships adapter-free. It trains model
identity and response discipline.
The chat template was also rebuilt, fixing two real defects in the stock one:
- it accepts a
tools list and renders it, so the model can be told which
functions exist. The stock template could emit tool calls but had no way to
declare tools, and raised a type error when handed any.
- it preserves
<think> content on the final turn while still stripping stale
reasoning from earlier turns. The stock template stripped it from every
assistant message.
Benchmarks and methodology
No standard suite has been run end to end on this checkpoint, and no
leaderboard scores are claimed for it. Everything below was measured directly,
and the numbers that are noisy are labelled as noisy.
HumanEval+ (32 problems, executed). 65.6% at a 1000-token budget vs the
base's 34.4%. At n=32 the standard error on a single proportion is ±8.4 points,
so treat the accuracy difference as suggestive rather than proven — a paired
McNemar test gives p between 0.25 and 0.58. What is not noisy: the base emitted
no code at all on 10 of 32 problems because it was still reasoning when the budget
ran out, 27 of 32 of its responses hit the ceiling, and the 6x output-length
difference holds across every problem. Given 3000 tokens the base recovers to
56.2% — still under this model at a third of the budget. In fairness to the base,
that 56.2% comes from re-running only the problems where it produced nothing, so
it is probably a slight underestimate.
Math is unchanged. On 4 competition problems (AIME 2024, MATH-500-hard, a
counting problem) both this model and the base score 2/4, passing and failing the
same problems. It reaches AIME 2024 Problem 1 (answer 204) in 2592 characters
where the base takes 6699. Four problems is a regression check, not a score.
Identity: 8/12 held-out probes.
What did not work
A separate pass injected ~2,400 examples of coding data — OpenCodeReasoning
traces, execution-verified OpenCodeInstruct solutions, CodeFeedback revision
pairs. It moved HumanEval+ pass@1 by exactly zero (21/32 before, 21/32 after;
five problems gained, five lost). A few thousand examples at LoRA rank 64 shifts
style, not competence. That checkpoint was discarded rather than shipped as an
upgrade, and the finding is published here because it is more useful than
another rounded-up number.
Limitations
- Text only. No image, audio, or video input.
- The base is abliterated, so refusal behaviour is substantially reduced. It will
answer things a safety-tuned model declines. Add your own filtering if your
deployment needs it.
- Answers are terse. On problems that genuinely need exhaustive case analysis
this is a disadvantage versus the base's longer traces, and it is where a full
benchmark run would most likely find a gap.
- Competitive programming and graduate-level science are the weakest areas, and
this checkpoint does not fix them.
- Like most R1-style distills it can occasionally loop on open-ended prompts.
Provenance
Built on
huihui-ai/DeepSeek-R1-Distill-Qwen-7B-abliterated-v2,
an abliterated release of DeepSeek-R1-Distill-Qwen-7B, itself distilled from
Qwen2.5-Math-7B on 800k DeepSeek-R1 samples. That maths-heavy lineage is why the
base arrives strong at reasoning and comparatively untrained at code.
For reference, the published figures for the underlying R1-Distill-Qwen-7B —
measured by others, on the base, not claims about this checkpoint:
Table with columns: benchmark, score| benchmark | score |
|---|
| MATH-500 (pass@1) | 92.8 |
| AIME 2024 (cons@64) | 83.3 |
| AIME 2024 (pass@1) | 55.5 |
| GPQA-Diamond (pass@1) | 49.1 |
| LiveCodeBench (pass@1) | 37.6 |
| CodeForces (rating) | 1189 |
Note the honest shape of those: elite at maths, mid at competitive programming
and graduate-level science. Anyone quoting a LiveCodeBench figure in the 80s for
a 7B is quoting a much larger model.
License
MIT, inherited from DeepSeek-R1-Distill-Qwen-7B. The Qwen2.5 lineage beneath it
is Apache-2.0.