Spaces:
Sleeping
Sleeping
| # Оптимізація швидкодії LightOnOCR-1B на M3 Max | |
| ## Поточна ситуація | |
| - **PyTorch на MPS**: ~4 хвилини на сторінку (дуже повільно) | |
| - **Причина**: MPS backend значно повільніший за CUDA для трансформерів | |
| ## Швидкі оптимізації (PyTorch) | |
| ### 1. Зменшення max_tokens | |
| ```python | |
| # У backends/pytorch_backend.py, рядок ~95 | |
| generated_ids = self.model.generate( | |
| **inputs, | |
| max_new_tokens=1024, # Було 2048, зменшити до 512-1024 | |
| temperature=temperature, | |
| do_sample=temperature > 0, | |
| pad_token_id=self.processor.tokenizer.eos_token_id | |
| ) | |
| ``` | |
| ### 2. Використання нижчої роздільної здатності | |
| ```bash | |
| # Замість scale=1.5, використовуйте scale=1.0 | |
| python ocr_cli.py document.pdf --scale 1.0 | |
| ``` | |
| ## Рекомендоване рішення: GGUF + llama.cpp | |
| ### Чому GGUF швидший? | |
| - Оптимізований для Apple Silicon (Metal) | |
| - Квантизація (Q8_0) зменшує розмір і прискорює | |
| - Спеціалізований inference engine | |
| ### Встановлення | |
| ```bash | |
| # 1. Встановити llama-cpp-python з Metal support | |
| CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python | |
| # 2. Завантажити GGUF модель | |
| git lfs install | |
| git clone https://huggingface.co/ggml-org/LightOnOCR-1B-1025-GGUF | |
| # Або | |
| git clone https://huggingface.co/Mungert/LightOnOCR-1B-1025-GGUF | |
| ``` | |
| ### Використання | |
| ```bash | |
| # Після завантаження моделі | |
| python ocr_cli.py document.pdf --backend gguf --model-path path/to/model.gguf | |
| ``` | |
| ## Очікувані результати | |
| - **PyTorch оптимізований**: ~2-3 хвилини на сторінку | |
| - **GGUF Q8_0**: ~30-60 секунд на сторінку (орієнтовно) | |
| ## Примітка | |
| GGUF backend у поточній версії є заглушкою. Для повної підтримки потрібно: | |
| 1. Завантажити GGUF модель | |
| 2. Реалізувати vision model support у `backends/gguf_backend.py` | |