alt.freeweights.granite / granite-vision-3.3-2b-embedding
From: ibm-granite <huggingface.co/ibm-granite>Newsgroups: alt.freeweights.graniteSubject:

granite-vision-3.3-2b-embedding

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

Feature extraction model with 3B parameters. Safetensors weights, 11.9 GB in all. Published by ibm-granite under Apache-2.0.

3B params11.9GBgranite-vision-3.3-2b-embeddingsafetensorspermissive
FactsParams3BSize11.9 GBFormatssafetensorsTaskfeature extractionLicenseApache-2.0From sourcepermissive
$ fw get ibm-granite/granite-vision-3.3-2b-embedding
# manifest sha256 8fac84e5b27e… · 11.9 GB · 20 files
$ fw verify ./granite-vision-3.3-2b-embedding ibm-granite/granite-vision-3.3-2b-embedding
From sourceHosted (signed)ibm-granite/granite-vision-3.3-2b-embeddingLast check: 2026-11-15 03:49 UTC

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

Fine-tune of granite-vision-3.3-2b.

Works with

Evaluate with

Overview

Size
11.9 GB
Weights
11.9 GB (safetensors)
Parameters
3B
Formats
safetensors
Task
feature extraction
License
Apache-2.0 (permissive)
Files
20, each with a sha256
Publisher
ibm-granite
Added
2026-11-15
Section
alt.freeweights.granite
Lineage

Original release from the publisher.

Base model: ibm-granite/granite-vision-3.3-2b

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:49 UTCpassed

Model card

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

granite-vision-3.3-2b-embedding#

Model Summary: Granite-vision-3.3-2b-embedding is an efficient embedding model based on granite-vision-3.3-2b. This model is specifically designed for multimodal document retrieval, enabling queries on documents with tables, charts, infographics, and complex layouts. The model generates ColBERT-style multi-vector representations of pages. By removing the need for OCR-based text extractions, granite-vision-3.3-2b-embedding can help simplify and accelerate RAG pipelines.

Evaluations: We evaluated granite-vision-3.3-2b-embedding alongside other top colBERT style multi-modal embedding models in the 1B-4B parameter range using two benchmark: Vidore2 and Real-MM-RAG-Bench which aim to specifically address complex multimodal document retrieval tasks.

NDCG@5 - ViDoRe V2#

Collection \ ModelColPali-v1.3ColQwen2.5-v0.2ColNomic-3bColSmolvlm-v0.1granite-vision-3.3-2b-embedding
ESG Restaurant Human51.168.465.862.465.3
Economics Macro Multilingual49.956.555.447.451.2
MIT Biomedical59.763.663.558.161.5
ESG Restaurant Synthetic57.057.456.651.156.6
ESG Restaurant Synthetic Multilingual55.757.457.247.655.7
MIT Biomedical Multilingual56.561.162.550.555.5
Economics Macro51.659.860.260.958.3
Avg (ViDoRe2)54.560.660.254.057.7

NDCG@5 - REAL-MM-RAG#

Collection \ ModelColPali-v1.3ColQwen2.5-v0.2ColNomic-3bColSmolvlm-v0.1granite-vision-3.3-2b-embedding
FinReport5566786573
FinSlides6879815579
TechReport7886888387
TechSlides9093929193
Avg (REAL-MM-RAG)7381857483
  • Release Date: June 11th 2025
  • License: Apache 2.0
  • Supported Input Format: Currently the model supports English instructions and images (png, jpeg) as input format.

Intended Use: The model is intended to be used in enterprise applications that involve retrieval of visual and text data. In particular, the model is well-suited for multi-modal RAG systems where the knowledge base is composed of complex enterprise documents, such as reports, slides, images, canned doscuments, manuals and more. The model can be used as a standalone retriever, or alongside a text-based retriever.

Usage#
pip install -q torch torchvision torchaudio
pip install transformers==4.50

Then run the code:

from io import BytesIO

import requests
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModel
from transformers.utils.import_utils import is_flash_attn_2_available

device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "ibm-granite/granite-vision-3.3-2b-embedding"
model = AutoModel.from_pretrained(
                      model_name,
                      trust_remote_code=True,
                      torch_dtype=torch.float16,
                      device_map=device,
                      attn_implementation="flash_attention_2" if is_flash_attn_2_available() else None
                      ).eval()
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)

