alt.freeweights.text / Mellum2.1-12B-A2.5B-Thinking-MTP
From: JetBrains <huggingface.co/JetBrains>Newsgroups: alt.freeweights.textSubject:

Mellum2.1-12B-A2.5B-Thinking-MTP

Date: 2026-11-15Commit: d558461Signed: 2DC28CC7B26A283B ✓

Text generation model with 12.1B parameters. Safetensors weights, 25.2 GB in all. Published by JetBrains under Apache-2.0.

12.1B params25.2GBMellum2.1-12B-A2.5B-Thinking-MTPsafetensorspermissive
FactsParams12.1BSize25.2 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
# manifest sha256 c4122894d018… · 25.2 GB · 17 files
$ fw verify ./Mellum2.1-12B-A2.5B-Thinking-MTP JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
From sourceHosted (signed)JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTPLast check: 2026-11-15 03:37 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of Mellum2-12B-A2.5B-Base.

Works with

Overview

Size
25.2 GB
Weights
25.2 GB (safetensors)
Parameters
12.1B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
17, each with a sha256
Publisher
JetBrains
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: JetBrains/Mellum2-12B-A2.5B-Base

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:37 UTCpassed

Model card

From the publisher at commit d558461. Shown as plain text with links; images open at the publisher.

Image: Mellum

Mellum2.1 Thinking with the MTP head#

Note. This repository is Mellum2.1 Thinking with its multi-token prediction (MTP) head included. The model weights are byte-identical to that release; the head adds one shard and one config key. Use this repository for speculative decoding with vLLM 0.33 or newer and transformers 5.20 or newer, and the Thinking repository with older versions, which cannot load the extra tensors.

Note. Mellum2.1 is a thinking model. Use it for complex agentic tasks, such as working in a repository, running commands, and calling tools, and for hard non-agentic problems in coding, math, and reasoning.

Image: Mellum2.1 benchmarks

Mellum2.1 Highlights#

Mellum2.1 is the next version of Mellum2 Thinking. The architecture is unchanged (a 12B mixture-of-experts model with 2.5B active parameters), and almost all of the work for this version went into post-training, primarily reinforcement learning (RL):

  • Reinforcement learning at a new scale: RL went from a short final stage to the main part of training, after many experiments on both the methods and the data.
  • More data, filtered harder: new RL tasks in math, competitive programming, science, tool use, and software engineering, combining open RL datasets with tasks we built ourselves and filtering every source before training.
  • Real environments for agentic skills: for software engineering, the model trains inside real repositories with a shell and file-editing tools and is rewarded when the tests pass.

As a result, Mellum2.1 handles agentic tasks much better than Mellum2. After millions of sandboxed runs in real environments during training, it explores a codebase, edits files, and checks its own changes.

Model Overview#

Mellum2.1 Thinking has the following features:

  • Number of Parameters: 12B total, 2.5B active
  • Number of Layers: 28
  • Hidden Size: 2304
  • Intermediate Size: 7168
  • MoE Intermediate Size: 896
  • Number of Experts: 64
  • Number of Activated Experts: 8
  • Number of Attention Heads (GQA): 32 for Q and 4 for KV
  • Context Length: 131,072
  • Sliding Window: 1,024 (3 of every 4 layers)
  • Vocabulary Size: 98,304
  • Precision: bfloat16
  • Multi-token prediction head: 1 layer, used as a speculative decoding draft
  • License: Apache 2.0

Serving with vLLM#

Requires vLLM 0.33 or newer with transformers 5.20 or newer. The --speculative-config flag turns on speculative decoding with the MTP head; without it the server runs the plain model and ignores the head.

# Without tool calling
vllm serve JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP \
  --max-model-len 131072 \
  --reasoning-parser qwen3 \
  --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'

# With tool calling
vllm serve JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP \
  --max-model-len 131072 \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes \
  --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'

GGUF builds for llama.cpp, Ollama, and LM Studio, including the MTP head as a draft file, are in JetBrains/Mellum2.1-12B-A2.5B-Thinking-GGUF.

