AhoosAI β€” Nimbus 1.1 Prime-EE

The first model of AhoosAI's own.
Better for everyone, not only for code.
benchmarks Β· models Β· ahoos-ai.site


Nimbus 1.1 Prime-EE

A QLoRA adapter for Qwen/Qwen2.5-Coder-7B-Instruct, trained on behaviour rather than on code the base model had already seen.

It is not trying to make the model a better programmer. The base is already a good one. It is trying to fix the things a good programmer gets wrong by habit: hardcoding dir="ltr", reaching for margin-left where margin-inline-start belongs, shipping a form control with no <label>, writing a Dockerfile that runs as root.

It answers in the language you wrote in, and it is at home in Persian β€” a right-to-left page that needs no fixing afterwards, and an answer that does not slip back into English halfway through.

Public benchmarks

Run with lm-evaluation-harness. Beside each model is the figure its own maker published.

score
IFEval 52.3 prompt-level, strict
HumanEval 61.6 pass@1, greedy
MBPP 67.2 pass@1, 3-shot

These were not measured under the same conditions β€” every maker uses its own harness and its own settings β€” so read the tables below as context rather than as a ranking.

HumanEval pass@1
Qwen2.5-Coder-32B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 92.7
o1-preview β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 92.4
Claude 3.5 Sonnet β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 92.0
GPT-4o β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 90.2
Qwen2.5-Coder-7B (our base) β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 88.4
Gemini 1.5 Pro β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 84.1
DeepSeek-Coder-6.7B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 78.6
Llama 3.1 8B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 72.6
Nimbus 1.1 Prime-EE β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 61.6
MBPP pass@1
Qwen2.5-Coder-32B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 90.2
Qwen2.5-Coder-7B (our base) β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 83.5
GPT-4o β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 81.4
Llama 3.1 8B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 72.8
Nimbus 1.1 Prime-EE β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 67.2
DeepSeek-Coder-6.7B β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 65.4

Our base publishes 88.4 on HumanEval and the same weights with this adapter scored 61.6 here. The two were taken differently: the published one asks the model as you would in a chat and reads the code out of its answer, ours asks it to continue a half-written function. A model tuned for conversation does worse at the second, adapter or no adapter. One run settles it β€” the same harness and the same settings with the adapter switched off β€” and until that exists, 61.6 is a number from this setup rather than a verdict.

IFEval reproduces exactly: 0.5231 and 0.6163 on two machines days apart, which makes it a property of the model rather than of the afternoon.

What it changes

105 tasks, each with a machine-checkable rule, run against the same base with the adapter switched on and off. Greedy, 400 new tokens, the production system prompt for each task. This one is a comparison β€” both sides, same tools, same day.

area before after
frontend β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 9/20 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 15/20 +6
backend β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 14/20 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 15/20 +1
debugging β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 19/20 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 19/20 0
language β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 24/25 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 24/25 0
image specs β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 18/20 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 15/20 βˆ’3
suite base adapter
language 24/25 24/25 β€”
specialists 60/80 64/80 +5.0%
all 84/105 88/105 +3.8%

The gain is concentrated where the base was weakest β€” frontend went from 45% to 75% β€” and nothing moved at the ceiling, where a fine-tune that learned the wrong thing shows up first.

Ten tasks changed from fail to pass:

fe-rtl-logical-properties, fe-rtl-direction, fe-logical-inset, fe-accessibility, fe-image-alt, fe-form-label, fe-dialog-escape, be-docker-hardening, be-docker-nonroot, lang-spanish-docker

They are three behaviours, not ten: RTL and logical CSS, accessibility, and container hardening.

Known regression, stated plainly

Six tasks went the other way, and three of them are image-spec tasks β€” the one area with no training data behind it. The image behaviour set was deferred and the score shows the cost. Until image data is in the mix, expect this adapter to trade image-spec ground for frontend ground.

If image prompt/spec work is your use case, measure before adopting.

Also worth knowing

Both arms were capped at 400 new tokens and a good share of answers stop mid-sentence. The cap is shared, so the comparison holds, but the absolute pass rates are a floor rather than a measure of what either model can do.

The 105 tasks are this project's own suite, not a public benchmark. The full run β€” every prompt, every answer, every check, both arms β€” is published alongside the code so the numbers can be disagreed with.

Training

base Qwen/Qwen2.5-Coder-7B-Instruct, 4-bit nf4, double quant
method QLoRA, r=16, alpha=32, dropout 0.05
target modules q, k, v, o, gate, up, down
trainable 40,370,176 of 7,655,986,688 (0.53%)
data 3,462 rows β€” 2,262 behaviour, 1,200 mined public code
epochs 1 (210 steps, effective batch 16, seq 2048)
lr 2e-4, cosine

One epoch is measured, not assumed. Held-out loss over the run: 0.7029 at step 50, 0.6621 at 100, 0.6433 at 150, 0.6389 at 200, 0.6391 at 210. Each interval bought less than half of the one before it and the last ten steps bought nothing.

The public half is a regulariser, not a teacher β€” it keeps general coding ability from drifting while the behaviour rows do the work. It comes from bigcode/self-oss-instruct-sc2-exec-filter-50k (ODC-BY) and microsoft/orca-agentinstruct-1M-v1 (CDLA-Permissive-2.0), language-balanced across Python, C++, JavaScript, Java and TypeScript.

Use

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch

base = "Qwen/Qwen2.5-Coder-7B-Instruct"
tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(
    base,
    quantization_config=BitsAndBytesConfig(
        load_in_4bit=True, bnb_4bit_quant_type="nf4",
        bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True),
    device_map="auto",
)
model = PeftModel.from_pretrained(model, "AhoosAI/nimbus-1-1-prime-ee")
model.eval()

It was trained under this system prompt and expects it:

You are Nimbus, built by Ahoos Model Studio. You write correct, complete, runnable code and explain only what the reader needs. State plainly when something will not work.

The adapter arm generates roughly 1.9x slower than the base at batch 1, which is the cost of the LoRA matmuls at every layer and not a defect.

Trademarks

Model names and figures above belong to their respective owners and appear for comparison only. Nothing here is endorsed by or affiliated with any of them.


Built by AhoosAI.

Downloads last month
70
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for AhoosAI/nimbus-1-1-prime-ee

Base model

Qwen/Qwen2.5-7B
Adapter
(787)
this model