alt.freeweights.granite / granite-4.0-350m-GGUF
From: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.graniteSubject:

granite-4.0-350m-GGUF

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

Model. Gguf weights, 5.45 GB in all. Published by unsloth under Apache-2.0.

granite5.45GBgranite-4.0-350m-GGUFggufpermissive
FactsParamsnot statedSize5.45 GBFormatsggufTasknot taggedLicenseApache-2.0From sourcepermissive
$ fw get unsloth/granite-4.0-350m-GGUF
# manifest sha256 c91eaf63499e… · 5.45 GB · 22 files
$ fw verify ./granite-4.0-350m-GGUF unsloth/granite-4.0-350m-GGUF
From sourceHosted (signed)unsloth/granite-4.0-350m-GGUFLast check: 2026-11-15 04:55 UTC

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

Quantized of granite-4.0-350m.

Works with

Convert with

Scan with

Overview

Size
5.45 GB
Weights
172 MB (smallest of 19 GGUF variants)
Parameters
not stated
Formats
gguf
Task
not tagged
License
Apache-2.0 (permissive)
Files
22, each with a sha256
Publisher
unsloth
Added
2026-11-15
Section
alt.freeweights.granite
Lineage

Original release from the publisher.

Base model: ibm-granite/granite-4.0-350m

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 04:55 UTCpassed

Model card

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

Unsloth Dynamic 2.0 achieves superior accuracy & outperforms other leading quants.

https://github.com/unslothai/unsloth/ https://discord.gg/unsloth https://docs.unsloth.ai/

Granite-4.0-350M#

Model Summary: Granite-4.0-350M is a lightweight instruct model finetuned from Granite-4.0-350M-Base using a combination of open source instruction datasets with permissive license and internally collected synthetic datasets. This model is developed using a diverse set of techniques including supervised finetuning, reinforcement learning, and model merging.

Supported Languages: English, German, Spanish, French, Japanese, Portuguese, Arabic, Czech, Italian, Korean, Dutch, and Chinese. Users may fine-tune Granite 4.0 Nano models to support languages beyond those included in this list.

Intended use: Granite 4.0 Nano instruct models feature strong instruction following capabilities bringing advanced AI capabilities within reach for on-device deployments and research use cases. Additionally, their compact size makes them well-suited for fine-tuning on specialized domains without requiring massive compute resources.

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

Generation: This is a simple example of how to use Granite-4.0-350M model.

Install the following libraries:

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.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"
model_path = "ibm-granite/granite-4.0-350M"
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:

<|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|>Almaden Research Center, San Jose, California<|end_of_text|>

Tool-calling: Granite-4.0-350M 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.

This is an example of how to use Granite-4.0-350M model tool-calling ability:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"
model_path = "ibm-granite/granite-4.0-350M"
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:

