alt.freeweights.olmo / olmOCR-7B-0225-preview
From: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject:

olmOCR-7B-0225-preview

Date: 2026-11-14Commit: 6f102f3Signed: 2DC28CC7B26A283B ✓

Image text to text model with 8.3B parameters. Safetensors weights, 16.6 GB in all. Published by allenai under Apache-2.0.

8.3B params16.6GBolmOCR-7B-0225-previewsafetensorspermissive
FactsParams8.3BSize16.6 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get allenai/olmOCR-7B-0225-preview
# manifest sha256 0deb1e659b96… · 16.6 GB · 15 files
$ fw verify ./olmOCR-7B-0225-preview allenai/olmOCR-7B-0225-preview
From sourceHosted (signed)allenai/olmOCR-7B-0225-previewLast check: 2026-11-14 21:14 UTC

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

Fine-tune of Qwen2-VL-7B-Instruct.

Works with

Overview

Size
16.6 GB
Weights
16.6 GB (safetensors)
Parameters
8.3B
Formats
safetensors
Task
image text to text
License
Apache-2.0 (permissive)
Files
15, each with a sha256
Publisher
allenai
Added
2026-11-14
Section
alt.freeweights.olmo
Lineage

Original release from the publisher.

Base model: Qwen/Qwen2-VL-7B-Instruct

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-14 21:14 UTCpassed

Model card

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

Image: olmOCR Logo

olmOCR-7B-0225-preview#

This is a preview release of the olmOCR model that's fine tuned from Qwen2-VL-7B-Instruct using the olmOCR-mix-0225 dataset.

Quick links:

The best way to use this model is via the olmOCR toolkit. The toolkit comes with an efficient inference setup via sglang that can handle millions of documents at scale.

Usage#

This model expects as input a single document image, rendered such that the longest dimension is 1024 pixels.

The prompt must then contain the additional metadata from the document, and the easiest way to generate this is to use the methods provided by the olmOCR toolkit.

Manual Prompting#

If you want to prompt this model manually instead of using the olmOCR toolkit, please see the code below.

In normal usage, the olmOCR toolkit builds the prompt by rendering the PDF page, and extracting relevant text blocks and image metadata. To duplicate that you will need to

pip install olmocr

and then run the following sample code.

import torch
import base64
import urllib.request

from io import BytesIO
from PIL import Image
from transformers import AutoProcessor, Qwen2VLForConditionalGeneration

from olmocr.data.renderpdf import render_pdf_to_base64png
from olmocr.prompts import build_finetuning_prompt
from olmocr.prompts.anchor import get_anchor_text

# Initialize the model
model = Qwen2VLForConditionalGeneration.from_pretrained("allenai/olmOCR-7B-0225-preview", torch_dtype=torch.bfloat16).eval()
processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-7B-Instruct")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

# Grab a sample PDF
urllib.request.urlretrieve("https://molmo.allenai.org/paper.pdf", "./paper.pdf")

# Render page 1 to an image
image_base64 = render_pdf_to_base64png("./paper.pdf", 1, target_longest_image_dim=1024)

# Build the prompt, using document metadata
anchor_text = get_anchor_text("./paper.pdf", 1, pdf_engine="pdfreport", target_length=4000)
prompt = build_finetuning_prompt(anchor_text)

# Build the full prompt
messages = [
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": prompt},
                    {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_base64}"}},
                ],
            }
        ]

# Apply the chat template and processor
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
main_image = Image.open(BytesIO(base64.b64decode(image_base64)))

inputs = processor(
    text=[text],
    images=[main_image],
    padding=True,
    return_tensors="pt",
)
inputs = {key: value.to(device) for (key, value) in inputs.items()}


# Generate the output
output = model.generate(
            **inputs,
            temperature=0.8,
            max_new_tokens=50,
            num_return_sequences=1,
            do_sample=True,
        )

# Decode the output
prompt_length = inputs["input_ids"].shape[1]
new_tokens = output[:, prompt_length:]
text_output = processor.tokenizer.batch_decode(
    new_tokens, skip_special_tokens=True
)

print(text_output)
# ['{"primary_language":"en","is_rotation_valid":true,"rotation_correction":0,"is_table":false,"is_diagram":false,"natural_text":"Molmo and PixMo:\\nOpen Weights and Open Data\\nfor State-of-the']

License and use#

olmOCR is licensed under the Apache 2.0 license. olmOCR is intended for research and educational use. For more information, please see our Responsible Use Guidelines.

Files

