Instructions to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="prithivMLmods/LightOnOCR-3-4B-MTP-Repacked") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("prithivMLmods/LightOnOCR-3-4B-MTP-Repacked") model = AutoModelForMultimodalLM.from_pretrained("prithivMLmods/LightOnOCR-3-4B-MTP-Repacked", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M # Run inference directly in the terminal: llama cli -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M # Run inference directly in the terminal: llama cli -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Use Docker
docker model run hf.co/prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
- SGLang
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Ollama
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Ollama:
ollama run hf.co/prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
- Unsloth Desktop
- Pi
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Docker Model Runner:
docker model run hf.co/prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
- Lemonade
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Run and chat with the model
lemonade run user.LightOnOCR-3-4B-MTP-Repacked-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use prithivMLmods/LightOnOCR-3-4B-MTP-Repacked with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "prithivMLmods/LightOnOCR-3-4B-MTP-Repacked:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
LightOnOCR-3-4B-MTP-Repacked
LightOnOCR-3-4B, developed by lightonai, is the largest and most accurate model in the LightOnOCR-3 family of end-to-end OCR vision-language models, built on the Qwen3.5-4B architecture and released under the Apache 2.0 license. Recommended for most OCR tasks, it serves as a powerful, single-model alternative to complex document understanding pipelines by combining high-quality text transcription (triggered by an empty prompt) with advanced visual understanding features. When used with the
groundingprompt, the model outputs labeled bounding boxes for all document elements, generates short descriptions for images, and extracts numerical data from charts into structured HTML tables. Highly versatile and optimized for seamless integration with Transformers and vLLM, it excels at processing complex layoutsβincluding tables, receipts, forms, multi-column documents, and math notationβand performs best when documents are preprocessed at 400 DPI with a target longest dimension of 2048px.
MTP β Speculative Decoding: Yes | GGUF β LightOnOCR-3-4B-MTP-Repacked(GGUF)
Multi-Token Prediction (MTP) GGUF is a specialized GGUF model file format extension that integrates speculative decoding directly into the model weights to significantly accelerate local inference. Unlike traditional speculative decoding which requires a separate, smaller "draft" model, MTP GGUF files include additional output heads within the main model architecture that predict multiple future tokens in a single forward pass.
Model Files
| File Name | Quant Type | File Size | File Link | Description |
|---|---|---|---|---|
| LightOnOCR-3-4B-MTP.BF16.gguf | BF16 | 8.67 GB | Link | Full BF16 weights. Highest quality, largest file size. |
| LightOnOCR-3-4B-MTP.Q3_K_L.gguf | Q3_K_L | 2.48 GB | Link | Lower quality but usable, good for low RAM availability. |
| LightOnOCR-3-4B-MTP.Q3_K_M.gguf | Q3_K_M | 2.32 GB | Link | Low quality. |
| LightOnOCR-3-4B-MTP.Q4_K_M.gguf | Q4_K_M | 2.78 GB | Link | Good quality, default size for most use cases, recommended. |
| LightOnOCR-3-4B-MTP.Q4_K_S.gguf | Q4_K_S | 2.63 GB | Link | Slightly lower quality with more space savings, recommended. |
| LightOnOCR-3-4B-MTP.Q5_K_M.gguf | Q5_K_M | 3.16 GB | Link | High quality, recommended. |
| LightOnOCR-3-4B-MTP.Q5_K_S.gguf | Q5_K_S | 3.07 GB | Link | High quality, recommended. |
| LightOnOCR-3-4B-MTP.Q6_K.gguf | Q6_K | 3.56 GB | Link | Very high quality, near perfect, recommended. |
| LightOnOCR-3-4B-MTP.Q8_0.gguf | Q8_0 | 4.61 GB | Link | Extremely high quality, generally unneeded but max available quant. |
| LightOnOCR-3-4B-MTP.mmproj-bf16.gguf | mmproj-bf16 | 676 MB | Link | Multimodal projection file in BF16 format. Used for vision/OCR capabilities. |
MTP-Repacked [Transformers, BF16]
| File Name | File Type | File Size | File Link | Description |
|---|---|---|---|---|
| chat_template.jinja | Template | 7.76 kB | Link | Chat template defining the model's conversation and prompting format. |
| config.json | Config | 2.9 kB | Link | Main model architecture and hyperparameter configuration. |
| generation_config.json | Config | 204 Bytes | Link | Default parameters controlling text generation (e.g., temperature, top_p, max_length). |
| model-00001-of-00003.safetensors | Weights | 4.35 GB | Link | Model weight shard 1/3. Required to load the model. |
| model-00002-of-00003.safetensors | Weights | 4.39 GB | Link | Model weight shard 2/3. Required to load the model. |
| model-00003-of-00003.safetensors | Weights | 572 MB | Link | Model weight shard 3/3. Required to load the model. |
| model.safetensors.index.json | Index | 67.3 kB | Link | Index file mapping model weights to their respective shard files. |
| preprocessor_config.json | Config | 390 Bytes | Link | Configuration for input preprocessing (e.g., image resizing, normalization). |
| processor_config.json | Config | 1.19 kB | Link | Configuration for the multimodal processor combining vision and text inputs. |
| tokenizer.json | Tokenizer | 20 MB | Link | Fast tokenizer vocabulary, merge rules, and special tokens. |
| tokenizer_config.json | Tokenizer | 1.14 kB | Link | Tokenizer initialization parameters and settings. |
| vocab.json | Tokenizer | 6.72 MB | Link | Vocabulary mapping (token IDs to strings) for the tokenizer. |
BF16 Test Run
Tested LightOnOCR-3-4B-MTP.BF16.gguf (with LightOnOCR-3-4B-MTP.mmproj-bf16.gguf) on an NVIDIA RTX PRO 6000 Blackwell Server Edition GPU with 96 GB of VRAM, using llama-cli with full GPU offloading and MTP speculative decoding.
Performance Metrics
| Metric | Value |
|---|---|
| Average Prompt Processing Speed | 2,453.59 tokens/s |
| Average Generation Speed | 208.55 tokens/s |
| Total Wall Time | 23.2 seconds |
| Context Length | 8,192 tokens |
| KV Cache (K) | q8_0 |
| GPU | NVIDIA RTX PRO 6000 Blackwell Server Edition |
| GPU VRAM Capacity | 96 GB |
| Peak GPU VRAM Usage | 10.42 GiB |
| Peak GPU Utilization | 88% |
| GPU Layers Offloaded | 99 (-ngl 99) |
| Random Seed | 42 |
| Speculative Decoding | MTP (draft_n_max=2) |
| Test Runs | 3 |
Test Shots
| Shot | Test |
|---|---|
| Shot 1 | Vision OCR β Image 1 |
| Shot 2 | Vision OCR β Image 2 |
| Shot 3 | Vision OCR β Image 3 |
Run Inference
./build/bin/llama-cli \
-m /path/to/models/LightOnOCR-3-4B-MTP.BF16.gguf \
--mmproj /path/to/models/LightOnOCR-3-4B-MTP.mmproj-bf16.gguf \
--image /path/to/image.jpeg \
--spec-type draft-mtp \
--spec-draft-n-max 2 \
-ngl 99 \
-c 8192 \
--cache-type-k q8_0 \
--seed 42 \
-n 1024 \
-st \
-p "OCR the image."
Performance results reflect this specific hardware and inference configuration. Actual throughput may vary depending on the prompt, model, software build, and runtime settings.
Snapshot(3)
llama.cpp
LLM inference in C/C++ β https://github.com/ggml-org/llama.cpp
MTP-repackaged and quantized using llama.cpp by β prithivMLmods.
- Downloads last month
- -
Model tree for prithivMLmods/LightOnOCR-3-4B-MTP-Repacked
Base model
lightonai/LightOnOCR-3-4B