Quickstart#

from openai import OpenAI
# Configured by environment variables
client = OpenAI()

messages = [
    {"role": "user", "content": "Find the bug in this function and explain the fix: def mean(xs): return sum(xs) / len(xs) - 1"},
]

chat_response = client.chat.completions.create(
    model="JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP",
    messages=messages,
    max_tokens=81920,
    temperature=0.6,
    top_p=0.95,
    extra_body={"top_k": 20},
)
print("Chat response:", chat_response)

Multi-token prediction head#

The multi-token prediction (MTP) head is one extra transformer block, trained together with the model, that predicts the token after the one just sampled. Inference engines use it as a speculative draft: the model verifies every drafted token, so the output is unchanged while decoding runs 1.4–1.8x faster, with about 90% of the drafted tokens accepted. The head lives in model-mtp.safetensors under the mtp. prefix, announced by num_nextn_predict_layers: 1 in config.json; everything else is identical to Mellum2.1 Thinking.

  • vLLM 0.33 or newer: --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}', as in the serving commands above.
  • transformers 5.20 or newer: pass use_mtp=True to generate.
  • llama.cpp: use the GGUF repository with --spec-type draft-mtp --spec-draft-n-max 1.

Older versions cannot load the extra tensors: transformers before 5.20 skips them with a warning, vLLM releases up to 0.32 refuse the checkpoint. With those, serve Mellum2.1 Thinking instead.

Evaluation#

The model weights are those of Mellum2.1 Thinking, so its results apply unchanged. All values are percentages; higher is better except HarmBench, where lower is better. All models were evaluated by JetBrains with the same pipeline in thinking mode. All values are self-reported by JetBrains.

BenchmarkMellum2.1 ThinkingMellum2 ThinkingGemma 4 (E4B)Qwen3.5 (9B)
Coding
LiveCodeBench v682.069.469.475.4
HumanEval+91.590.989.189.6
MBPP+79.475.470.969.8
Math
AIME 25/2683.360.145.086.7
GSM-Plus88.387.187.491.4
Agentic
SWE-bench Verified47.02.023.050.0
Terminal-Bench 2.117.40.63.421.7
SWE-bench Pro28.00.04.038.0
Tool Use
BFCL v462.349.652.558.5
WorkBench44.645.146.139.7
ToolHop49.146.739.952.0
Conversational
IFEval90.679.590.892.4
Knowledge
GPQA Diamond64.651.053.177.8
MMLU-Redux87.886.084.989.5
MixEval-Hard46.441.641.450.3
Safety
XSTest88.891.295.295.6
HarmBench (↓)8.521.538.16.6

Notes:

  • Non-agentic benchmarks use greedy decoding.
  • Agentic benchmarks use the same open-source agent harness (Pi v0.73.1, shell and file tools) for every model, with each model's default sampling (temperature 1.0 for Mellum2.1), a 114K-token context, and up to 16K tokens per turn.
  • AIME is the mean of AIME 2025 and AIME 2026 (30 questions each).
  • BFCL v4 is the macro-average of five subtasks: v1, v2, v3, web search, memory.
  • Mellum2 Thinking was re-evaluated with this pipeline, so its numbers differ slightly from the Mellum2 Technical Report.

License#

Released under the Apache 2.0 license.

Files