# ─────────────────────────────────────────────
# Inputs: Image + Text
# ─────────────────────────────────────────────
image_url = "https://huggingface.co/datasets/mishig/sample_images/resolve/main/tiger.jpg"
print("\nFetching image...")
image = Image.open(BytesIO(requests.get(image_url).content)).convert("RGB")

text = "A photo of a tiger"
print(f"Image and text inputs ready.")

# Process both inputs
print("Processing inputs...")
image_inputs = processor.process_images([image])
text_inputs = processor.process_queries([text])

# Move to correct device
image_inputs = {k: v.to(device) for k, v in image_inputs.items()}
text_inputs = {k: v.to(device) for k, v in text_inputs.items()}

# ─────────────────────────────────────────────
# Run Inference
# ─────────────────────────────────────────────
with torch.no_grad():
    print("🔍 Getting image embedding...")
    img_emb = model(**image_inputs)

    print("✍️ Getting text embedding...")
    txt_emb = model(**text_inputs)

# ─────────────────────────────────────────────
# Score the similarity
# ─────────────────────────────────────────────
print("Scoring similarity...")
similarity = processor.score(txt_emb, img_emb, batch_size=1, device=device)

print("\n" + "=" * 50)
print(f"📊 Similarity between image and text: {similarity.item():.4f}")
print("=" * 50)
Use granite-vision-embedding-3.3-2b for MM RAG#

For an example of MM-RAG using granite-vision-3.3-2b-embedding refer to this notebook.