<|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>
- unsloth
{"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>
- unsloth
{"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|>

Evaluation Results:

| Benchmarks | Metric | 350M Dense | H 350M Dense | 1B Dense | H 1B Dense

| General Tasks

| MMLU | 5-shot | 35.01 | 36.21 | 59.39 | 59.74

| MMLU-Pro | 5-shot, CoT | 12.13 | 14.38 | 34.02 | 32.86

| BBH | 3-shot, CoT | 33.07 | 33.28 | 60.37 | 59.68

| AGI EVAL | 0-shot, CoT | 26.22 | 29.61 | 49.22 | 52.44

| GPQA | 0-shot, CoT | 24.11 | 26.12 | 29.91 | 29.69

| Alignment Tasks

| IFEval | Instruct, Strict | 61.63 | 67.63 | 80.82 | 82.37

| IFEval | Prompt, Strict | 49.17 | 55.64 | 73.94 | 74.68

| IFEval | Average | 55.4 | 61.63 | 77.38 | 78.53

| Math Tasks

| GSM8K | 8-shot | 30.71 | 39.27 | 76.35 | 69.83

| GSM Symbolic | 8-shot | 26.76 | 33.7 | 72.3 | 65.72

| Minerva Math | 0-shot, CoT | 13.04 | 5.76 | 45.28 | 49.4

| DeepMind Math | 0-shot, CoT | 8.45 | 6.2 | 34 | 34.98

| Code Tasks

| HumanEval | pass@1 | 39 | 38 | 74 | 73

| HumanEval+ | pass@1 | 37 | 35 | 69 | 68

| MBPP | pass@1 | 48 | 49 | 65 | 69

| MBPP+ | pass@1 | 38 | 44 | 57 | 60

| CRUXEval-O | pass@1 | 23.75 | 25.5 | 33.13 | 36

| BigCodeBench | pass@1 | 11.14 | 11.23 | 30.18 | 29.12

| Tool Calling Tasks

| BFCL v3 | | 39.32 | 43.32 | 54.82 | 50.21

| Multilingual Tasks

| MULTIPLE | pass@1 | 15.99 | 14.31 | 32.24 | 36.11

| MMMLU | 5-shot | 28.23 | 27.95 | 45 | 49.43

| INCLUDE | 5-shot | 27.74 | 27.09 | 42.12 | 43.35

| MGSM | 8-shot | 14.72 | 16.16 | 37.84 | 27.52

| Safety

| SALAD-Bench | | 97.12 | 96.55 | 93.44 | 96.4

| AttaQ | | 82.53 | 81.76 | 85.26 | 82.85

Multilingual Benchmarks and thr included languages:

| Benchmarks | # Langs | Languages

| MMMLU | 11 | ar, de, en, es, fr, ja, ko, pt, zh, bn, hi

| INCLUDE | 14 | hi, bn, ta, te, ar, de, es, fr, it, ja, ko, nl, pt, zh

| MGSM | 5 | en, es, fr, ja, zh

Model Architecture:

Granite-4.0-350M baseline is based on a decoder-only dense transformer architecture. Core components of this architecture are: GQA, MLP with SwiGLU, RMSNorm, and shared input/output embeddings.

| Model | 350M Dense | H 350M Dense | 1B Dense | H 1B Dense

| Embedding size | 1024 | 768 | 2048 | 1536

| Number of layers | 28 attention | 4 attention / 28 Mamba2 | 40 attention | 4 attention / 36 Mamba2

| Attention head size | 64 | 64 | 128 | 128

| Number of attention heads | 16 | 12 | 16 | 12

| Number of KV heads | 4 | 4 | 4 | 4

| Mamba2 state size | - | 128 | - | 128

| Number of Mamba2 heads | - | 48 | - | 48

| MLP / Shared expert hidden size | 2048 | 2048 | 4096 | 4096

| Num. Experts | - | - | - | -

| Num. active Experts | - | - | - | -

| Expert hidden size | - | - | - | -

| MLP activation | SwiGLU | SwiGLU | SwiGLU | SwiGLU

| Sequence length | 32K | 32K | 128K | 128K

| Position embedding | RoPE | NoPE | RoPE | NoPE

| # Parameters | 350M | 340M | 1.6B | 1.5B

| # Active parameters | 350M | 340M | 1.6B | 1.5B

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.

Infrastructure: We trained the Granite 4.0 Nano 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.0 Nano Instruct 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 case, 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. So we urge the community to use this model with proper safety testing and tuning tailored for their specific tasks.

Resources

Files

22 files · 5.45 GBWeights 172 MB (smallest of 19 GGUF variants). Sizes and sha256 from the signed manifest.
Show all 22 files with their sha256
FileSizesha256
.gitattributes2.90 KBc3002213cb6ac174543a3e8e14f85c4b522447f9cf1839dfc0863cea6b86600d
README.md33.9 KB7904c78746967bf4a8b8e09ffc3a022396a9491ecdd8344c25c511949bde34ec
granite-4.0-350m-BF16.gguf708 MB6fabc4c52987044b385af182f99549bc861139e2e5da56dbfd8174f08ae52999
granite-4.0-350m-IQ4_NL.gguf229 MB964c6fc2e0c73d6ec5ec9fb85d94145adfb924284f865a97f30218acef189299
granite-4.0-350m-IQ4_XS.gguf222 MBae79acd677add0b5acb0d8b250902e72bd9dc329eb21ff1182b9510bdb96825a
granite-4.0-350m-Q3_K_M.gguf208 MBd0221ced8cc6282b1b9fb0b31770fca10a5f06fe10bd2086e8e48e2b798e6264
granite-4.0-350m-Q3_K_S.gguf195 MB19f6eba2bc4559cc5ad4ab539a781cec3d089aabfbd73dd79be761717fa2b8bd
granite-4.0-350m-Q4_0.gguf229 MBd079f6c8a9b425e6c7aca25afbd34d72091984246bf6409b800a8f81c257ea1f
granite-4.0-350m-Q4_1.gguf244 MBd990657eba5d75a61714bac0f7f67cac2fc796279fd28de75a013614eb964559
granite-4.0-350m-Q4_K_M.gguf237 MB84f8ee2d191f49a26dee7928039ecbca7079403ccd6817652bd5e834ca40b6d5
granite-4.0-350m-Q4_K_S.gguf229 MB32a3dd7db1fc35e4e325fceb95ac1e0036ec1e8d5c10cae3c337501f07a8aaa9
granite-4.0-350m-Q5_K_M.gguf264 MB463151ec5563a0f7e6a11bab02dc813dcdc1e46236ffdfa736c862c0bf0fd13b
granite-4.0-350m-Q5_K_S.gguf260 MB93fc0e43891fb3d9cfd62fbf5d539b432c6f35c7e66e425426ef0a77370cc2db
granite-4.0-350m-Q6_K.gguf293 MBc0e25ea454fa42a722303fdca026f20e77fa31e3db51f1b08c25991e443dbd14
granite-4.0-350m-Q8_0.gguf378 MB3ec711b8b5e71f98b88132c658d02d7bfa47f3a8525f5b51e130c0c1e99556e9
granite-4.0-350m-UD-IQ3_XXS.gguf172 MBb56d32edb03a350985818c20d11faa008afb7ce0ae4f40bdbd0deb8e65075ce3
granite-4.0-350m-UD-Q3_K_XL.gguf213 MB934cf1ec03423d1935ac0a8883e4fb1796d26365ebe577e51f809f232a847c18
granite-4.0-350m-UD-Q4_K_XL.gguf241 MB1fd597eb32557fabb17695eaeb4f367f286dc67d464b0f97c904d70373d067d3
granite-4.0-350m-UD-Q5_K_XL.gguf265 MBb78e32b40b3b4b241e31a7167595b538162ca0cb964a1a492d245a8f4944eaca
granite-4.0-350m-UD-Q6_K_XL.gguf339 MB2498de1f74f53bb1e0dff9e691f8e9d34638045870bb56b7c580e22c414f84d5
granite-4.0-350m-UD-Q8_K_XL.gguf517 MB6bcf826bb96a7f28181d84b3d1ab98d3716995531603892f3af5de5f2606f66a
imatrix_unsloth.gguf_file948 KB988b1d1e30063630bfa23166a28a6c211147d33d55c8b1472d384b4e875038b5
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
d6a88cd564 pinned now2026-11-15 04:55 UTC22 files · 5.45 GB

Use it

$ fw get unsloth/granite-4.0-350m-GGUF
# manifest sha256 c91eaf63499e… · 5.45 GB · 22 files
$ fw verify ./granite-4.0-350m-GGUF unsloth/granite-4.0-350m-GGUF
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/unsloth/granite-4.0-350m-GGUF.json --dir ./granite-4.0-350m-GGUF $ python3 fw.py verify ./granite-4.0-350m-GGUF ./unsloth__granite-4.0-350m-GGUF.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/granite-4.0-350m-GGUF --revision d6a88cd56438020200760fd8bc03670db0e13fa0 --local-dir ./granite-4.0-350m-GGUF
llama.cppDownload one GGUF variant (granite-4.0-350m-UD-IQ3_XXS, 172 MB), then serve it.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/granite-4.0-350m-GGUF --include "granite-4.0-350m-UD-IQ3_XXS*" --local-dir ./granite-4.0-350m-GGUF $ llama-server -m ./granite-4.0-350m-GGUF/granite-4.0-350m-UD-IQ3_XXS.gguf
OllamaMake an Ollama model from the downloaded file.
$ printf 'FROM ./granite-4.0-350m-GGUF/granite-4.0-350m-UD-IQ3_XXS.gguf\n' > Modelfile $ ollama create granite-4.0-350m-gguf -f Modelfile

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
7904c78746967bf4a8b8e09ffc3a022396a9491ecdd8344c25c511949bde34ec
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: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.graniteSubject: granite-4.0-350m-GGUFDate: 2026-11-15Commit: d6a88cdSigned: 2DC28CC7B26A283B ✓
Upstream
unsloth/granite-4.0-350m-GGUF
Pinned commit
d6a88cd56438020200760fd8bc03670db0e13fa0
Manifest
granite-4.0-350m-GGUF.json · .minisig
Manifest sha256
c91eaf63499ee57a36a39b3be1553b14590ca482d6bb32aa60d34c8617552686
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:55 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/unsloth/granite-4.0-350m-GGUF.json $ curl -O https://freeweights.allternit.com/manifests/unsloth/granite-4.0-350m-GGUF.json.minisig $ minisign -Vm granite-4.0-350m-GGUF.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

ibm-granite/granite-4.0-350m · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/granite-4.0-350m-GGUF
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. granite-4.0-350m-GGUF.json. Provenance. Takedown history: none.
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed1
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed2
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed3
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed1
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed2
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed3