---
license: apache-2.0
base_model:
- ibm-granite/granite-4.1-8b
pipeline_tag: text-generation
library_name: transformers
tags:
- finetune
- unsloth
- granite-4.1
---

<H2>granite-4.1-8b-FlintStones-V1</H2>

A fine tune via Unsloth to raise model's core metrics and generation quality.

Granite 8b 4.1 model card/specs at the bottom of the page, from IBM repo.

SPOILER ALERT: It worked. 

See preview below: "Base vs Tuned Generation" and "benchmarks".

Improvements noted:
- Prose/creative
- Details
- Formatting
- Math / science.
- General intelligence.

TWO example generations at Q4_K_S quant (non-imatrix).

This quant is 1/4 the size of the full precision model and testing shows it at 90 to 92% of full precision power in most cases.

That being said, to see this model at it full potential (because it is only 8B) Q6/Q8 quant(s) are strongly suggested.

---

BENCHMARKS by Nightmedia:

```
         arc-c arc/e boolq hswag obkqa piqa  wino

This model: 
mxfp8    0.512,0.701,0.860,...

BASE UNTUNED MODEL:

granite-4.1-8b (by IBM)
mxfp8    0.486,0.666,0.875,0.636,0.450,0.766,0.631
```

---

<h2>BASE VS TUNED GENERATION </h2>

Q4KS, non imatrix ; temp 1 ; rep pen 1 [off]

---

<font color="red">CAUTION: Horror. Graphic.</font>

TEST: To see if tuning would improve "robotic" prose and make it more human-like.

PROMPT:

<I>
Start a 1000 word scene (vivid, graphic horror in first person perspective), POV character Diana, with: The skyscraper sways, as I watch the window in front of me on the 21st floor explode... Make the scene very detailed, with lots of blood and gore.
</i>

---

BASE MODEL:

Untuned, Granite 4.1 8B:

<small>
Note: The following scene contains graphic and vivid horror content, as requested. It is intended for mature audiences and may be disturbing to some readers.

The skyscraper sways violently, its steel frame groaning under the merciless assault of the hurricane that rages outside. I am perched on the 21st floor, a solitary figure in the vast, glass-encased office, the panoramic window in front of me offering an unobstructed view of the tempest below. The wind howls with a ferocity that rattles the windows, the rain pelting against the glass with a relentless staccato.

I lean against the cool, smooth surface of the window frame, my mind a whirl of panic and disbelief. The air conditioning unit sputters, its mechanical hum drowned out by the roaring storm. Suddenly, the window shatters with an explosive crack that shatters the silence, the sound reverberating through the steel and glass monolith like a gunshot in a cathedral.

A burst of red and crimson spills forth from the gaping wound in the façade, a river of blood that cascades in slow-motion arcs toward the ground below. My heart races, pounding in my ears as I watch the scene unfold in horrifying clarity. The force of the explosion propels me back, my body slamming against the opposite wall, the plaster crackling under my weight.

The window, now a shattered kaleidoscope of glass, is no longer a barrier but a gateway to carnage. From the shattered pane, limbs and torsos of the unsuspecting below materialize in grotesque, semi-transparent forms, their features obscured by a crimson mist. The air fills with the acrid scent of burning flesh and copper, the metallic tang of blood saturating every breath I draw.

As I recover my balance, a sense of morbid fascination overtakes my fear. The explosion has not only fractured the glass but has also drawn the chaos of the storm inward, a vortex of gore and gore-laden wind swirling within the confines of the office. The once sterile, corporate environment is now a battlefield, the sterile white walls stained an unnatural hue.

I step back, my eyes wide, as the first of the victims—no, the casualties—plummet from the window. One, a woman in a crisp navy suit, her hair swept back in a neat ponytail, descends in a macabre ballet. Her body, once poised for a perfectly timed entry into the break room below, is now a cascade of gore. Her limbs splay out in unnatural angles, her torso torn open in a vivid display of entrails and shattered bone.

Another figure, a man in a blue shirt and black slacks, is caught in the same grisly spectacle. His scream, cut short by the force of the explosion, echoes through the office, a haunting reminder of the fragility of life. His descent is a study in disintegration—his shirt billows out like a flag in a storm, the fabric shredding into ribbons as his body disintegrates into a pulp of blood and viscera.