Model Architecture: The architecture of granite-vision-3.3-2b-embedding follows ColPali(https://arxiv.org/abs/2407.01449) approach and consists of the following components:

(1) Vision-Language model : granite-vision-3.3-2b (https://huggingface.co/ibm-granite/granite-vision-3.3-2b).

(2) Projection layer: linear layer that projects the hidden layer dimension of Vision-Language model to 128 and outputs 729 embedding vectors per image.

The scoring is computed using MaxSim-based late interaction mechanism.

Training Data: Our training data is entirly comprised from DocFM. DocFM is a large-scale comprehensive dataset effort at IBM consisting of 85 million document pages extracted from unique PDF documents sourced from Common Crawl, Wikipedia, and ESG (Environmental, Social, and Governance) reports.

Infrastructure: We train granite-vision-3.3-2b-embedding on IBM’s cognitive computing cluster, which is outfitted with NVIDIA A100 GPUs.

Ethical Considerations and Limitations: The use of Large Vision and Language Models involves risks and ethical considerations people must be aware of, including but not limited to: bias and fairness, misinformation, and autonomous decision-making. Granite-vision-3.3-2b-embedding is not the exception in this regard. Although our alignment processes include safety considerations, the model may in some cases produce inaccurate or biased responses. Regarding ethics, a latent risk associated with all Large Language Models is their malicious utilization. We urge the community to use granite-vision-3.3-2b-embedding with ethical intentions and in a responsible way.

Resources

Files

20 files · 11.9 GBWeights 11.9 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 20 files with their sha256
FileSizesha256
.gitattributes1.66 KB4aafd9d58ff008eb03e37cb342e8bd2fdcfc42a67291fcc3216cffa4c429d4f8
README.md9.21 KBf12026e5be380a2e29507dfbff3c2261df3b6ba5ba823a9d406ebac03ad01222
REPORT_Benchmarking the AI advantage in finance.pdf1.75 MB4e6da951c55eef3fd52aa41543f3b4377ab26e2758c579aec2d11068a66b3d20
added_tokens.json107 B499dc155db9fbf7770c9e8da11d628da5856a19e1d94cff0e2ae18b84885e947
chat_template.json1.64 KB524fc0e952e24b81cbcec5481b3a501aab4d0fb02ff0f3d928fcd2b96b33ba71
config.json3.04 KBf2f7f0d83f788c061cc74c0cba21d2e780bda3f84139d5108084a1fcd63677ac
granite_vision_embedding_config.py529 B3d3abdc648082838878fe6aeff4632cc1c012c97778df59bfe727e2903e08ae5
merges.txt442 KB303127a244b0078878156c17229f36d11b7a3a3f8e47b7cfdbb304ff46be5030
model-00001-of-00003.safetensors4.96 GB4e838b6d98f48fbf45ae6c0d9c74cba649fd06b27ed78ced3971efbab7e16a69
model-00002-of-00003.safetensors5.00 GBd6bf1675fc15977b4d8f37ea1d4960ca2750e6793a80da9771e4693ae8cb13d6
model-00003-of-00003.safetensors1.95 GB15978cba0606360676faad5c3cf486a58e6d78a1352dbfcd1db51a7410a574d5
model.safetensors.index.json88.1 KBf4480eb186f3e0346a3d04bb8bb108d6aed6218c86559869e619554e9faed7e5
modeling_granite_vision_embedding.py8.61 KB076a8ec9bfb49cf736403e9000427774a5aebe9748e16d9e4b92d4b9f54e8d45
preprocessor_config.json1.48 KB348698161db7bc477229556ce621ce6ca81647342a916ca1b0e9d33a5f8930fd
processing_granite_vision_embedding.py16.2 KB10b50696f8fb5660d2089bcf8e67e38ff22e0888830ffbe3fbfa2fd802b1926a
processor_config.json158 B250caf1730208c8351ff151633fdbbc5f7c12940890b982a306c4f4fe497bd2a
special_tokens_map.json701 B596d752bf46f5cace1f6826b52ed7d913347a4eea0ecce8ab2f869471ca40369
tokenizer.json3.48 MBb56a82c4210f65ff0eb4df4d27f927c629ff4e17ca399e49fd0172e8f988359f
tokenizer_config.json5.98 KBffe9c60758a04b9a447bde96203410008b7a4cdf1042dc8642b04bd5f9779e54
vocab.json777 KB80ab859339a2525fdfbda14bc39df02dffb824aefdaf86426217bbb146d17e01
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
baa53d1e1a pinned now2026-11-15 03:49 UTC20 files · 11.9 GB

Use it

$ fw get ibm-granite/granite-vision-3.3-2b-embedding
# manifest sha256 8fac84e5b27e… · 11.9 GB · 20 files
$ fw verify ./granite-vision-3.3-2b-embedding ibm-granite/granite-vision-3.3-2b-embedding
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/ibm-granite/granite-vision-3.3-2b-embedding.json --dir ./granite-vision-3.3-2b-embedding $ python3 fw.py verify ./granite-vision-3.3-2b-embedding ./ibm-granite__granite-vision-3.3-2b-embedding.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ibm-granite/granite-vision-3.3-2b-embedding --revision baa53d1e1ac95baefb15e4aa9fdcc471ac728c83 --local-dir ./granite-vision-3.3-2b-embedding
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModel, AutoTokenizer tok = AutoTokenizer.from_pretrained("ibm-granite/granite-vision-3.3-2b-embedding", revision="baa53d1e1ac95baefb15e4aa9fdcc471ac728c83") model = AutoModel.from_pretrained("ibm-granite/granite-vision-3.3-2b-embedding", revision="baa53d1e1ac95baefb15e4aa9fdcc471ac728c83", device_map="auto")

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
f12026e5be380a2e29507dfbff3c2261df3b6ba5ba823a9d406ebac03ad01222
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: ibm-granite <huggingface.co/ibm-granite>Newsgroups: alt.freeweights.graniteSubject: granite-vision-3.3-2b-embeddingDate: 2026-11-15Commit: baa53d1Signed: 2DC28CC7B26A283B ✓
Upstream
ibm-granite/granite-vision-3.3-2b-embedding
Pinned commit
baa53d1e1ac95baefb15e4aa9fdcc471ac728c83
Manifest
granite-vision-3.3-2b-embedding.json · .minisig
Manifest sha256
8fac84e5b27eaffd6f2e73da6aeece55f04663757d4b2aecf0c79f37acb0e877
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:49 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/ibm-granite/granite-vision-3.3-2b-embedding.json $ curl -O https://freeweights.allternit.com/manifests/ibm-granite/granite-vision-3.3-2b-embedding.json.minisig $ minisign -Vm granite-vision-3.3-2b-embedding.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-vision-3.3-2b · this model is a finetune of it

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

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ibm-granite/granite-vision-3.3-2b-embedding
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. granite-vision-3.3-2b-embedding.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