--- license: apache-2.0 base_model: - zai-org/GLM-OCR pipeline_tag: image-text-to-text tags: - ocr - synthos - computer - vizion - llm --- --- license: apache-2.0 language: en base_model: zai-org/GLM-OCR tags: - ocr - document-understanding - vision-language - glm-ocr - synthos - z.ai pipeline_tag: image-to-text library_name: transformers # Cizi: Enhanced OCR Fine-Tuned on Z.AI GLM-OCR **Cizi** is a specialized fine-tune of [Z.AI's GLM-OCR](https://huggingface.co/zai-org/GLM-OCR), optimized for [insert your specific niche, e.g., historical documents / medical forms / low-resource languages]. Built on top of GLM-OCR's lightweight 0.9B parameter GLM-V encoder-decoder architecture with Multi-Token Prediction (MTP), Synthos inherits state-of-the-art base OCR capabilities while being further aligned for [your specific use case] through targeted fine-tuning [[2]][[3]]. ## 🌟 Key Features - **Ultra-Lightweight:** Only ~0.9B parameters, enabling fast local inference on consumer hardware and edge devices [[1]]. - **Multi-Token Prediction:** Leverages MTP for faster decoding and improved contextual coherence in dense text regions [[2]]. - **[Your Niche] Specialization:** Fine-tuned on [X]K domain-specific samples to outperform base GLM-OCR on [specific benchmark/task]. - **Structured Markdown Output:** Faithfully preserves tables, headers, and reading order in complex layouts. - **End-to-End Architecture:** No separate detection/recognition stages — single forward pass from pixels to structured text [[3]]. ## 🚀 Quick Start ```python from transformers import AutoModelForVision2Seq, AutoProcessor import torch from PIL import Image model_id = "your-org/synthos" processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) model = AutoModelForVision2Seq.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True ) image = Image.open("document.png") messages = [ {"role": "user", "content": [ {"type": "image"}, {"type": "text", "text": "Transcribe this document faithfully in Markdown format."} ]} ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, return_tensors="pt" ).to(model.device) output_ids = model.generate(inputs, max_new_tokens=2048, do_sample=False) response = processor.batch_decode(output_ids, skip_special_tokens=True)[0] print(response)