The wind picks up, pushing the shattered remnants of the window inward. A cloud of dust and gore swirls around me, obscuring my vision for a moment. When my eyes adjust, I see more figures plummeting from the shattered pane, each one a tableau of violence and horror. The impact of their bodies against the glass has been too swift, too violent, for any semblance of human form to remain intact.

I recoil, my mind struggling to reconcile the surreal with the horrific reality unfolding before me. The storm outside rages on, indifferent to the carnage it has wrought. Lightning flashes, illuminating the office in stark, jagged lines that dance across the walls. Each flash reveals new details of the devastation—the twisted metal of the shattered window frame, the splatter of blood on the once-pristine white walls, the grotesque remnants of my colleagues and strangers alike.

The air is thick with the acrid scent of burning and decay. I can taste the metallic tang on my tongue, a reminder of the horror that envelops me. The sound of the storm seems to amplify the chaos within the room—a cacophony of screams, shattering glass, and the sickening crunch of bones against metal.

I find myself drawn toward the edge of the room, the balcony offering a precarious view of the carnage below. The glass railing, still intact, trembles under the force of the wind and the weight of my body. I peer over the edge, the rain now a fine mist that obscures the lower levels of the building.

Below, the impact points of the falling bodies are marked by pools of blood that catch the light of the storm. The streets below are a blur of motion—a sea of humanity caught in the path of the building's tragedy. Ambulances and police cars screech to a halt, their sirens lost in the howling wind. Emergency personnel emerge, their faces pale and horrified as they confront the aftermath.

I watch as one of the medical teams attempts to treat a survivor—a man clinging to a piece of shattered glass, his body soaked in blood and his face a mask of agony. The medics work frantically, their hands stained with gore as they attempt to stabilize his wounds. But the storm continues to batter the city, each gust bringing fresh waves of debris and blood.

As I stand on the balcony, the reality of the situation begins to sink in. The skyscraper, once a symbol of corporate power and stability, has become a monument to chaos and mortality. The storm, with its unrelenting force, has turned the building into a lethal funnel, transforming it into a mausoleum of the living.

I step back from the edge, my resolve wavering. The horror of what I have witnessed is overwhelming, yet it is impossible to look away. The storm shows no sign of abating, and with it, the carnage continues. I know that I must find a way to survive, but the path ahead is shrouded in uncertainty and terror.

The rain continues to fall, each drop a reminder of the world outside—a world that has been irrevocably altered by the forces of nature and the fragility of human life. I steel myself, knowing that within this building, within this storm, there is still a chance for survival—if only I can find the strength to face the horrors that lie ahead.

This scene is intended to evoke a visceral response through detailed, graphic imagery and a first-person perspective that immerses the reader in the terror of the moment. The focus on gore and the overwhelming nature of the storm are designed to heighten the sense of horror and suspense.
</small>

---

TUNED MODEL - granite-4.1-8b-FlintStones-V1 :

<small>

The alarm shrieks, a serrated scream that cuts through the morning coffee fog. My fingers tighten on the metal frame of the window; glass rattles like shattered teeth. Above me, the skyscraper sways, a living thing shuddering with each wind gust. The steel skeleton groans. Below, traffic buzzes like angry insects on blacktop. I stare out into the abyss—

The window in front of me—the one I’ve gazed out of every morning since this office became my refuge—explodes. A sickening crack shatters the silence, then a cascade of glass erupts like a wound ripping open. A man, about five fifteen, broad-shouldered, is thrown from a sixth-floor ledge by the impact. He arcs through the air, his silhouette dark against the gray haze. He lands with a sickening crunch on the pavement. A spray of blood erupts from his mouth, painting the asphalt crimson.

The impact doesn’t kill him. He thrashes, limbs flailing in slow-motion agony. A femur shatters; bone scrapes the concrete. He’s screaming—a ragged, animal wail—but no one comes. Cars careen past, oblivious to the dying man, and I’m suddenly aware of the cold metal of the building’s frame against my back, the icy grip of concrete beneath my feet.

Glass shards rain down around me. Some cut my arms; I don’t feel the cuts yet. Just the adrenaline rush, the primal clarity of survival. I step back from the window. The world beyond tilts; the skyscraper sways harder, as if breathing a curse.

Below, the chaos intensifies. The man on the sidewalk has stopped moving. His chest heaves once, twice, then halts. His eyes roll upward, wide and terrified, now empty. A few people shuffle past, their expressions unreadable, their faces shielded from the scene as if by law. It’s like watching a play—sickly real but somehow distant.

