File size: 2,216 Bytes
eb133b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Оптимізація швидкодії 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`