15 files · 16.6 GBWeights 16.6 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 15 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md4.36 KB1ff835ea1d19b885f8f704bfab1a27b19bfbf80f4d9489f2fd7702bcd853f474
chat_template.json1.05 KBad60d90252ed0b0705ba14e2d0ad0fec0beac1ea955642b54059b36052d8bc96
config.json1.20 KB180b1c29376d9550a2473c28413cc0d02e5e26c1abb229884834449e45461333
generation_config.json244 B85fb0349cef993fe7d1cab4baa61c81a42326c3a549dc220fcecb43e6eea3413
merges.txt1.67 MB599bab54075088774b1733fde865d5bd747cbcc7a547c5bc12610e874e26f5e3
model-00001-of-00004.safetensors4.97 GBf84a8740aafacaaaa1ff67a2c68af7a248713b6f605d9b58972604321e8da066
model-00002-of-00004.safetensors4.99 GBf629d9fd79cba378dd516f84a5452540d6002592aa9673d2998a381b1554ac1c
model-00003-of-00004.safetensors4.93 GBdbae882a09ba8a1c903473a42d287b4e1a34885f02bf8257d786100d3d452aeb
model-00004-of-00004.safetensors1.69 GB6b59d226957572d56c69bfd56a451ed8f26a38b0e8326d0a6f2af161fc606e3b
model.safetensors.index.json56.5 KBcfba9f087a2a64f2b3fa6303766f6bccd9b4c4ee109509d220e99f8146211b3a
preprocessor_config.json347 Bb5eaad0c2815f07631535dcc58f3c462b0d73693638ad21d19f3c50820eae1cc
tokenizer.json7.03 MBcb63a0a23eef3d5b01063a9880a1925a65aaf4d1591d519910ee3527852950a0
tokenizer_config.json4.19 KBff5c4fd898fe8c39591eb70e5d39d2782802d4204d6ae9ba1223252f354842a0
vocab.json2.78 MBca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
6f102f3807 pinned now manifest updated, same commit2026-11-14 21:14 UTC15 files · 16.6 GB
6f102f38072026-11-14 21:14 UTC15 files · 16.6 GB

Use it

$ fw get allenai/olmOCR-7B-0225-preview
# manifest sha256 0deb1e659b96… · 16.6 GB · 15 files
$ fw verify ./olmOCR-7B-0225-preview allenai/olmOCR-7B-0225-preview
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/allenai/olmOCR-7B-0225-preview.json --dir ./olmOCR-7B-0225-preview $ python3 fw.py verify ./olmOCR-7B-0225-preview ./allenai__olmOCR-7B-0225-preview.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/olmOCR-7B-0225-preview --revision 6f102f3807c44450e4ea1ec3eae775e9e68927cb --local-dir ./olmOCR-7B-0225-preview
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("allenai/olmOCR-7B-0225-preview", revision="6f102f3807c44450e4ea1ec3eae775e9e68927cb") model = AutoModelForImageTextToText.from_pretrained("allenai/olmOCR-7B-0225-preview", revision="6f102f3807c44450e4ea1ec3eae775e9e68927cb", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve allenai/olmOCR-7B-0225-preview --revision 6f102f3807c44450e4ea1ec3eae775e9e68927cb

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-14
Text in
README.md
Text sha256
1ff835ea1d19b885f8f704bfab1a27b19bfbf80f4d9489f2fd7702bcd853f474
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: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject: olmOCR-7B-0225-previewDate: 2026-11-14Commit: 6f102f3Signed: 2DC28CC7B26A283B ✓
Upstream
allenai/olmOCR-7B-0225-preview
Pinned commit
6f102f3807c44450e4ea1ec3eae775e9e68927cb
Manifest
olmOCR-7B-0225-preview.json · .minisig
Manifest sha256
0deb1e659b96436b2e7f086f2b555f16c251c45f0c0a3f6d0bb81a32cd25eb47
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:14 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/allenai/olmOCR-7B-0225-preview.json $ curl -O https://freeweights.allternit.com/manifests/allenai/olmOCR-7B-0225-preview.json.minisig $ minisign -Vm olmOCR-7B-0225-preview.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

Qwen/Qwen2-VL-7B-Instruct · this model is a finetune of it

2 models in the catalog name this one as their parent.

Quantizations
2
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/olmOCR-7B-0225-preview
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. olmOCR-7B-0225-preview.json. Provenance. Takedown history: none.

Variants

2 quantized or adapter builds of olmOCR-7B-0225-preview. Each has its own license check and page.

From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-2-7B-1025-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-7B-0225-preview-GGUF