Model reference · open weights

Blaze-SFT

LLMs SurjoLabs Text gen 1 build Open weights 1k dl/mo

Blaze-SFT is an open-weight language model from SurjoLabs. Blaze-SFT (BF16) weighs 97 MB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Blaze-SFT is a 48M parameter causal language model developed by SurjoLabs for text generation tasks.
  • It is the instruction-tuned variant of the base Blaze model, fine-tuned on the Smol-Smoltalk dataset to support basic conversational and chat abilities.
  • The model operates with a context length of 2,048 tokens, supports English, and is released under the MIT license.

Summary of the SurjoLabs/Blaze-SFT model card, 2026-10-01

What it is

Released bySurjoLabs
Released2026-09-01
Parameters48M
VRAM97 MB for the weights

What it runs on

Memory and cards for Blaze-SFT (BF16)

97 MBweights, file size
14 MBcache per 1K tokens
459 MBruntime overhead, at least
2,048 tokenscontext max
CardRequests at onceContext maxMemory
2K each
RTX 3060 12 GB376all 2K11.6 GB
RTX 4060 Ti 16 GB505all 2K15.4 GB
RTX 3090 24 GB778all 2K23.4 GB
RTX 4090 24 GB776all 2K23.4 GB
RTX 5090 32 GB1000+all 2K31.0 GB
L40S 48 GB1000+all 2K44.0 GB
A100 80 GB1000+all 2K78.2 GB
H100 80 GB1000+all 2K78.1 GB
RTX PRO 6000 Blackwell 96 GB1000+all 2K93.8 GB
DGX Spark (GB10) 128 GB unified1000+all 2K107 GB
H200 141 GB1000+all 2K138 GB
B200 180 GB1000+all 2K176 GB
Memory needed at each load
Requests at once2K tokens each
1585 MB
5702 MB
8790 MB
161.0 GB
321.5 GB
642.4 GB

One card, with vLLM's small-card settings.

From the model card

What SurjoLabs says about Blaze-SFT

Read the model card

Blaze-SFT is the instruction-tuned variant of SurjoLabs/Blaze, a 48.3M parameter causal language model.

Blaze-SFT was full-parameter fine-tuned on the Smol-Smoltalk dataset at an extended context window of 2,048 tokens (doubled from the 1,024-token base context). It scores 14.84 on the Intelligence Index, keeping over 96% of its base reasoning capabilities while adding basic conversational and chat ability.

This release also fixes critical bugs in modeling_blaze.py so the model actually generates text properly with Hugging Face generate(), fixing broken single-token KV caching, cache crashes in Transformers 5.x, and PCIe GPU-to-CPU stalls.


Architecture Specifications

ParameterValue
Total Parameters48,251,136
Physical Layers14 (1 prelude + 12 recurrent + 1 coda)
Recurrent Passes2 (effective computational depth: 26 layers)
Hidden Dimension512
Intermediate Size1,536
Attention Heads8 Query, 4 Key-Value (2:1 GQA)
Head Dimension64
Vocabulary Size8,192 (tied embeddings)
Context Length2,048 tokens
Fine-Tuning DatasetHuggingFaceTB/smol-smoltalk

Bug Fixes in modeling_blaze.py

We fixed several issues in the original modeling code to make it ready for real use:

  • Fixed KV-Cache Decode Bug: During single-token generation (q_len = 1, kv_len > 1), is_causal was previously set to True in PyTorch SDPA. This caused the model to only attend to token 0 and masked out all previous tokens, completely breaking text generation. We set is_causal = False for decode steps so it correctly attends to the full cached history.
  • Fixed Transformers 5.x DynamicCache Crash: Calling past_kv.update() on recurrent passes threw an IndexError: list index out of range because slots 15 to 26 were never allocated. We now pre-allocate missing slots dynamically and track recurrent passes cleanly via _current_pass.
  • Generation API & NoneType Crash: Fixed prepare_inputs_for_generation to slice position_ids, cache_position, and input_ids cleanly. Handled num_logits_to_keep = None to stop generate() from crashing with a TypeError.
  • Eliminated PCIe GPU-to-CPU Stalls: Removed a synchronous torch.all(attention_mask == 1) check inside the attention layer that was stalling the GPU 26 times per token. Replaced memory-allocating repeat_interleave() with zero-copy view expansions, and added native FlashAttention support.
  • Zero Weight Degradation: Weights were not modified or retrained during these code fixes. Logit parity check confirms exactly 0.00000000 difference against original checkpoints.

Benchmark Results

Evaluated 0-shot using normalized accuracy (acc_norm):

BenchmarkBlaze (Base)Blaze-SFTMetric
PIQA62.51%61.75%acc_norm
ARC-Easy41.84%41.29%acc_norm
ArithMark-3.037.80%37.90%acc_norm
HellaSwag31.84%31.86%acc_norm
ARC-Challenge24.91%24.23%acc_norm
Intelligence Index15.4514.84Normalized Composite

Intelligence Index Calculation

The Open SLM Intelligence Index adjusts each raw score above the random-chance floor:

Normalized Score = 100 * (score - chance) / (100 - chance)

  • HellaSwag (score: 31.86%, chance: 25, weight: 1.00) -> 9.14
  • Combined ARC (score: 32.76%, chance: 25, weight: 1.00) -> 10.35
  • PIQA (score: 61.75%, chance: 50, weight: 1.00) -> 23.50
  • ArithMark-3.0 (score: 37.90%, chance: 25, weight: 0.65) -> 17.20

Intelligence Index = (9.14 + 10.35 + 23.50 + 0.65 * 17.20) / 3.65 = 14.84


Usage

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "SurjoLabs/Blaze-SFT"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

messages = [
    {"role": "user", "content": "Explain why the sky is blue in two simple sentences."}
]

prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=64,
    do_sample=True,
    temperature=0.7,
    top_p=0.9,
    eos_token_id=tokenizer.eos_token_id,
)

response = outputs[0][inputs.input_ids.shape[1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

Limitations

  • Parameter Size: At 48.3M parameters, Blaze-SFT is built for ultra-lightweight, edge-device tasks. It is not meant for complex multi-step reasoning, advanced math, or heavy factual knowledge. We aim to finetune this model in order to test downstream capability of the architecture.
  • Hallucinations: Like any model of this size, it can generate confident-sounding incorrect statements.

License

MIT

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms