IBM released Granite 4.2 on 25 August as three dense, decoder-only reasoning models — 3 billion, 8 billion, and 30 billion parameters — under Apache 2.0. Hugging Face, Ollama, and GitHub all have the files. Every size can think, not-think, or spend a short low-effort budget on an easy question. That switch is in the chat template.

IBM's Hugging Face write-up says the family was pre-trained from scratch on roughly 15 trillion tokens. The 8B and 30B then went through an agentic reinforcement-learning block: software engineering, terminal work, and search, inside real sandboxed environments. The 3B takes the foundational path and the thinking switch, without that extra block.

The dated posts are IBM Research's Granite 4.2 blog and the Hugging Face technical walk-through, both 25 August, authors listed as the Granite Team. Those two documents are the source, not a third-party crown. Three dense decoder-only reasoners. 3B, 8B, 30B. Apache 2.0. Weights on Hugging Face, Ollama, and GitHub. Native reasoning with a thinking switch. That is the drop.

IBM ships Granite 4.2 as three dense Apache reasoners
IBM Research / Wikimedia Commons (CC BY 3.0)Download

IBM Granite catalog on a desk
A dark monitor on a desk showing an IBM Granite Model Catalog, dense cards on screen, a spiral notebook marked Granite, an IBM mug, blue-lit IBM racks behind. No faces.

The catalog in the photograph is the Granite shelf, not the 4.2 cards. The screen shows earlier dense Instruct and Base parts — Granite 3.1 8B, 2B, 1B, and a 3.0 8B Base — tagged dense, with 128K on the larger cards. The photograph is branding and the word dense on a monitor, not a 25 August model list. The 25 August list is 3B, 8B, and 30B, all decoder-only, all dense, all reasoners. Dense here means every token runs through all of the parameters. IBM said so in the technical post. Mixture-of-experts is the other architecture. Granite 4.2 is not that architecture.

Pre-training is from scratch on roughly 15 trillion tokens. Five phases, per the Hugging Face write-up. Phases 1 and 2 are foundational. Phases 3 and 4 anneal toward higher-quality data. Phase 5 is long-context training and is the step that extends the window to 512K tokens. Native context is 128K. The 512K figure is the long-context extension, not the default serving length. Keep both numbers. 15 trillion is IBM's token count. A sixth phase is not in the write-up.

Supervised fine-tuning sits on that base. Then a multi-stage reinforcement-learning pipeline. The Hugging Face post names the method as asynchronous GRPO, Group Relative Policy Optimization, no separate value network. Foundational RL — verifiable rewards, skill boosters — runs on all three sizes. The agentic block does not. Software engineering, then terminal, then search, in that order, inside real sandboxes, not simulated ones. OpenHands is the named harness on the SWE stage. Harbor and Terminus-2 are the named harness on the terminal stage. Search uses live web-search tool calls and an LLM judge on the final answer. Those names are IBM's. The 8B and the 30B climb that ladder. The 3B stops before it. RLHF, preference and safety, is the last stage on every size.

That size split is why the vendor table has NA in some cells. The 3B is a foundational-RL model with the thinking switch. It was not put through the SWE, terminal, and search block. IBM's own table marks SWE-Bench Verified and Terminal-Bench 2.1 as NA for the 3B. NA prints as NA. A 3B coding score is not back-filled.

A terminal session against IBM Research racks
IBM Research AI Hardware Center racks with blue geometric lighting and an open cabinet of blue cables, a terminal overlay running granite-3.1-8b-instruct on dense versus mixture-of-experts. No faces.

The terminal still is an older dense Instruct, granite-3.1-8b-instruct, answering a question about dense models versus mixture-of-experts. Input tokens 1,834, output 2,048, latency 2.73 seconds on that overlay. Those overlay numbers are the still, not a 4.2 bench. The useful sentence in the frame is the definition: a dense model processes every input token with all of its parameters. That is the 4.2 family. 3B, 8B, 30B, decoder-only, Apache 2.0. The racks behind the overlay are labelled IBM Research AI Hardware Center. No face in the aisle.

IBM and the Hugging Face technical post report the 30B at 57.00 on SWE-Bench Verified and 29.24 on Terminal-Bench 2.1. The 8B is 47.67 and 20.56. AIME25 is 89.17 on the 30B, 86.67 on the 8B, 78.33 on the 3B. Those are the company's numbers. A crown is not invented from a vendor table. The rest of IBM's scoreboard is not reprinted. SWE-Bench Verified, Terminal-Bench 2.1, AIME25. Three rows.

SWE-Bench Verified is the software-engineering row. 57.00 on the 30B. 47.67 on the 8B. The gap is 9.33 points. Both of those sizes went through the agentic RL block in real repository sandboxes, tests run, hidden tests as the reward. The 3B did not. NA. Terminal-Bench 2.1 is the shell row. 29.24 on the 30B. 20.56 on the 8B. The gap is 8.68 points. Same rule: 8B and 30B trained in a live terminal harness; 3B did not; NA on the 3B cell. Those two benches are the agentic-RL sentence made into scores. They are also IBM's scores.

AIME25 is the row that includes the 3B, because math sat on the foundational-RL path that all three sizes walked. 89.17 on the 30B. 86.67 on the 8B. 78.33 on the 3B. The 8B is 2.50 points behind the 30B. The 3B is 10.84 points behind the 30B and 8.34 behind the 8B. Pass@1, on IBM's chart. A 3B dense reasoner at 78.33 on AIME25 is the number that justifies shipping the small one without the agentic block. It thinks. It does not have a SWE-Bench Verified cell. Those are different jobs.

The chat template is where the product lives. enable_thinking=True for chain-of-thought. enable_thinking=False for a direct answer, with an empty think block. low_effort=True for a short reasoning budget on an easy question. Hugging Face printed sample prompts: strawberry-r for thinking, capital of France for not-thinking, 2+2 for low-effort. Native tool calling uses the OpenAI function-calling shape, so a vLLM or SGLang server emits tool calls without a second glue layer. The technical post names both serving stacks. OpenAI-compatible endpoint. Tools defined as functions. That is how a workshop loads a 25 August file and points an agent harness at it.

Context is 128K native, sequence length 131,072 in the architecture table, long-context extension to 512K from phase 5. Quantized variants are in the drop: FP8, NVFP4, MXFP4, and a GGUF set, converted for vLLM and, on the GGUF side, llama.cpp. Those four names were in IBM's own packaging list. A fifth precision is not added here. Apache 2.0 is the licence on all three sizes. Hugging Face, Ollama, and GitHub are the shelves.

The 30B got a second SFT phase the others did not, still on IBM's account: agentic coding upsampled, about one extra epoch, lower learning rate. Then the same agentic RL ladder as the 8B. That is the training reason the 30B leads 57.00 to 47.67 on SWE-Bench Verified and 29.24 to 20.56 on Terminal-Bench 2.1. It is not an independent lab result. It is the company's table next to the company's recipe. Both belong on the page. The table is not a medal.

IBM published a wider table. The three rows named here are SWE-Bench Verified, Terminal-Bench 2.1, AIME25. 57.00 and 29.24 on the 30B. 47.67 and 20.56 on the 8B. 89.17, 86.67, 78.33 on AIME25 for 30B, 8B, 3B. NA on the 3B for the two agentic coding benches. Those are the numbers. The architecture is dense. The licence is Apache 2.0. The date is 25 August. The files are on the usual shelves.

Granite 4.2 showed up as three dense reasoners a workshop can actually load. 3B, 8B, 30B. Think, not-think, low-effort, in the template. 15 trillion tokens from scratch. Agentic RL on the 8B and the 30B, in sandboxes, for software engineering, terminal, and search. Foundational path on the 3B. 57.00, 29.24, 89.17 on the 30B for the three printed benches. 47.67, 20.56, 86.67 on the 8B. 78.33 on AIME25 for the 3B, and NA where the agentic block never ran. IBM's numbers. Hugging Face and GitHub for the weights. A king is not crowned from a vendor table. The dense family landed, under Apache 2.0, on 25 August.