ManiKumarAdapala commited on
Commit
93cd307
Β·
verified Β·
1 Parent(s): 7294f05

updated readme.md

Browse files
Files changed (1) hide show
  1. README.md +117 -3
README.md CHANGED
@@ -1,3 +1,117 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: GLM-OCR Pruned 8-bit Safetensors (1.3GB)
3
+ emoji: πŸš€
4
+ license: mit
5
+ language:
6
+ - en
7
+ - fr
8
+ - es
9
+ - ru
10
+ - de
11
+ - ja
12
+ - ko
13
+ - zh
14
+ base_model:
15
+ - zai-org/GLM-OCR
16
+ pipeline_tag: image-text-to-text
17
+ library_name: transformers
18
+ tags:
19
+ - pruning
20
+ - bitsandbytes
21
+ - int8
22
+ ---
23
+
24
+ # GLM-OCR-Pruned-8bit
25
+ ![Model Size](https://img.shields.io/badge/Disk-1.3GB-brightgreen) ![GPU](https://img.shields.io/badge/GPU-2.3GB-blue) ![Quant](https://img.shields.io/badge/8--bit-βœ…-orange)
26
+
27
+ **Production GLM-OCR: 52% smaller (2.7GB→1.3GB), fully 8-bit, OCR optimized**
28
+
29
+ ## πŸ“Š Performance
30
+ | Metric | Original | **Optimized** |
31
+ |--------|----------|---------------|
32
+ | **Parameters** | 1.1B | **1.1B (4.3% pruned)** |
33
+ | **Disk** | 2.7GB | **1.3GB** (52%↓) |
34
+ | **GPU** | 3.5GB+ | **2.3GB** |
35
+ | **Speed** | 1x | **2-3x** |
36
+
37
+ ## πŸš€ Quickstart
38
+ ```python
39
+ from transformers import BitsAndBytesConfig, AutoProcessor, AutoModelForImageTextToText
40
+ import torch
41
+
42
+ MODEL_PATH = "ManiKumarAdapala/glm-ocr-pruned-8bit"
43
+
44
+ messages = [
45
+ {
46
+ "role": "user",
47
+ "content": [
48
+ {
49
+ "type": "image",
50
+ "url": "Image.jpeg"
51
+ },
52
+ {
53
+ "type": "text",
54
+ "text": "Text Recognition:"
55
+ }
56
+ ],
57
+ }
58
+ ]
59
+
60
+ quant_config = BitsAndBytesConfig(load_in_8bit=True)
61
+
62
+ processor = AutoProcessor.from_pretrained(MODEL_PATH)
63
+ model = AutoModelForImageTextToText.from_pretrained(
64
+ pretrained_model_name_or_path=MODEL_PATH,
65
+ quantization_config=quant_config,
66
+ device_map="auto",
67
+ )
68
+
69
+ inputs = processor.apply_chat_template(
70
+ messages,
71
+ tokenize=True,
72
+ add_generation_prompt=True,
73
+ return_dict=True,
74
+ return_tensors="pt"
75
+ ).to(model.device)
76
+
77
+ inputs.pop("token_type_ids", None)
78
+
79
+ generated_ids = model.generate(**inputs, max_new_tokens=8192)
80
+
81
+ output_text = processor.decode(generated_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
82
+
83
+ print(output_text)
84
+ ```
85
+
86
+ ## πŸ›  Optimizations Applied
87
+
88
+ - βœ… Selective Pruning: q_proj, v_proj, fc2, vision_tower (52%)
89
+ - βœ… BitsAndBytes 8-bit: Linear8bitLt (vision+text decoder)
90
+ - βœ… Protected: lm_head, early vision, final decoder layers
91
+
92
+
93
+ ## πŸ“š Citation
94
+
95
+ ```bibtex
96
+ @misc{GLM-OCR-Pruned8bit-2026,
97
+ author = {Mani, {ADAPALA MANI KUMAR} and {ZAI-org}},
98
+ title = {GLM-OCR Pruned & 8-bit quantized (1.1B params, 4.3% sparsity)},
99
+ year = {2026},
100
+ month = {march},
101
+ publisher = {Hugging Face},
102
+ url = {https://huggingface.co/adapala-manikumar/glm-ocr-pruned-8bit},
103
+ note = {1.3GB disk, 2.3GB GPU, OCR optimized, MIT}
104
+ }
105
+ ```
106
+
107
+ <font size="2">
108
+
109
+ **Acknowledgements (from ZAI-org/GLM-OCR)**
110
+
111
+ This project is inspired by the excellent work of:
112
+ - [PP-DocLayout-V3](https://huggingface.co/PaddlePaddle/PP-DocLayoutV3) (Apache 2.0)
113
+ - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
114
+ - [MinerU](https://github.com/opendatalab/MinerU)
115
+
116
+ **License Notice**: The GLM-OCR model is MIT licensed. When using the complete OCR pipeline, users should comply with Apache License 2.0 for PP-DocLayoutV3 components.
117
+ </font>