init
This commit is contained in:
51
docs/cpu-time-estimate.md
Normal file
51
docs/cpu-time-estimate.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Оценка времени пайплайна на CPU (Ollama, qwen3:14b)
|
||||
|
||||
Оценка основана на архитектуре (этапы 1–4 — вызовы LLM) и замере: **один блок framework на CPU ≈ 15+ минут** (до ответа или до 500).
|
||||
|
||||
## Время на GPU (из ARCHITECTURE_SUMMARY)
|
||||
|
||||
| Этап | Вызовы | Время на GPU |
|
||||
|------|--------|----------------|
|
||||
| 1. Анализ по блокам | 4 (framework, insights, application, limitations) | ~2–5 мин на главу |
|
||||
| 2. Валидация блоков | 4 | ~30 сек на блок → ~2 мин |
|
||||
| 2b. Финальная валидация | 1 | ~30–60 сек |
|
||||
| 3. Извлечение тегов | 1 | ~1–2 мин |
|
||||
| 4. Валидация тегов | 1 | ~20–30 сек |
|
||||
| 6. Эмбеддинги (bge-m3) | 1 | ~5–15 сек |
|
||||
| **Итого на главу (GPU)** | | **~6–11 мин** |
|
||||
|
||||
## Коэффициент замедления CPU vs GPU
|
||||
|
||||
- **«Тяжёлые» вызовы** (длинный контекст: глава + промпт): на GPU ~0.5–1.5 мин, на CPU по замеру **≥15 мин** → ориентир **15–25 мин** на один такой вызов на CPU.
|
||||
- **«Лёгкие» вызовы** (валидация, короткий контекст): на GPU ~30 сек, на CPU грубо **3–6 мин** (в 6–10 раз дольше).
|
||||
|
||||
Используем для расчёта:
|
||||
- тяжёлый вызов (этапы 1 и 3): **20 мин** на CPU;
|
||||
- лёгкий вызов (этапы 2, 2b, 4): **4 мин** на CPU;
|
||||
- эмбеддинги (bge-m3): **1 мин** на CPU.
|
||||
|
||||
## Время на одну главу (CPU)
|
||||
|
||||
| Этап | Кол-во вызовов | Тип | Время (CPU) |
|
||||
|------|-----------------|-----|-------------|
|
||||
| 1. Анализ по блокам | 4 | тяжёлый | 4 × 20 = **80 мин** |
|
||||
| 2. Валидация блоков | 4 | лёгкий | 4 × 4 = **16 мин** |
|
||||
| 2b. Финальная валидация | 1 | лёгкий | **4 мин** |
|
||||
| 3. Извлечение тегов | 1 | тяжёлый | **20 мин** |
|
||||
| 4. Валидация тегов | 1 | лёгкий | **4 мин** |
|
||||
| 5. Мерж | — | без LLM | < 1 мин |
|
||||
| 6. Эмбеддинги | 1 | bge-m3 | **1 мин** |
|
||||
| 7–8. Qdrant, Postgres | — | без LLM | < 1 мин |
|
||||
| **Итого на одну главу** | | | **≈ 126 мин ≈ 2 ч 6 мин** |
|
||||
|
||||
Укрупнённо: **~2–2.5 часа на одну главу** на CPU (с запасом на retry и вариативность).
|
||||
|
||||
## Время на книгу (CPU)
|
||||
|
||||
| Глав в книге | Оценка времени (CPU) |
|
||||
|--------------|----------------------|
|
||||
| 10 | ~20–25 ч |
|
||||
| 20 | ~40–50 ч |
|
||||
| 30 | ~60–75 ч |
|
||||
|
||||
Итого: **полная книга на CPU может занимать десятки часов**; один запуск на всю книгу без GPU обычно неудобен (дни работы, риск обрыва). Имеет смысл либо ставить GPU/Apple Silicon, либо гонять по одной главе и планировать долгие прогоны.
|
||||
57
docs/ollama-models.md
Normal file
57
docs/ollama-models.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Модели Ollama для пайплайна
|
||||
|
||||
Используются две модели:
|
||||
|
||||
| Назначение | Модель в Ollama | Команда pull | Примечание |
|
||||
|------------|-----------------|--------------|------------|
|
||||
| LLM: анализ и валидация (шаги 1–4) | `qwen3:14b` | `ollama pull qwen3:14b` | ~9.3 GB (Q4_K_M). Ближе к 8bit: `qwen3:14b-q8_0` (~16 GB). |
|
||||
| Эмбеддинги (шаг 6) | `bge-m3` | `ollama pull bge-m3` | ~1.2 GB, размерность 1024, контекст 8192. |
|
||||
|
||||
## Загрузка моделей при работе через Docker
|
||||
|
||||
1. Запустите контейнер Ollama:
|
||||
|
||||
```bash
|
||||
docker compose up -d ollama
|
||||
```
|
||||
|
||||
2. Дождитесь готовности (healthcheck), затем загрузите модели **внутри контейнера**:
|
||||
|
||||
```bash
|
||||
# LLM для анализа глав и валидации
|
||||
docker exec -it ollama ollama pull qwen3:14b
|
||||
|
||||
# Модель эмбеддингов
|
||||
docker exec -it ollama ollama pull bge-m3
|
||||
```
|
||||
|
||||
3. Проверка списка моделей:
|
||||
|
||||
```bash
|
||||
docker exec ollama ollama list
|
||||
```
|
||||
|
||||
или через API:
|
||||
|
||||
```bash
|
||||
curl http://localhost:11434/api/tags
|
||||
```
|
||||
|
||||
## Варианты LLM
|
||||
|
||||
- **qwen3:14b** — по умолчанию, меньше по размеру (~9.3 GB).
|
||||
- **qwen3:14b-q8_0** — выше качество, ближе к «8bit» из архитектуры (~16 GB).
|
||||
|
||||
В коде пайплайна имя модели задаётся конфигом (например, `OLLAMA_LLM_MODEL=qwen3:14b`).
|
||||
|
||||
## Локальный Ollama (без Docker)
|
||||
|
||||
Если Ollama установлен локально:
|
||||
|
||||
```bash
|
||||
ollama pull qwen3:14b
|
||||
ollama pull bge-m3
|
||||
ollama list
|
||||
```
|
||||
|
||||
В `docker-compose` сервис `ollama` тогда можно не поднимать; скрипты должны обращаться к `http://localhost:11434`.
|
||||
Reference in New Issue
Block a user