Hardcore AI

Models   |   Nova-1.1-0.8B   |   Nova-1-0.8B   |   Discussions


Hardcore AI

Hardcore AI is a non-profit research group building compact, openly licensed language models intended for deployment rather than demonstration. Our work concentrates on function calling: assistants that invoke tools in whichever protocol is declared at inference time, and that produce no call at all when no tool applies. We target bilingual English/Russian interaction and hardware that a single developer already owns.

Every release is a standalone BF16 checkpoint that loads in stock transformers, requires no adapter infrastructure, and is published under Apache-2.0.

AI & ML Interests

Open Releases

Model Parameters Base Description
Nova-1.1-0.8B 0.8B Nova-1-0.8B Current release. Pair-tuned against spurious tool calls on plain-answer prompts, with clean XML termination.
Nova-1-0.8B 0.8B Qwen3.5-0.8B First open release. Function calling and everyday assistance in English and Russian.

Both checkpoints are ~2 GB in BF16 and run on a single 6 GB consumer GPU or on CPU.

Highlights

Evaluation

Tool-use suite — 100 cases (EN+RU), identical prompts across checkpoints, greedy decoding:

Metric Qwen3.5-0.8B Nova-1-0.8B Nova-1.1-0.8B
Overall 55.0% 74.0% 90.0%
Correct call when a tool applies (70) 58.6% 88.6% 91.4%
No call when no tool applies (30) 46.7% 40.0% 86.7%
Spurious-call rate (lower is better) 53.3% 60.0% 13.3%

Accuracy by calling protocol, Nova-1.1-0.8B: JSON 89.2%, XML 95.2%, plain-text 85.7%.

Knowledge spot-checks, identical 0-shot greedy protocol on both Nova checkpoints (internal A/B, subsampled public test sets): GSM8K 22.0% → 26.0% (n=100), ARC-Easy 77.3% (n=150). No regression against Nova-1.0.

Training

Quickstart

from transformers import AutoModelForCausalLM, AutoProcessor

model_id = "HardcoreAI/Nova-1.1-0.8B"

model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="bfloat16", trust_remote_code=True)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)

SYSTEM = (
    "You are a virtual assistant developed by Hardcore AI. You assist with day-to-day "
    "tasks, are helpful, polite and concise, and respond in the same language as the user."
)

messages = [
    {"role": "system", "content": SYSTEM},
    {"role": "user", "content": "What is the capital of Australia?"},
]

text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=128)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
# The capital of Australia is Canberra.

Function calling, JSON protocol:

messages = [
    {
        "role": "system",
        "content": SYSTEM + "\n\nYou have access to tools: calculator(expression), get_weather(city). "
        'Reply with ONLY a JSON object: {"name": "tool_name", "arguments": {"param": "value"}}.',
    },
    {"role": "user", "content": "What is 45 plus 12?"},
]
# -> {"name": "calculator", "arguments": {"expression": "45+12"}}

Note: Nova inherits the Qwen3.5 reasoning backbone. Thinking mode should be disabled at inference (--reasoning off in llama.cpp, a pre-closed thinking block in Ollama, or a system prompt that forbids reasoning in transformers) — visible reasoning traces degrade both latency and tool-call correctness.

Roadmap and Collaboration

The Nova assistant line continues: additional sizes and capabilities are in development. Questions, bug reports and collaboration requests are handled through the discussion tab of the relevant model repository.

License

Models are released under Apache-2.0, consistent with their base model. See the LICENSE file in each repository for details.