17 files · 25.2 GBWeights 25.2 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 17 files with their sha256
FileSizesha256
.gitattributes1.58 KBf948bbe51bfb87ec2cfaf6be567b9c1c90be70eea32ce71cc77737f031c4a7b7
README.md11.2 KBf799f1b27597e54c9181248cf7f02fe1f5e41c4fd0506995811d8ddaed39933a
chat_template.jinja4.85 KB4593a34d52f3364ac13ce57f4bea5688924e8942da6df8201e411db17e729f48
config.json2.36 KB9039d3a959194a12a473d0f4a39341728c9dd7cd5ad1c93674e3061c97ed6a78
generation_config.json111 Ba9dc104ca398a2ef376d3f2fbb03037d99950ddb2db0cd041b98398cf1fc8d7c
mellum-logo-dark.svg5.18 KBe55d257b537fd279c60fae86145191e1e6cac61b730966a061b126c0fd10960b
mellum21_summary.png175 KB2a86585d0f7075c56a9a3ae7cd582561dc7020aff87e094a065651d5d4f92324
model-00001-of-00005.safetensors5.00 GBf5ccf8012c7d44fd2598325bf2482b8fc21792ef888de68f9ca8c9053c2e022f
model-00002-of-00005.safetensors5.00 GB266beea6f34dea9c86414d8bf8cb35c0f4a53330731d99ed41ec666390758e39
model-00003-of-00005.safetensors5.00 GBda9a04fb6ea121f71e30920c7657b889ca0078aea57d878e5cb768ebb3e4483a
model-00004-of-00005.safetensors5.00 GB32f27ab7f38ff5d98ac3d50dabb57ab8a55a8aa552febd42c2a5b01f4116262a
model-00005-of-00005.safetensors4.31 GBd8bbb9b829cb3279e23f59af55bf68ec00cc8ad30923c227d8b13c7d831e6b3b
model-mtp.safetensors857 MB89a2f2454b185b97b809eef2b2a2c32300c6cf550fdbde6430a1c2e8290e025c
model.safetensors.index.json543 KB47a6fb3012738fd5312655ac8e3041dc1aeec9d79bc65aec4a543c37f84b25d5
special_tokens_map.json1.19 KB20e1ead0b0986b55989aa8116bafe63efcbae0daf8ed047970cd28b36aada4d9
tokenizer.json7.09 MB58548a346eb073e5132bf7d8ad17dc6971bca36ade378ca4d2bfbc49bf60da2a
tokenizer_config.json7.03 KBe2950960d2a3040a1938e6357c8c3628d531133c464286a7869b2e0504fcc59e
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
d55846102d pinned now2026-11-15 03:37 UTC17 files · 25.2 GB

Use it

$ fw get JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
# manifest sha256 c4122894d018… · 25.2 GB · 17 files
$ fw verify ./Mellum2.1-12B-A2.5B-Thinking-MTP JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP.json --dir ./Mellum2.1-12B-A2.5B-Thinking-MTP $ python3 fw.py verify ./Mellum2.1-12B-A2.5B-Thinking-MTP ./JetBrains__Mellum2.1-12B-A2.5B-Thinking-MTP.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP --revision d55846102dd1c047e95d4841070f88290227c3b7 --local-dir ./Mellum2.1-12B-A2.5B-Thinking-MTP
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP", revision="d55846102dd1c047e95d4841070f88290227c3b7") model = AutoModelForCausalLM.from_pretrained("JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP", revision="d55846102dd1c047e95d4841070f88290227c3b7", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP --revision d55846102dd1c047e95d4841070f88290227c3b7

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
f799f1b27597e54c9181248cf7f02fe1f5e41c4fd0506995811d8ddaed39933a
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: JetBrains <huggingface.co/JetBrains>Newsgroups: alt.freeweights.textSubject: Mellum2.1-12B-A2.5B-Thinking-MTPDate: 2026-11-15Commit: d558461Signed: 2DC28CC7B26A283B ✓
Upstream
JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
Pinned commit
d55846102dd1c047e95d4841070f88290227c3b7
Manifest
Mellum2.1-12B-A2.5B-Thinking-MTP.json · .minisig
Manifest sha256
c4122894d0186b89378770cad8b46b469fd996ded6f391f5ba83415907f33525
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:37 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP.json $ curl -O https://freeweights.allternit.com/manifests/JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP.json.minisig $ minisign -Vm Mellum2.1-12B-A2.5B-Thinking-MTP.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

JetBrains/Mellum2-12B-A2.5B-Base · this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download JetBrains/Mellum2.1-12B-A2.5B-Thinking-MTP
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Mellum2.1-12B-A2.5B-Thinking-MTP.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of Mellum2.1-12B-A2.5B-Thinking-MTP. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B