From f0c85990355f455a100f8adb025e9ae26df2fffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 28 Jun 2026 14:38:29 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D1=80=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=B6=D0=B5=D0=BB=D0=B5=D0=B7=D0=BE=20=E2=80=94?= =?UTF-8?q?=201=C3=97=20RTX=203060=2012GB=20+=20=D0=BF=D0=BB=D0=B0=D0=BD?= =?UTF-8?q?=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20oll?= =?UTF-8?q?ama?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/local-llm-setup.md | 49 +++++++++++++++----------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/History/local-llm-setup.md b/History/local-llm-setup.md index be3c0ae..943ed6a 100644 --- a/History/local-llm-setup.md +++ b/History/local-llm-setup.md @@ -1,39 +1,28 @@ -# Локальный LLM на 2× RTX 3060 (24 ГБ суммарно) +# Локальный LLM -Дата: 28.06.2026 +## Железо (проверено 28.06.2026) -## Железо - -2× NVIDIA RTX 3060 (12 ГБ каждая), без NVLink, PCIe. +- **GPU:** 1× RTX 3060, 12 ГБ VRAM +- **RAM:** 15 ГБ +- **Доступ:** `ssh naeel@192.168.1.49`, ключ `Y:\MY\Nubes\id_ed25519` +- **Ollama:** не установлен ## Что влезает -| Модель | Квантизация | Память | Куда | Скорость | Приоритет | -|--------|------------|--------|------|----------|-----------| -| 7-9B | Q4/Q5 | ~6 ГБ | 1 карта | Быстро | Классификация, извлечение | -| 14B | Q4 | ~8-9 ГБ | **1 карта** | 15-30 ток/с | Основная рабочая | -| 32B | Q4 | ~18-20 ГБ | Сплит на 2 карты | Медленно | Максимальное качество | +| Модель | Квантизация | Память | Скорость | Для чего | +|--------|------------|--------|----------|----------| +| 7-9B | Q4/Q5 | ~6 ГБ | Быстро | classify, extract | +| 14B | Q4 | ~8-9 ГБ | 15-30 ток/с | Весь пайплайн | +| 32B | ❌ | 18-20 ГБ | — | Не влезает | -## Важно про две карты +## План установки -- Сплит модели на 2 карты через PCIe (без NVLink) — часто **медленнее** чем та же модель на одной. -- **Лучший расклад:** 14B на одной карте, вторая — на параллелизм (два документа одновременно) или под отдельную модель (мелкая на classify, 14B на diff). +1. `ollama pull qwen2.5:7b` (старт) или `qwen2.5:14b` (основная) +2. Ollama отдаёт OpenAI-совместимый API на `http://localhost:11434/v1` +3. В `llm_client.py`: `url="http://192.168.1.49:11434/v1/chat/completions"`, `model="qwen2.5:14b"` +4. API-ключ не нужен (ollama локально без авторизации) -## Движок +## Переключение -- **llama.cpp (GGUF)** или **ExLlamaV2** — оптимальны для consumer-карт без NVLink. -- vLLM/TGI — выше throughput, но больше VRAM-запас, на 12 ГБ тесно. - -## Засады - -- `max_tokens=8000` — большая спецификация = длинный ответ = сотни секунд. Чанковать. -- Конкурентность: 1-2 запроса параллельно. Не для многопользовательской нагрузки. -- Точность чисел: подстраховать арифметикой + UNRESOLVED. - -## Рекомендация - -**Qwen2.5-14B или Qwen3-14B в Q4/Q5 на одной 3060** — уверенно тянет весь пайплайн для несложных документов. Проверить на testgen/. - -## Сейчас - -api.aillm.ru (gpt-oss-120b, бесплатно). Код готов к смене LLM через `llm_client.py` DI. +Код уже готов через DI: `HttpxLLMClient(url=..., key=..., model=...)`. +Для переключения достаточно поменять `url` и `model`.