# Granite

[IBM Granite](https://www.ibm.com/granite) is IBM's family of enterprise-focused language models. Granite 3.x models are trained on a mix of code and language data and are optimized for enterprise tasks including summarization, classification, and RAG. PowerLM (IBM Research) also uses this architecture.

:::{card}
| | |
|---|---|
| **Task** | Text Generation |
| **Architecture** | `GraniteForCausalLM` |
| **Parameters** | 2B – 8B |
| **HF Org** | [ibm-granite](https://huggingface.co/ibm-granite) |
:::

## Available Models

- **Granite 3.3 2B Instruct**
- **Granite 3.1 8B Instruct**
- **Granite 3.0 2B Base**
- **PowerLM-3B** (IBM Research)

## Architecture

- `GraniteForCausalLM`

## Example HF Models

| Model | HF ID |
|---|---|
| Granite 3.0 2B Base | [`ibm-granite/granite-3.0-2b-base`](https://huggingface.co/ibm-granite/granite-3.0-2b-base) |
| Granite 3.1 8B Instruct | [`ibm-granite/granite-3.1-8b-instruct`](https://huggingface.co/ibm-granite/granite-3.1-8b-instruct) |
| PowerLM 3B | [`ibm/PowerLM-3b`](https://huggingface.co/ibm/PowerLM-3b) |

## Example Recipes

| Recipe | Description |
|---|---|
| {download}`granite_3_3_2b_instruct_squad.yaml <../../../../examples/llm_finetune/granite/granite_3_3_2b_instruct_squad.yaml>` | SFT — Granite 3.3 2B Instruct on SQuAD |
| {download}`granite_3_3_2b_instruct_squad_peft.yaml <../../../../examples/llm_finetune/granite/granite_3_3_2b_instruct_squad_peft.yaml>` | LoRA — Granite 3.3 2B Instruct on SQuAD |


## Try with NeMo AutoModel

**1. Install** ([full instructions](../../../guides/installation.md)):

```bash
pip install nemo-automodel
```

**2. Clone the repo** to get the example recipes:

```bash
git clone https://github.com/NVIDIA-NeMo/Automodel.git
cd Automodel
```

**3. Run the recipe** from inside the repo:

```bash
automodel --nproc-per-node=8 examples/llm_finetune/granite/granite_3_3_2b_instruct_squad.yaml
```

:::{dropdown} Run with Docker
**1. Pull the container** and mount a checkpoint directory:

```bash
docker run --gpus all -it --rm \
  --shm-size=8g \
  -v $(pwd)/checkpoints:/opt/Automodel/checkpoints \
  nvcr.io/nvidia/nemo-automodel:26.02.00
```

**2.** Navigate to the AutoModel directory (where the recipes are):

```bash
cd /opt/Automodel
```

**3. Run the recipe**:

```bash
automodel --nproc-per-node=8 examples/llm_finetune/granite/granite_3_3_2b_instruct_squad.yaml
```
:::

See the [Installation Guide](../../../guides/installation.md) and [LLM Fine-Tuning Guide](../../../guides/llm/finetune.md).

## Fine-Tuning

See the [LLM Fine-Tuning Guide](../../../guides/llm/finetune.md).

## Hugging Face Model Cards

- [ibm-granite/granite-3.0-2b-base](https://huggingface.co/ibm-granite/granite-3.0-2b-base)
- [ibm-granite/granite-3.1-8b-instruct](https://huggingface.co/ibm-granite/granite-3.1-8b-instruct)
