design-systems: add 74 brand DESIGN.md files (VoltAgent/awesome-design-md)
- 74 brands: airbnb, stripe, apple, figma, linear, vercel, etc. - 147 files: DESIGN.md + README.md per brand (~2.1 MB) - Each DESIGN.md contains structured brand analysis (colors, typography, components) - Updated 00-overview.md with new design-systems directory
This commit is contained in:
1 parent
e3738f2b3e
commit
76c4c5b4fe
233 files changed
+54886
-1
No files matched your search
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: dots.mocr — Multimodal OCR
|
||||
created: 2026-06-15
|
||||
updated: 2026-06-15
|
||||
type: concept
|
||||
tags: [ocr, inference, local-llm, pdf, parsing]
|
||||
confidence: high
|
||||
---
|
||||
|
||||
# dots.mocr — Multimodal OCR
|
||||
|
||||
**dots.mocr** — мультимодальная OCR-модель от [[xiaohongshu]] (小红书, rednote-hilab), 3B параметров на базе Qwen3-VL-4B. Распознаёт текст на русском, английском, китайском и других языках. Парсит PDF и изображения в структурированные данные (JSON + Markdown + визуализация).
|
||||
|
||||
- Репозиторий: https://github.com/rednote-hilab/dots.mocr
|
||||
- Модель: https://huggingface.co/rednote-hilab/dots.mocr
|
||||
- arXiv: https://arxiv.org/abs/2603.13032
|
||||
|
||||
## Сетап
|
||||
|
||||
**Директория:** `/home/nik/workspace/dots.mocr/`
|
||||
|
||||
**Окружение:** Python 3.12 (через `uv`), `.venv/`
|
||||
|
||||
**Зависимости:** PyTorch 2.7+ cu128, vLLM 0.23, transformers 4.57, PyMuPDF, flash-attn
|
||||
|
||||
```yaml
|
||||
GPU: RTX 3080 Ti (12GB) — выделена под dots.mocr
|
||||
CUDA_VISIBLE_DEVICES=1 (через враппер run_vllm_gpu1.py)
|
||||
Порт: 8000
|
||||
max_model_len: 16384 (ограничение VRAM)
|
||||
```
|
||||
|
||||
## Запуск
|
||||
|
||||
### 1. Сервер vLLM
|
||||
|
||||
```bash
|
||||
cd ~/workspace/dots.mocr
|
||||
source .venv/bin/activate
|
||||
python run_vllm_gpu1.py
|
||||
```
|
||||
|
||||
Грузится ~50 сек, после этого отвечает на порту 8000.
|
||||
|
||||
### 2. Парсинг PDF/изображения
|
||||
|
||||
```bash
|
||||
# Базовый запуск
|
||||
python3 dots_mocr/parser.py file.pdf --port 8000 --model_name model \
|
||||
--num_thread 8 --max_completion_tokens 12000
|
||||
|
||||
# Только текст (чистый md, без layout-разметки и base64-картинок) — быстрее
|
||||
python3 dots_mocr/parser.py file.pdf --port 8000 --model_name model \
|
||||
--num_thread 8 --max_completion_tokens 12000 --prompt prompt_ocr
|
||||
|
||||
# Или через скрипт-помощник
|
||||
./parse.sh file.pdf --output ./results --prompt prompt_ocr
|
||||
```
|
||||
|
||||
### 3. Получение результатов
|
||||
|
||||
```
|
||||
results/ИмяФайла/
|
||||
├── ИмяФайла_page_0.md # Markdown страницы
|
||||
├── ИмяФайла_page_0.jpg # Визуализация с bbox
|
||||
├── ИмяФайла_page_0.json # Layout JSON (если не prompt_ocr)
|
||||
└── ИмяФайла_page_1.md
|
||||
```
|
||||
|
||||
### 4. Склейка всех страниц и очистка
|
||||
|
||||
```bash
|
||||
cd results/Папка
|
||||
cat *_page_*.md > Итог.md
|
||||
# Удалить base64-изображения (актуально для prompt_layout_all_en)
|
||||
sed -e 's/!\[.*\](data:image[^)]*)//g' -e '/^[[:space:]]*$/d' Итог.md > Итог_clean.md
|
||||
```
|
||||
|
||||
## Режимы (промпты)
|
||||
|
||||
| Промпт | Описание | Скорость |
|
||||
|---|---|---|
|
||||
| `prompt_layout_all_en` | Layout + текст + таблицы HTML + формулы LaTeX | ~20-30 с/стр |
|
||||
| `prompt_ocr` | **Только текст** (без layout-разметки) | **~2-5 с/стр** ✅ |
|
||||
| `prompt_layout_only_en` | Только детекция блоков (без текста) | быстро |
|
||||
| `prompt_grounding_ocr` | OCR в заданном bbox | среднее |
|
||||
| `prompt_web_parsing` | Парсинг веб-страниц | среднее |
|
||||
| `prompt_scene_spotting` | Поиск текста на сцене | среднее |
|
||||
| `prompt_image_to_svg` | Конвертация графики в SVG | среднее |
|
||||
| `prompt_general` | Free-form QA (с --custom_prompt) | среднее |
|
||||
|
||||
## Особенности
|
||||
|
||||
- **prompt_ocr** работает в **10 раз быстрее** full layout и выдаёт чистый Markdown без base64-вставок для картинок. Рекомендуется для анализа текстовых документов.
|
||||
- Для сложных PDF с таблицами, формулами и многостраничной вёрсткой — `prompt_layout_all_en` даёт полную картину (HTML таблицы, LaTeX формулы).
|
||||
- Большие "Picture" элементы (декоративные блоки, фоны) могут содержать текст — `prompt_ocr` вытаскивает и его.
|
||||
- `max_model_len=16384` — ограничение из-за 12GB VRAM. Для одного PDF-листа хватает.
|
||||
|
||||
## Проблемы
|
||||
|
||||
- vLLM v0.23 использует V1 engine с multiprocessing spawn, который сбрасывает `CUDA_VISIBLE_DEVICES`. Решение: враппер `run_vllm_gpu1.py` с `os.environ` + `if __name__ == "__main__"`.
|
||||
- При `--gpu-memory-utilization > 0.9` может не хватить памяти для KV-кэша — падает на инициализации.
|
||||
- **Порт 8000** — не конфликтует с llama-server (порт 8080).
|
||||
|
||||
## Связанное
|
||||
|
||||
- [[russian-ocr]] — Tesseract + RapidOCR на CPU (альтернатива без GPU)
|
||||
- [[local-llm]] — общая инфраструктура локальных LLM
|
||||
Reference in new issue
Block a user