File size: 3,871 Bytes
aa28446
6927c3b
aa28446
dfb653b
 
 
 
 
 
 
 
aa28446
 
dfb653b
aa28446
273dfbd
 
 
aa28446
dfb653b
 
 
 
f9dc105
aa28446
 
b685d53
aa28446
dfb653b
 
 
 
 
 
 
aa28446
dfb653b
 
aa28446
 
 
dfb653b
aa28446
 
 
 
80cbcc7
 
 
 
 
 
 
dfb653b
 
aa28446
80cbcc7
aa28446
 
dfb653b
 
 
 
 
 
 
 
 
 
 
aa28446
 
 
dfb653b
 
 
80cbcc7
dfb653b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3262ca6
 
 
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
license: apache-2.0
language: ru
tags:
  - vision-language
  - document-ai
  - table-extraction
  - russian
  - qlora
base_model:
  - ibm-granite/granite-vision-3.3-2b
---

# 🪨 Granite-Vision 3.3-2B-1.1 — **RU small Table Extractor** by NIKTA AI 

Была обучена на небольшом синтетическом датасете для тестирования на pdf таблицах печатного шрифта для сравнения с Qwen-2.5-VL-3b, Granite-Vision-3.3-2B(оригинал).

Полный чекпойнт (IBM Granite-Vision 3.3-2B + QLoRA-файнтюн) для **извлечения таблиц на русском языке** из изображений экстракшн таблиц.

✅ Отвечает строго в формате валидного JSON:
```json
{"columns": [...], "rows": [[...], [...]]}
```

---

## 📊 Бенчмарк (примерные результаты и разница между моделями)

| Таблица       | IBM Granite (base)              | Granite-RU (этот репозиторий) | Ошибки |
|---------------|---------------------------------|-------------------------------|--------|
| `table_1.png` | ✅                               | ✅                             | —      |
| `table_2.png` | ✅                               | ⚠                             | `Блохин``Бложин`<br>`Павловна``Гавловна` |
| `table_3.png` | ✅                               | ✅                             | —      |
| `table_4.png` | ⚠ `rows` без вложенности (неверно) | ✅ `rows` вложенный формат      | —      |
| `table_5.png` | ✅                               | ✅                             | —      |

**Вывод:**  
`Granite-RU` обходит оригинальный `ibm-granite-3.3-2b` и Qwen 2.5 VL 3b в точности, особенно в структурной корректности: `rows` всегда двухмерный список (`[[...], [...]]`), что упрощает последующую обработку. Ошибки сведены к минимуму.

---

## 🚀 Быстрый старт

```python
from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image
import json, torch

model_id = "fron1runner/granite-ru"

model = (AutoModelForVision2Seq
         .from_pretrained(model_id, _attn_implementation="sdpa")
         .half().cuda())

proc = AutoProcessor.from_pretrained(model_id)

img = Image.open("sample.png").convert("RGB")

prompt = proc.apply_chat_template([
    {
        "role": "system",
        "content": [{"type": "text", "text": "Отвечай только валидным JSON {\"columns\":[],\"rows\":[[]]}."}]
    },
    {
        "role": "user",
        "content": [
            {"type": "image", "image": img},
            {"type": "text", "text": "Извлеки таблицу полностью и верни только JSON."}
        ]
    }
], add_generation_prompt=True)

batch = proc(text=prompt, images=[[img]], return_tensors="pt").to("cuda")

out = model.generate(**batch, max_new_tokens=384, temperature=0.1)

print(json.loads(proc.decode(out[0], skip_special_tokens=True)))
```

---

## 🧠 Подходит для

- Систем документооборота
- OCR-интеграций с AI
- RAG-систем
- Финансовых, юридических, административных таблиц
- Препроцессинга для LLM
- Средних и малых таблиц

---

**🧪 Model by `fron1runner` NIKTA AI company**  
На базе `ibm-granite/granite-vision-3.3-2b` с лёгким QLoRA дообучением на синтетике.

Автор: Компания NIKTA AI, Виктор Колесников