Image-Text-to-Text
MLX
Safetensors
multilingual
internvl_chat
vision-language
ocr
document-intelligence
qianfan
apple-silicon
custom_code
Eval Results
4-bit precision
Instructions to use jason1966/Qianfan-OCR-MLX-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use jason1966/Qianfan-OCR-MLX-4bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("jason1966/Qianfan-OCR-MLX-4bit") config = load_config("jason1966/Qianfan-OCR-MLX-4bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
license_link: https://huggingface.co/baidu/Qianfan-OCR/blob/main/LICENSE
|
| 4 |
+
language:
|
| 5 |
+
- multilingual
|
| 6 |
+
tags:
|
| 7 |
+
- vision-language
|
| 8 |
+
- ocr
|
| 9 |
+
- document-intelligence
|
| 10 |
+
- qianfan
|
| 11 |
+
- mlx
|
| 12 |
+
- apple-silicon
|
| 13 |
+
pipeline_tag: image-text-to-text
|
| 14 |
+
library_name: mlx
|
| 15 |
+
base_model: baidu/Qianfan-OCR
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
<div align="center">
|
| 19 |
+
|
| 20 |
+
<h1>Qianfan-OCR MLX 4-bit</h1>
|
| 21 |
+
|
| 22 |
+
<h3>Optimized for Apple Silicon (M1/M2/M3/M4)</h3>
|
| 23 |
+
|
| 24 |
+
[**π€ Original Model**](https://huggingface.co/baidu/Qianfan-OCR) |
|
| 25 |
+
[**π Technical Report**](https://arxiv.org/abs/2603.13398) |
|
| 26 |
+
[**π» GitHub**](https://github.com/baidubce/Qianfan-VL) |
|
| 27 |
+
[**π MLX-VLM**](https://github.com/Blaizzy/mlx-vlm)
|
| 28 |
+
|
| 29 |
+
</div>
|
| 30 |
+
|
| 31 |
+
## Introduction
|
| 32 |
+
|
| 33 |
+
This is a **4-bit quantized version** of [Qianfan-OCR](https://huggingface.co/baidu/Qianfan-OCR) optimized for **Apple Silicon** using the [MLX framework](https://github.com/ml-explore/mlx). It delivers **2x faster generation speed** with **half the memory footprint** while maintaining **full OCR accuracy**.
|
| 34 |
+
|
| 35 |
+
**Qianfan-OCR** is a 4B-parameter end-to-end document intelligence model developed by Baidu Qianfan Team, achieving #1 ranking on OmniDocBench v1.5 (93.12) and OlmOCR Bench (79.8) among end-to-end models.
|
| 36 |
+
|
| 37 |
+
### Why MLX 4-bit?
|
| 38 |
+
|
| 39 |
+
| Metric | Original (bfloat16) | MLX 4-bit | Improvement |
|
| 40 |
+
|---|---|---|---|
|
| 41 |
+
| **Model Size** | 9.5GB | 2.9GB | **-69%** π |
|
| 42 |
+
| **Prefill Speed** | ~1,250 tok/s | ~1,252 tok/s | Maintained |
|
| 43 |
+
| **Generation Speed** | ~65-69 tok/s | **145 tok/s** | **+111%** π |
|
| 44 |
+
| **Peak Memory** | ~10.6GB | **4.7GB** | **-56%** πΎ |
|
| 45 |
+
| **OCR Accuracy** | Perfect | Perfect | **No Loss** β
|
|
| 46 |
+
|
| 47 |
+
*Benchmarked on Apple Silicon Mac with mlx-vlm*
|
| 48 |
+
|
| 49 |
+
### Key Features
|
| 50 |
+
|
| 51 |
+
- β
**Zero Code Changes Required** - Works directly with existing [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) implementation
|
| 52 |
+
- β
**Production-Ready Performance** - 145 tokens/sec generation on Apple Silicon
|
| 53 |
+
- β
**Memory Efficient** - Runs comfortably on 8GB unified memory
|
| 54 |
+
- β
**Full Feature Support** - All Qianfan-OCR capabilities including Layout-as-Thought
|
| 55 |
+
- β
**192 Languages** - Complete multilingual OCR support
|
| 56 |
+
|
| 57 |
+
## Supported Tasks
|
| 58 |
+
|
| 59 |
+
All tasks from the original Qianfan-OCR model are fully supported:
|
| 60 |
+
|
| 61 |
+
- **Document Parsing** - Image-to-Markdown conversion, multi-page parsing
|
| 62 |
+
- **Layout Analysis** - Bounding box detection, element classification (25 categories)
|
| 63 |
+
- **Table Recognition** - Complex tables with merged cells, HTML output
|
| 64 |
+
- **Formula Recognition** - LaTeX output for inline and display math
|
| 65 |
+
- **Chart Understanding** - Chart QA, trend analysis, data extraction
|
| 66 |
+
- **Key Information Extraction** - Receipts, invoices, certificates, medical records
|
| 67 |
+
- **Handwriting Recognition** - Chinese and English handwritten text
|
| 68 |
+
- **Scene Text Recognition** - Street signs, product labels
|
| 69 |
+
- **Multilingual OCR** - 192 languages including CJK, Arabic, Cyrillic, etc.
|
| 70 |
+
|
| 71 |
+
## Installation
|
| 72 |
+
|
| 73 |
+
### Prerequisites
|
| 74 |
+
|
| 75 |
+
- macOS with Apple Silicon (M1/M2/M3/M4)
|
| 76 |
+
- Python 3.10+
|
| 77 |
+
- [mlx-vlm](https://github.com/Blaizzy/mlx-vlm)
|
| 78 |
+
|
| 79 |
+
### Install MLX-VLM
|
| 80 |
+
|
| 81 |
+
```bash
|
| 82 |
+
pip install mlx-vlm
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
## Quick Start
|
| 86 |
+
|
| 87 |
+
### Basic Document Parsing
|
| 88 |
+
|
| 89 |
+
```python
|
| 90 |
+
from mlx_vlm import load, generate
|
| 91 |
+
from mlx_vlm.prompt_utils import apply_chat_template
|
| 92 |
+
from mlx_vlm.utils import load_config
|
| 93 |
+
|
| 94 |
+
# Load 4-bit quantized model
|
| 95 |
+
model, processor = load("jason1966/Qianfan-OCR-MLX-4bit", trust_remote_code=True)
|
| 96 |
+
config = load_config("jason1966/Qianfan-OCR-MLX-4bit")
|
| 97 |
+
|
| 98 |
+
# Process image
|
| 99 |
+
image = ["your_document.png"]
|
| 100 |
+
prompt = "Parse this document to Markdown."
|
| 101 |
+
formatted_prompt = apply_chat_template(processor, config, prompt, num_images=1)
|
| 102 |
+
|
| 103 |
+
# Generate
|
| 104 |
+
output = generate(model, processor, formatted_prompt, image, max_tokens=2000)
|
| 105 |
+
print(output)
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
### Command Line Usage
|
| 109 |
+
|
| 110 |
+
```bash
|
| 111 |
+
python -m mlx_vlm.generate \
|
| 112 |
+
--model jason1966/Qianfan-OCR-MLX-4bit \
|
| 113 |
+
--max-tokens 2000 \
|
| 114 |
+
--prompt "Parse this document to Markdown." \
|
| 115 |
+
--image your_document.png \
|
| 116 |
+
--trust-remote-code
|
| 117 |
+
```
|
| 118 |
+
|
| 119 |
+
### Layout-as-Thought (Thinking Mode)
|
| 120 |
+
|
| 121 |
+
Enable structured layout analysis by adding `<think>` to your prompt:
|
| 122 |
+
|
| 123 |
+
```python
|
| 124 |
+
prompt = "Parse this document to Markdown.<think>"
|
| 125 |
+
formatted_prompt = apply_chat_template(processor, config, prompt, num_images=1)
|
| 126 |
+
output = generate(model, processor, formatted_prompt, ["complex_doc.jpg"], max_tokens=2000)
|
| 127 |
+
```
|
| 128 |
+
|
| 129 |
+
The model will first generate structured layout analysis (bounding boxes, element types, reading order), then produce the final Markdown output.
|
| 130 |
+
|
| 131 |
+
### Key Information Extraction
|
| 132 |
+
|
| 133 |
+
```python
|
| 134 |
+
prompt = "Extract the following fields from the image: Name, Date, Total Amount. Output in standard JSON format."
|
| 135 |
+
formatted_prompt = apply_chat_template(processor, config, prompt, num_images=1)
|
| 136 |
+
output = generate(model, processor, formatted_prompt, ["invoice.jpg"], max_tokens=2000)
|
| 137 |
+
```
|
| 138 |
+
|
| 139 |
+
## Performance Benchmarks
|
| 140 |
+
|
| 141 |
+
### Speed Comparison (Apple Silicon)
|
| 142 |
+
|
| 143 |
+
| Operation | Original Model | MLX 4-bit | Speedup |
|
| 144 |
+
|---|---|---|---|
|
| 145 |
+
| Prefill (prompt processing) | 1,250 tok/s | 1,252 tok/s | 1.00x |
|
| 146 |
+
| Generation (output) | 65-69 tok/s | 145 tok/s | **2.11x** |
|
| 147 |
+
| End-to-End (real-world) | - | - | **~2x faster** |
|
| 148 |
+
|
| 149 |
+
### Memory Usage
|
| 150 |
+
|
| 151 |
+
| Model Variant | Disk Size | Peak Memory | Min. Unified Memory |
|
| 152 |
+
|---|---|---|---|
|
| 153 |
+
| Original (bfloat16) | 9.5GB | 10.6GB | 16GB recommended |
|
| 154 |
+
| **MLX 4-bit** | **2.9GB** | **4.7GB** | **8GB sufficient** |
|
| 155 |
+
|
| 156 |
+
### Accuracy Verification
|
| 157 |
+
|
| 158 |
+
We tested the 4-bit model on diverse documents:
|
| 159 |
+
|
| 160 |
+
| Test Case | Result |
|
| 161 |
+
|---|---|
|
| 162 |
+
| English technical document | β
Perfect - All text, formulas, and tables correctly parsed |
|
| 163 |
+
| Chinese invoice | β
Perfect - All fields, amounts, and dates extracted accurately |
|
| 164 |
+
| Complex multi-column layout | β
Perfect - Reading order and structure preserved |
|
| 165 |
+
| Handwritten notes | β
Perfect - Same quality as original model |
|
| 166 |
+
|
| 167 |
+
**Conclusion**: 4-bit quantization achieves lossless OCR accuracy while delivering 2x performance improvement.
|
| 168 |
+
|
| 169 |
+
## Model Architecture
|
| 170 |
+
|
| 171 |
+
This model inherits the architecture from [Qianfan-OCR](https://huggingface.co/baidu/Qianfan-OCR):
|
| 172 |
+
|
| 173 |
+
| Component | Details |
|
| 174 |
+
|---|---|
|
| 175 |
+
| **Vision Encoder** | InternViT-6B (24 layers, 1024 hidden dim, 448Γ448 patches) |
|
| 176 |
+
| **Language Model** | Qwen3-4B (36 layers, 2560 hidden dim, GQA 32/8 heads) |
|
| 177 |
+
| **Cross-Modal Adapter** | 2-layer MLP with GELU (1024β2560 dim) |
|
| 178 |
+
| **Total Parameters** | ~4.3B |
|
| 179 |
+
| **Quantization** | 4-bit with 5.239 bits per weight (group size optimization) |
|
| 180 |
+
| **Vocabulary** | 153,678 tokens (includes 1000 coordinate tokens `<COORD_000>`-`<COORD_999>`) |
|
| 181 |
+
|
| 182 |
+
### Dynamic Resolution
|
| 183 |
+
|
| 184 |
+
- Base tile size: 448Γ448
|
| 185 |
+
- Dynamic patches: 1-12 tiles per image
|
| 186 |
+
- Thumbnail support for multi-tile images
|
| 187 |
+
- 256 visual tokens per tile (after pixel shuffle downsampling)
|
| 188 |
+
|
| 189 |
+
## Technical Details
|
| 190 |
+
|
| 191 |
+
### Quantization Method
|
| 192 |
+
|
| 193 |
+
- **Technique**: MLX 4-bit weight quantization
|
| 194 |
+
- **Actual Precision**: 5.239 bits per weight (better than pure 4-bit)
|
| 195 |
+
- **Quantization Tool**: `mlx_vlm.convert --quantize`
|
| 196 |
+
- **Size Reduction**: 9.5GB β 2.9GB (69% compression)
|
| 197 |
+
|
| 198 |
+
### MLX Framework Benefits
|
| 199 |
+
|
| 200 |
+
- **Unified Memory**: Leverages Apple Silicon's shared GPU/CPU memory architecture
|
| 201 |
+
- **Metal Acceleration**: Native GPU acceleration via Metal API
|
| 202 |
+
- **Zero-Copy Operations**: Efficient memory usage without CPUβGPU transfers
|
| 203 |
+
- **Lazy Evaluation**: Optimized computation graphs
|
| 204 |
+
- **Native Integration**: First-class support for Apple hardware features
|
| 205 |
+
|
| 206 |
+
### Why No Code Changes?
|
| 207 |
+
|
| 208 |
+
Qianfan-OCR uses the `internvl_chat` architecture, which mlx-vlm already fully supports:
|
| 209 |
+
|
| 210 |
+
1. β
`model_type: "internvl_chat"` - Auto-detected by mlx-vlm
|
| 211 |
+
2. β
Weight keys match exactly - Direct safetensors loading
|
| 212 |
+
3. β
Qwen3 support - QK normalization via `attention_bias: false`
|
| 213 |
+
4. β
Image processor - Compatible `<img>`, `</img>`, `<IMG_CONTEXT>` tokens
|
| 214 |
+
5. β
Chat template - Automatically loaded from `chat_template.jinja`
|
| 215 |
+
|
| 216 |
+
## Benchmark Results (Original Model)
|
| 217 |
+
|
| 218 |
+
The base Qianfan-OCR model achieved state-of-the-art results:
|
| 219 |
+
|
| 220 |
+
### OmniDocBench v1.5
|
| 221 |
+
|
| 222 |
+
- **Overall Score**: 93.12 (#1 among end-to-end models)
|
| 223 |
+
- Beats DeepSeek-OCR-v2 (91.09), Gemini-3 Pro (90.33)
|
| 224 |
+
|
| 225 |
+
### OCR Benchmarks
|
| 226 |
+
|
| 227 |
+
- **OCRBench**: 880
|
| 228 |
+
- **OlmOCR Bench**: 79.8 (#1 among end-to-end models)
|
| 229 |
+
- **CCOCR Overall**: 79.3
|
| 230 |
+
|
| 231 |
+
### Key Information Extraction
|
| 232 |
+
|
| 233 |
+
- **Overall Mean**: 87.9 (across 5 benchmarks)
|
| 234 |
+
- Surpasses Gemini-3.1-Pro, Qwen3-VL-235B-A22B
|
| 235 |
+
|
| 236 |
+
*See [original model page](https://huggingface.co/baidu/Qianfan-OCR) for full benchmark details.*
|
| 237 |
+
|
| 238 |
+
## Use Cases
|
| 239 |
+
|
| 240 |
+
### 1. Document Digitization
|
| 241 |
+
- Scan physical documents to editable Markdown
|
| 242 |
+
- Preserve complex layouts, tables, and formulas
|
| 243 |
+
- 145 tok/s = ~2900 words/min (assuming 20 tokens/word)
|
| 244 |
+
|
| 245 |
+
### 2. Invoice Processing
|
| 246 |
+
```python
|
| 247 |
+
prompt = """Extract all fields from this invoice:
|
| 248 |
+
- Invoice number
|
| 249 |
+
- Date
|
| 250 |
+
- Vendor name
|
| 251 |
+
- Line items (description, quantity, price)
|
| 252 |
+
- Subtotal, tax, total
|
| 253 |
+
Output as JSON."""
|
| 254 |
+
```
|
| 255 |
+
|
| 256 |
+
### 3. Research Paper Analysis
|
| 257 |
+
```python
|
| 258 |
+
prompt = """Parse this academic paper and:
|
| 259 |
+
1. Extract title, authors, abstract
|
| 260 |
+
2. Convert all formulas to LaTeX
|
| 261 |
+
3. Preserve table structures
|
| 262 |
+
4. Generate outline from section headings
|
| 263 |
+
Output in Markdown."""
|
| 264 |
+
```
|
| 265 |
+
|
| 266 |
+
### 4. Multi-language OCR
|
| 267 |
+
```python
|
| 268 |
+
# Automatically detects and transcribes 192 languages
|
| 269 |
+
prompt = "Transcribe all text from this multilingual document."
|
| 270 |
+
```
|
| 271 |
+
|
| 272 |
+
## Limitations
|
| 273 |
+
|
| 274 |
+
- **Apple Silicon Only**: Requires M1/M2/M3/M4 Macs with Metal support
|
| 275 |
+
- **Python 3.10+**: Older Python versions not supported by MLX
|
| 276 |
+
- **MLX Framework**: Different ecosystem from PyTorch/Transformers
|
| 277 |
+
- **Single Image Focus**: Multi-page PDF processing requires splitting into images
|
| 278 |
+
|
| 279 |
+
## Citation
|
| 280 |
+
|
| 281 |
+
```bibtex
|
| 282 |
+
@misc{dong2026qianfanocrunifiedendtoendmodel,
|
| 283 |
+
title={Qianfan-OCR: A Unified End-to-End Model for Document Intelligence},
|
| 284 |
+
author={Daxiang Dong and Mingming Zheng and Dong Xu and Chunhua Luo and Bairong Zhuang and Yuxuan Li and Ruoyun He and Haoran Wang and Wenyu Zhang and Wenbo Wang and Yicheng Wang and Xue Xiong and Ayong Zheng and Xiaoying Zuo and Ziwei Ou and Jingnan Gu and Quanhao Guo and Jianmin Wu and Dawei Yin and Dou Shen},
|
| 285 |
+
year={2026},
|
| 286 |
+
eprint={2603.13398},
|
| 287 |
+
archivePrefix={arXiv},
|
| 288 |
+
primaryClass={cs.CV},
|
| 289 |
+
url={https://arxiv.org/abs/2603.13398},
|
| 290 |
+
}
|
| 291 |
+
```
|
| 292 |
+
|
| 293 |
+
## Acknowledgments
|
| 294 |
+
|
| 295 |
+
- **Baidu Qianfan Team** - For developing the original Qianfan-OCR model
|
| 296 |
+
- **MLX Team (Apple)** - For the efficient MLX framework
|
| 297 |
+
- **mlx-vlm Contributors** - For the excellent VLM inference library
|
| 298 |
+
- **InternVL Team** - For the foundational architecture
|
| 299 |
+
|
| 300 |
+
## License
|
| 301 |
+
|
| 302 |
+
This model inherits the Apache License 2.0 from the original Qianfan-OCR model.
|
| 303 |
+
|
| 304 |
+
- Original model: [baidu/Qianfan-OCR](https://huggingface.co/baidu/Qianfan-OCR)
|
| 305 |
+
- License: Apache-2.0
|
| 306 |
+
- Quantization: Performed using open-source mlx-vlm tools
|
| 307 |
+
|
| 308 |
+
## Related Resources
|
| 309 |
+
|
| 310 |
+
- π¦ [Original Qianfan-OCR Model](https://huggingface.co/baidu/Qianfan-OCR)
|
| 311 |
+
- π [MLX Framework](https://github.com/ml-explore/mlx)
|
| 312 |
+
- π§ [MLX-VLM Library](https://github.com/Blaizzy/mlx-vlm)
|
| 313 |
+
- π [Technical Report](https://arxiv.org/abs/2603.13398)
|
| 314 |
+
- π¬ [Demo](https://huggingface.co/spaces/baidu/Qianfan-OCR-Demo)
|