Views
No views yet
1import torch
2from transformers import AutoModelForVision2Seq, AutoProcessor, BitsAndBytesConfig
3from PIL import Image
4
5# Configure 4-bit loading
6quantization_config = BitsAndBytesConfig(
7 load_in_4bit=True,
8 bnb_4bit_quant_type="nf4",
9 bnb_4bit_compute_dtype=torch.float16,
10 bnb_4bit_use_double_quant=True
11)
12
13# Load model
14model = AutoModelForVision2Seq.from_pretrained(
15 "orgessnk/olmOCR-2-7B-1025-BNB-4bit",
16 quantization_config=quantization_config,
17 device_map="auto",
18 trust_remote_code=True
19)
20
21processor = AutoProcessor.from_pretrained(
22 "orgessnk/olmOCR-2-7B-1025-BNB-4bit",
23 trust_remote_code=True
24)
25
26# Perform OCR
27image = Image.open("document.jpg")
28messages = [
29 {
30 "role": "user",
31 "content": [
32 {"type": "image", "image": image},
33 {"type": "text", "text": "Extract all text from this image."}
34 ]
35 }
36]
37
38text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
39from qwen_vl_utils import process_vision_info
40image_inputs, video_inputs = process_vision_info(messages)
41
42inputs = processor(
43 text=[text],
44 images=image_inputs,
45 videos=video_inputs,
46 padding=True,
47 return_tensors="pt"
48).to("cuda")
49
50outputs = model.generate(**inputs, max_new_tokens=512)
51result = processor.batch_decode(outputs, skip_special_tokens=True)[0]
52print(result)pip install torch transformers accelerate bitsandbytes qwen-vl-utils1@article{olmocr2024,
2 title={olmOCR: Open Large Multimodal Model for OCR},
3 author={AllenAI Team},
4 year={2024}
5}