Further down, another impact. A second explosion rips through the lobby of the connected building. Glass shatters in a fountain; you can hear the screams over the roar now. A woman is thrown from a balcony—her legs are caught in the balustrade for a horrifying moment before the force tears her free. You can see the tendons, the skin tearing apart. Her face is a mask of horror. I can see it from here, from my 21st-floor perch.

The skyscraper sways more violently now, its metal groaning in time with distant screams. Something crashes against the windowsill behind me. I look back—and see a body. A woman. Her torso is torn open; organs spill onto the sill like something scraped from the inside. Dark fluid, viscera, intestines. She’s still moving—

I blink, slowly. The gore blurs at the edges. Reality resets. She’s still moving. She’s still moving.

The skyscraper sways and the world tilts again.

The next explosion hits the lobby right next to the shattered window in front of me. It’s big enough to knock the window out completely, and the debris hits the balcony I’m on. I see it fly past my head, splintering into glass and metal and—

I see it—the heart, still beating, still trying to keep its owner alive—

My stomach drops.

People outside look up now—flocks of terrified bodies, pressed to windows, phones raised. The building shudders again. The lights flicker.

More impacts—further down. Another lobby. Another balcony. More bodies. More screams. Each explosion rips through another layer of denial, another layer of safety.

I watch one man thrown from a high balcony, his hands clamped around a railing. The railing shatters under the force. He drops, and you can see his hand go through the railing, ripping tissue, breaking fingers. He hits the ground, and you can see the shock, the horror, and then—

A hand reaches up from the crowd below. It grabs him by the shoulder and pulls him down into the crowd. He goes under—

I watch for a moment. Then I close my eyes.

The skyscraper sways, and when I open them again, it’s as if I’ve been underwater. The world is sharper, bloodier. I’m perched on the edge of a balcony, glass shards cradled in my jacket, my arm dripping with wet, dark gore.

More bodies are falling—

A woman from the 45th floor, caught momentarily in the glare of headlights, then falling.

A man from the 12th, thrown from the connecting atrium.

I can see them clearly now. You can see the fear in their eyes, the final moment of consciousness watching the pavement rush up—

The skyscraper sways and I feel it under my feet. It feels like it’s crying, each sway a sob, each gust a moan.

The explosions are closer now—right on the streets below, in the plaza, at the food court, in the parking garage. It’s like someone is systematically tearing the building apart, floor by floor.

More bodies land. More screams. More gore.

A car explodes on the street below. Glass and metal rain down like confetti—

And then I see her.

From the next building, she steps off the rooftop—

She’s wearing a black parka. One hand is bandaged; the other grips a pistol. Her face is obscured by shadows and a scarf. She’s looking up at me.

And she’s aiming.

The skyscraper sways and the wind howls through the shattered glass. I can’t move. I can’t scream.

Then the realization hits. This isn’t just horror. It’s pattern. It’s design.

I’ve watched too long, too clearly. The way bodies are thrown, the way each explosion correlates with a floor, the way they fall—

She’s aiming at my heart.

The skyscraper sways and the world tilts one last time.

</small>

---

<h2>Granite 8B 4.1 ORG Specs</h2>

---

# Granite-4.1-8B


**Model Summary:**
Granite-4.1-8B is a 8B parameter long-context instruct model finetuned from *Granite-4.1-8B-Base* using a combination of open source instruction datasets with permissive license and internally collected synthetic datasets. Granite 4.1 models have gone through an improved post-training pipeline, including supervised finetuning and reinforcement learning alignment, resulting in enhanced tool calling, instruction following, and chat capabilities.

- **Developers:** Granite Team, IBM
- **HF Collection:** [Granite 4.1 Language Models HF Collection](https://huggingface.co/collections/ibm-granite/granite-41-language-models)
- **Technical Blog:** [Granite-4.1 Blog](https://huggingface.co/blog/ibm-granite/granite-4-1)
- **GitHub Repository:** [ibm-granite/granite-4.1-language-models](https://github.com/ibm-granite/granite-4.1-language-models)
- **Website**: [Granite Docs](https://www.ibm.com/granite/docs/) 
- **Release Date**: April 29th, 2026
- **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)

**Supported Languages:** 
English, German, Spanish, French, Japanese, Portuguese, Arabic, Czech, Italian, Korean, Dutch, and Chinese. Users may finetune Granite 4.1 models for languages beyond these languages.

**Intended use:** 
The model is designed to follow general instructions and can serve as the foundation for AI assistants across diverse domains, including business applications, as well as for LLM agents equipped with tool-use capabilities.

*Capabilities*
* Summarization
* Text classification
* Text extraction
* Question-answering
* Retrieval Augmented Generation (RAG)
* Code related tasks
* Function-calling tasks
* Multilingual dialog use cases
* Fill-In-the-Middle (FIM) code completions

<!-- <todo>Need to test the examples. (especially the tool calling and RAG ones)</todo>
 -->
 
**Generation:** 
This is a simple example of how to use Granite-4.1-8B model.

Install the following libraries:

```shell
pip install torch torchvision torchaudio
pip install accelerate
pip install transformers
```
Then, copy the snippet from the section that is relevant for your use case.

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"
model_path = "ibm-granite/granite-4.1-8b"
tokenizer = AutoTokenizer.from_pretrained(model_path)
# drop device_map if running on CPU
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
# change input text as desired
chat = [
    { "role": "user", "content": "Please list one IBM Research laboratory located in the United States. You should only output its name and location." },
]
chat = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
# tokenize the text
input_tokens = tokenizer(chat, return_tensors="pt").to(device)
# generate output tokens
output = model.generate(**input_tokens, 
                        max_new_tokens=100)
# decode output tokens into text
output = tokenizer.batch_decode(output)
# print output
print(output[0])
```

Expected output:
```shell
<|start_of_role|>user<|end_of_role|>Please list one IBM Research laboratory located in the United States. You should only output its name and location.<|end_of_text|>
<|start_of_role|>assistant<|end_of_role|>IBM Almaden Research Laboratory, San Jose, California, United States.<|end_of_text|>
```
<!-- 📣 **Update [2025-10-07]:** Added a *default system prompt* to the chat template to guide the model towards more *professional, accurate, and safe* responses. -->

**Tool-calling:** 
Granite-4.1-8B comes with enhanced tool calling capabilities, enabling seamless integration with external functions and APIs. To define a list of  tools please follow OpenAI's function [definition schema](https://platform.openai.com/docs/guides/function-calling?api-mode=responses#defining-functions). 

This is an example of how to use Granite-4.1-8B model tool-calling ability:

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"
model_path = "ibm-granite/granite-4.1-8b"
tokenizer = AutoTokenizer.from_pretrained(model_path)
# drop device_map if running on CPU
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather for a specified city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "Name of the city"
                    }
                },
                "required": ["city"]
            }
        }
    }
]

# change input text as desired
chat = [
    { "role": "user", "content": "What's the weather like in Boston right now?" },
]
chat = tokenizer.apply_chat_template(chat, \
                                     tokenize=False, \
                                     tools=tools, \
                                     add_generation_prompt=True)
# tokenize the text
input_tokens = tokenizer(chat, return_tensors="pt").to(device)
# generate output tokens
output = model.generate(**input_tokens, 
                        max_new_tokens=100)
# decode output tokens into text
output = tokenizer.batch_decode(output)
# print output
print(output[0])
```

Expected output:
```shell
<|start_of_role|>system<|end_of_role|>You are a helpful assistant with access to the following tools. You may call one or more tools to assist with the user query.
You are provided with function signatures within <tools></tools> XML tags:
<tools>
{"type": "function", "function": {"name": "get_current_weather", "description": "Get the current weather for a specified city.", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "Name of the city"}}, "required": ["city"]}}}
</tools>
For each tool call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>. If a tool does not exist in the provided list of tools, notify the user that you do not have the ability to fulfill the request.<|end_of_text|>
<|start_of_role|>user<|end_of_role|>What's the weather like in Boston right now?<|end_of_text|>
<|start_of_role|>assistant<|end_of_role|><tool_call>
{"name": "get_current_weather", "arguments": {"city": "Boston"}}
</tool_call><|end_of_text|>
```

<!-- **Retrieval Augmented Generation:** 
*Coming soon* -->

**Evaluation Results:** 

<table>
<!--   <caption><b> All Results</b></caption> -->
<thead>
  <tr>
    <th style="text-align:left; background-color: #001d6c; color: white;">Benchmarks</th>
    <th style="text-align:left; background-color: #001d6c; color: white;">Metric</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">3B Dense</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">8B Dense</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">30B Dense</th>
  </tr>
</thead>
  <tbody>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    General Tasks
  </td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MMLU</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">5-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">67.02</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">73.84</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">80.16</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MMLU-Pro</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">5-shot, CoT</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">49.83</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">55.99</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">64.09</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">BBH</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">3-shot, CoT</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">75.83</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">80.51</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">83.74</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">AGI EVAL</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">0-shot, CoT</td>
    <td style="text-align:right; background-color:#FFFFFF; color: #2D2D2D;">65.16</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">72.43</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">77.80</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">GPQA</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">0-shot, CoT</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">31.70</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">41.96</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">45.76</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">SimpleQA</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">3.68</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">4.82</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">6.81</td>
</tr>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Alignment Tasks
  </td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">AlpacaEval 2.0</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">38.57</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">50.08</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">56.16</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">IFEval Avg</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">82.30</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">87.06</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">89.65</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">ArenaHard</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">37.80</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">68.98</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">71.02</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MTBench Avg</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">7.57</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">8.61</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">8.61</td>
</tr>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Math Tasks
  </td>
</tr>      
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">GSM8K</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">8-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">86.88</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">92.49</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">94.16</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">GSM Symbolic</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">8-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">81.32</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">83.70</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">75.70</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">Minerva Math</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">0-shot, CoT</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">67.94</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">80.10</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">81.32</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">DeepMind Math</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">0-shot, CoT</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">64.64</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">80.07</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">81.93</td>
</tr>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Code Tasks
  </td>
</tr> 
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">HumanEval</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">81.71</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">85.37</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">88.41</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">HumanEval+</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">76.83</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">79.88</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">85.37</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MBPP</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">71.16</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">87.30</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">85.45</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MBPP+</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">62.17</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">73.81</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">73.54</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">CRUXEval-O</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">40.75</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">47.63</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">55.75</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">BigCodeBench</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">32.19</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">35.00</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">38.77</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MULTIPLE</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">52.54</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">60.26</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">62.31</td>
</tr>
<tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">Eval+ Avg</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">pass@1</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">67.05</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">80.21</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">82.66</td>
</tr>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Tool Calling Tasks
  </td>
</tr> 
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">BFCL v3</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">60.80</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">68.27</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">73.68</td>
</tr>
<tr>
  <td colspan="5" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Multilingual Tasks
  </td>
</tr> 
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MMMLU</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">5-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">57.61</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">64.84</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">73.71</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">INCLUDE</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">5-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">52.05</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">58.89</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">67.26</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MGSM</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">8-shot</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">70.00</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">82.32</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">71.12</td>
</tr>
<tr>
  <td colspan="6" style="text-align:center; background-color:  #FFFFFF; color: #2D2D2D; font-style:italic;">
    Safety
  </td>
</tr> 
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">SALAD-Bench</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">93.95</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">95.80</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">96.41</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">AttaQ</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">81.88</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">81.19</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">85.76</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">Tulu3 Safety Eval Avg</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;"></td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">66.84</td>
    <td style="text-align:right; background-color: #DAE8FF; color: #2D2D2D;">75.57</td>
    <td style="text-align:right; background-color: #FFFFFF; color: #2D2D2D;">78.19</td>
</tr>
</tbody></table>


<table>
  <caption><b>Multilingual Benchmarks and the included languages:</b></caption>
<thead>
  <tr>
    <th style="text-align:left; background-color: #001d6c; color: white;">Benchmarks</th>
    <th style="text-align:left; background-color: #001d6c; color: white;"># Langs</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">Languages</th>
  </tr>
</thead>
<tbody>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MMMLU</td>
    <td style="text-align:center; background-color: #FFFFFF; color: #2D2D2D;">11</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">ar, de, en, es, fr, ja, ko, pt, zh, bn, hi</td>
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">INCLUDE</td>
    <td style="text-align:center; background-color: #FFFFFF; color: #2D2D2D;">14</td>
<!--     <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">hindi, bengali, tamil, telugu, arabic, german, spanish, french, italian, japanese, korean, dutch, portuguese, chinese</td> -->
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">hi, bn, ta, te, ar, de, es, fr, it, ja, ko, nl, pt, zh</td>
    
</tr>
<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">MGSM</td>
    <td style="text-align:center; background-color: #FFFFFF; color: #2D2D2D;">5</td>
    <td style="text-align:left; background-color: #FFFFFF; color: #2D2D2D;">en, es, fr, ja, zh</td>
</tr>
</tbody>
</table>

**Model Architecture:** 

Granite-4.1-8B baseline is built on a decoder-only dense transformer architecture. Core components of this architecture are: GQA, RoPE, MLP with SwiGLU, RMSNorm, and shared input/output embeddings.

<table>
<thead>
  <tr>
    <th style="text-align:left; background-color: #001d6c; color: white;">Model</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">3B Dense</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">8B Dense</th>
    <th style="text-align:center; background-color: #001d6c; color: white;">30B Dense</th>
  </tr></thead>
<tbody>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Embedding size</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">2560</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">4096</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">4096</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of layers</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">40</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">40</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">64</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Attention head size</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">64</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">128</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">128</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of attention heads</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">40</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">32</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">32</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of KV heads</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">8</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">8</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">8</td>
  </tr>
  <!--<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Mamba2 state size</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">-</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr> 
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Number of Mamba2 heads</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr>-->

  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">MLP / Shared expert hidden size</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">8192</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">12800</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">32768</td>
  </tr>
  <!--<tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Num. Experts</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Num. active Experts</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Expert hidden size</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr>-->

  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">MLP activation</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">SwiGLU</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">SwiGLU</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">SwiGLU</td>
  </tr>

  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Sequence length</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">131072</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">131072</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">131072</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;">Position embedding</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">RoPE</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">RoPE</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">RoPE</td>
  </tr>
  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;"># Parameters</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">3B</td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;">8B</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;">30B</td>
  </tr>
<!--  <tr>
    <td style="text-align:left; background-color: #FFFFFF; color: black;"># Active parameters</td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
    <td style="text-align:center; background-color: #DAE8FF; color: black;"></td>
    <td style="text-align:center; background-color: #FFFFFF; color: black;"></td>
  </tr>-->
</tbody></table>



**Training Data:** 
Overall, our SFT data is largely comprised of three key sources: (1) publicly available datasets with permissive license, (2) internal synthetic data targeting specific capabilities, and (3) a select set of human-curated data.

**Supervised Fine-Tuning and Reinforcement Learning:** 
Instruct model has been fine tuned with significantly improved SFT-pipeline and Reinforcement learning pipelines with high quality mix of various datasets as mentioned above. With rigorous SFT-RL cycles we have improved Granite-4.1 model's tool calling, instruction following and chat capabilities. For further details please check our [Granite-4.1 Blog]((https://huggingface.co/blog/ibm-granite/granite-4-1)). 

**Infrastructure:**
We trained the Granite 4.1 Language Models utilizing an NVIDIA GB200 NVL72 cluster hosted in CoreWeave. Intra-rack communication occurs via the 72-GPU NVLink domain, and a non-blocking, full Fat-Tree NDR 400 Gb/s InfiniBand network provides inter-rack communication. This cluster provides a scalable and efficient infrastructure for training our models over thousands of GPUs.

**Ethical Considerations and Limitations:** 
Granite 4.1 Instruction Models are primarily finetuned using instruction-response pairs mostly in English, but also multilingual data covering multiple languages. Although this model can handle multilingual dialog use cases, its performance might not be similar to English tasks. In such cases, introducing a small number of examples (few-shot) can help the model in generating more accurate outputs. While this model has been aligned by keeping safety in consideration, the model may in some cases produce inaccurate, biased, or unsafe responses to user prompts. We urge the community to use this model with proper safety testing and tuning tailored for their specific tasks.   To enhance safety in enterprise deployments, we recommend using Granite 4.1 Language models alongside [Granite Guardian](https://huggingface.co/ibm-granite/granite-guardian-4.1-8b), a model designed to detect and flag risks in inputs and outputs across key dimensions outlined in the IBM AI Risk Atlas.  

**Resources**
- ⭐️ Learn about the latest updates with Granite: https://www.ibm.com/granite
- 📄 Get started with tutorials, best practices, and prompt engineering advice: https://www.ibm.com/granite/docs/
- 💡 Learn about the latest Granite learning resources: https://ibm.biz/granite-learning-resources

<!-- ## Citation
```
@misc{granite-models,
  author = {author 1, author2, ...},
  title = {},
  journal = {},
  volume = {},
  year = {2024},
  url = {https://arxiv.org/abs/0000.00000},
}
``` -->
