textmachine/docs/research/06-local-models.md
Claude (backend session) 9bb00d49f2 Initial commit: documentation, eval polygon, backend step 0 verdict
TextMachine project repository (AI translation of literary books).
Includes: v2 architecture decisions, MVP plan, research 01-12,
polygon experiments 01-03, backend-session revalidation verdict
(03-implementation-notes.md).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 06:50:59 +03:00

32 KiB
Raw Permalink Blame History

Локальные модели на GPU 8GB VRAM + 32GB RAM для пайплайна TextMachine

Дата исследования: 2026-07-04. Железо-референс: RTX 3060 12GB / RTX 4060 8GB класс, 8GB VRAM + 32GB RAM.

TL;DR

  1. Экономического смысла в локальном черновом переводе почти нет. DeepSeek V4 Flash стоит $0.14/1M input (cache miss) / $0.28/1M output — это сопоставимо с ценой одного только электричества локальной генерации (~$0.100.25/1M output tokens на RTX 4060), при кратно худшем качестве локальной 914B модели.
  2. Главная реальная роль локальной модели — 18+/цензурно-рискованный контент: пре-скрининг чанков (детектор рисков) и перевод фрагментов, которые API-провайдеры отказываются обрабатывать. Здесь локальная abliterated-модель не «экономит», а делает возможным то, что через API нестабильно или ведёт к бану.
  3. Лучший стек на этом железе (июль 2026): llama.cpp (llama-server) как рантайм + Qwen3.5-9B (dense, Apache 2.0) как рабочая лошадка + Qwen3.5/3.6-35B-A3B (MoE) через --n-cpu-moe как «тяжёлая» локальная модель (~2030 tok/s даже на 68GB VRAM за счёт выгрузки экспертов в RAM — 32GB RAM это позволяют).
  4. MoE-офлоад — главный технологический сдвиг 2026 для слабых GPU: 35B-A3B модели (Qwen3.5/3.6-35B-A3B, Gemma 4 26B-A4B) на 8GB VRAM работают быстрее и качественнее, чем dense 1314B, которые в 8GB не влезают (8 tok/s и ниже при частичном офлоаде dense-слоёв).
  5. Эмбеддинги — безусловная локальная победа: bge-m3 (MIT, 100+ языков, dense+sparse+ColBERT, 8192 ctx) и Qwen3-Embedding-0.6B (топ MMTEB в своём классе, Apache 2.0) закрывают банк памяти/глоссарий по zh/ja/en/ru бесплатно, работают даже на CPU.
  6. Специализированные MT-модели (NLLB-200, MADLAD-400, ALMA-R) не подходят для художественного перевода: sentence-level, без контекста документа; NLLB-200 и Tower — лицензия CC-BY-NC (некоммерческая). TowerInstruct/ALMA-R устарели (базы Llama-2, 2024).
  7. Для ja→en существуют сильные специализированные модели: Shisa V2 (7B14B, SOTA по японским бенчмаркам в своих классах) и Sugoi-14B-Ultra (Qwen2.5-14B, Apache 2.0, заточен под игровые диалоги/VN), но направление ja→ru они не закрывают.
  8. Uncensored-вариантов много и они стали качественнее: инструмент Heretic (p-e-w) автоматизирует abliteration с минимальной деградацией (KL 0.16 против 0.451.04 у ручных методов на Gemma-3-12B при 3/100 отказов); готовые модели — huihui-ai/, DavidAU Heretic-коллекция, mlabonne/; Mistral Nemo 12B малоцензурен «из коробки».

1. Ландшафт моделей ≤14B для перевода zh/ja/en/ru (июль 2026)

1.1 Универсальные модели — основные кандидаты

Модель Размер/тип Лицензия VRAM Q4 Комментарий
Qwen3.5-9B 9B dense Apache 2.0 ~6 GB Релиз март 2026; сильнейшая CJK-линейка, хорошо понимает русский. Основной кандидат «в полный GPU»
Qwen3.5-35B-A3B / Qwen3.6-35B-A3B 35B MoE, 3.6B active Apache 2.0 68 GB + RAM Через --n-cpu-moe: качество класса ~30B при скорости ~3.6B модели. Лучшее качество, достижимое на этом железе
Gemma 4 12B 12B dense, мультимодальная Apache 2.0 ~78 GB (впритык) Релиз апрель–июнь 2026; 140+ языков претрейна, 256K контекст; «построена под 16GB ноутбук» — на 8GB VRAM потребует KV-квантование/частичный офлоад
Gemma 4 26B-A4B 26B MoE, 3.8B active Apache 2.0 офлоад экспертов в RAM Второй MoE-кандидат для 8GB+32GB конфигурации
Qwen2.5-7B/14B dense Apache 2.0 4.7 / ~9 GB Прошлое поколение; zh↔en «best in class at this size», по ru на 14B — уровень, близкий к GPT-4o-mini (оценка сообщества)

Qwen3.5 вышла в феврале–марте 2026 (весь ряд: 397B-A17B, 122B-A10B, 35B-A3B, 27B, 9B, 4B, 2B, 0.8B — всё Apache 2.0) (codersera, GitHub QwenLM). Gemma 4 вышла 2 апреля 2026: E2B, E4B, 12B, 26B-A4B (MoE), 31B, лицензия Apache 2.0, day-one поддержка llama.cpp/Ollama/vLLM (blog.google, deepmind.google, model card).

Ориентир качества по литературному ja→en (бенчмарк VNTL, перевод визуальных новелл, cosine-similarity к референсу): GPT-4o — 0.752, DeepSeek V3 — 0.742, Qwen2.5-72B — 0.708, Qwen2.5-32B — 0.707, а Sugoi Translator (классический NMT) — 0.609, Google Translate — 0.540 (vntl-leaderboard). Вывод: модели, влезающие в 8GB целиком (79B), находятся заметно ниже 32B-класса, а 32B-класс всё ещё уступает дешёвым API. Разрыв на направлениях с русским (ja→ru, zh→ru) будет ещё больше, т.к. таких данных в претрейне меньше (не проверено на числах — публичных бенчмарков ja→ru для локальных моделей практически нет).

1.2 Специализированные MT-модели — почему они НЕ подходят

  • TowerInstruct-7B/13B (Unbabel): в 2024 был лучшим open-weight MT (обгонял ALMA-R и NLLB-54B), но база — Llama-2, 10 языков (unbabel.com). Устарел. Наследник Tower+ (2B/9B/72B, 2025) силён (arXiv:2506.17080), но лицензия Tower-линейки — CC-BY-NC (некоммерческая) — блокер для продукта (лицензию Tower+ 9B перепроверить перед любым использованием).
  • ALMA-R 13B: contrastive preference tuning поверх Llama-2, покрывает en↔ru/zh, но не ja→ru; sentence-level, поколение 2024. Устарел.
  • NLLB-200 (1.3B/3.3B) и MADLAD-400 (3B): переводят по предложению, без дискурсного контекста — исследования прямо отмечают, что «discourse-level phenomena» они не обрабатывают (WMT24 study, MADLAD-400 paper). Для художественного текста (местоимения, регистр речи, пол говорящего в ja/zh) это дисквалификация. Плюс NLLB-200 — CC-BY-NC. Единственная ниша — дешёвый «подстрочник» для выравнивания/QA, и то сомнительно.

1.3 Японо-специфичные

  • Shisa V2 (shisa.ai, Apache 2.0/MIT в зависимости от базы): 7B (Qwen2.5), 8B (Llama 3.1), 12B (Mistral Nemo), 14B (Phi-4), 32B, 70B. Заявка: SOTA по японским бенчмаркам в каждом классе размеров, +2432% JA-качества к базовым моделям; среди задач — отдельный бенчмарк translation proficiency (blog.shisa.ai, GitHub). На 8GB реально: 7B/8B Q5, 12B Q4, 14B Q4 — впритык/с офлоадом.
  • Sugoi-14B-Ultra (sugoitoolkit): файнтюн Qwen2.5-14B-Instruct под ja→en игровые диалоги/VN; BLEU 21.38 против 13.67 у предшественника на полной новелле Harmonia (4569 строк); Apache 2.0; Q4_K_M — 8.99 GB (на 8GB VRAM — только с офлоадом части слоёв) (HF, blog). Ограничение: только ja→en; для ja→ru пришлось бы делать каскад ja→en→ru с потерями стиля.

1.4 Русско-сильные

  • RuadaptQwen3 (RefalMachine, МГУ/RCC): Qwen3 с заменой токенизатора (+48k русских токенов) + LEP — до +100% скорости генерации русского текста за счёт лучшей токенизации при сохранении качества; есть 4B/8B/32B, GGUF (HF-коллекция). Для ролей с массовой генерацией русского текста токенизация — реальный экономический фактор: русский текст в базовом токенизаторе Qwen «дороже» на десятки процентов.
  • Vikhr (VikhrModels): русифицированные Mistral/Nemo; Vikhr-Nemo-12B — стабильный выбор сообщества; у команды есть собственная ru-арена (GitHub ru_llm_arena).
  • Saiga (Илья Гусев): saiga_nemo_12b, saiga-llama3-8b — сильны в разговорном/литературном русском; в любительском ru-roleplay-бенчмарке лидируют vikhr-7b (65%) и saiga-llama3-8b (62%) среди малых моделей (Mozer/russian-llm-top — методика субъективная, human-rated).
  • T-lite/T-pro (Т-Банк, база Qwen2.5) — сильны в ru-бенчмарках (не проверено в этой сессии).
  • Практическое замечание: свежие Qwen3.5-9B / Gemma 4 12B по русскому, по оценкам сообщества, уже не хуже специализированных ru-файнтюнов прошлых поколений (не проверено на строгих бенчмарках); ru-файнтюны стоит рассматривать прежде всего как редактора русской стилистики, а не переводчика.

2. Uncensored / abliterated модели для 18+

2.1 Инструменты и метод

Heretic (p-e-w, GitHub, PyPI heretic-llm) — автоматическая abliteration: directional ablation + Optuna/TPE-оптимизация, минимизирующая одновременно число отказов и KL-дивергенцию от исходной модели. На Gemma-3-12B-IT: 3/100 отказов при KL 0.16 против KL 0.451.04 у ручных abliteration — т.е. деградация интеллекта минимальна и измерима. Это снимает старую проблему «abliterated = лоботомия». Есть сравнение методов abliteration по архитектурам: arXiv:2512.13655.

2.2 Конкретные модели (HuggingFace)

Модель Что это Примечание
huihui-ai/Qwen3-8B-abliterated abliterated Qwen3-8B huihui-ai — самый плодовитый паблишер abliterated-версий; есть и Qwen3.5-серия (Huihui-Qwen3.5-35B-A3B-abliterated — под MoE-офлоад)
DavidAU Heretic-коллекция Qwen3/Gemma3 и др., обработанные Heretic Заявка «без повреждения модели»; качество проверять на своих текстах
Mistral Nemo 12B и файнтюны (Rocinante, Mag Mell и др.) малоцензурная база Mistral-модели наименее зацензурены «из коробки»; консенсус сообщества для NSFW-прозы (обзор); Shisa V2 12B — на этой же базе (важно для ja)
GLM-4.7-Flash Heretic uncensored для CJK Рекомендуется для zh/ja/ko контента (размер/влезаемость в 8GB — не проверено)

2.3 Реальное качество и роль

  • Abliteration убирает отказы, но не добавляет знаний о NSFW-лексике/стилистике; для перевода жёстких сцен ja→ru качество 812B моделей — «черновик, требующий редактуры», не финальный текст.
  • Рабочая схема: локальная abliterated-модель переводит только флагованные чанки (515% книги), затем человек/дорогая модель редактирует. Либо: локальная модель делает перевод, а API-модель редактирует уже переведённый (менее «токсичный» для фильтров) русский текст.
  • Для детекции рисков abliterated не обязательна: обычная Qwen3.5-4B/9B спокойно классифицирует «этот чанк содержит X» — задача классификации почти не триггерит отказы, но abliterated-версия надёжнее на самом жёстком контенте.

3. Рантаймы на 8GB VRAM

Рантайм Скорость (79B Q4) Параллелизм KV-cache Вердикт для TextMachine
llama.cpp (llama-server) эталон -np N слотов + continuous batching (-cb, вкл. по умолчанию) квантование -ctk/-ctv (q8_0/q4_0) Основной выбор: GGUF, --n-cpu-moe, OpenAI-совместимый API (docs)
Ollama 310% к llama.cpp OLLAMA_NUM_PARALLEL, слабее ограниченное управление Только для быстрых локальных экспериментов; в проде Go-бэкенду проще говорить с llama-server напрямую
vLLM лучший batch-throughput (PagedAttention) отличный PagedAttention На 8GB непрактичен: высокий базовый оверхед, GGUF-поддержка экспериментальна, нет CPU-офлоада экспертов; создан для ≥1624GB (Red Hat comparison)
ExLlamaV2/V3 + TabbyAPI максимум для полностью-GPU моделей tensor-parallel, батчинг Q4/Q6/Q8 KV Лучшая скорость/бит для моделей, целиком влезающих в VRAM — на 8GB это ≤1012B @ ~4bpw; без CPU-офлоада MoE теряет главный козырь этого железа

Ориентиры скорости (Q4, класс RTX 3060/4060)

  • RTX 4060 8GB, Ollama Q4: Mistral 7B — 50.9 tok/s; Qwen2.5-7B — 42.2; Llama 3.1 8B — 41.7; Llama-2 13B — 8.0 tok/s (не влезает, офлоад) (databasemart benchmark).
  • RTX 3060 12GB: 78B Q4 — 4264 tok/s; 14B Q4_K_M — 2336 tok/s (modelfit.io, tyolab benchmark).
  • MoE через --n-cpu-moe: Qwen3.6-35B-A3B — ~30 tok/s на 6GB VRAM с выгрузкой экспертов в RAM (Medium, май 2026, гайд для RTX 3060). Требование: быстрая RAM и ~20+ GB под эксперты — 32GB RAM владельца достаточно.
  • Prompt processing (prefill) в разы быстрее генерации (сотни–тысячи tok/s на GPU) — роли «прочитай много, выведи мало» (скрининг, извлечение терминов, QA) локально особенно выгодны.
  • Параллелизм на 8GB: 24 слота llama-server с KV q8_0 — реалистичный максимум; контекст делится между слотами, поэтому для длинных литературных чанков лучше 12 слота.

4. Роли локальной модели в пайплайне: где выигрыш, а где вред

Роль Локально? Модель Обоснование
Черновой перевод (основной поток) Нет DeepSeek V4 Flash качественнее любой локальной ≤35B и стоит копейки (см. §5). Локальный черновик ухудшит финальное качество и загрузит редактора-LLM работой
Черновой перевод 18+ чанков Да (вынужденно) abliterated Qwen3.5-9B/35B-A3B, Shisa V2 12B (ja), Mistral-Nemo-файнтюны Единственный надёжный путь без риска отказов/бана API. Обязательна редактура
Детектор цензурных рисков (пре-скрининг чанков) Идеальная роль Qwen3.5-4B/9B (можно abliterated) Классификация — лёгкая задача; prefill-heavy (быстро); приватно; спасает от отправки «плохих» чанков в API. Погрешность классификатора дешёво компенсируется порогом
Извлечение терминов/имён в глоссарий Да Qwen3.5-9B, Gemma 4 12B NER-подобная структурная задача, 9B справляется; массовые прогоны по всей книге бесплатны. Но и API-цена этой роли мизерна — решает скорее приватность/оффлайн
Embeddings (память, поиск, консистентность) Безусловно bge-m3 (MIT, dense+sparse+ColBERT, 8192 ctx, 100+ языков), Qwen3-Embedding-0.6B (топ MMTEB класса, Apache 2.0); реранкер: bge-reranker-v2-m3 / Qwen3-Reranker-0.6B Работают даже на CPU, 12GB VRAM; нулевая стоимость, нет вендор-лока (FlagEmbedding, Qwen3-Embedding)
QA консистентности (глоссарий соблюдён? имена не поплыли?) Да (гибрид) точные проверки — код (string match по глоссарию), fuzzy — embeddings + Qwen3.5-9B Большая часть QA — детерминированный код + эмбеддинг-похожесть; LLM нужна только для спорных случаев
Редактор/судья художественного качества Нет Это самая интеллектоёмкая роль; 914B модель систематически «не видит» стилистические проблемы. Ронять сюда качество — убить главную ценность продукта
Языковой аналитик / поп-культурный консультант Нет Требует широких знаний (мемы, отсылки) — слабое место малых моделей

Общий принцип: локальная модель — это (1) страж цензуры, (2) эмбеддинг-фабрика, (3) дешёвый экстрактор структуры. Не переводчик основного потока и не редактор.


5. Экономика: локально vs API — честный вердикт

Цены API (проверено 2026-07-04, официальные прайсы)

Модель Input $/1M Output $/1M Контекст
DeepSeek V4 Flash (deepseek-chat deprecated 24.07.2026) 0.14 (miss) / 0.0028 (cache hit) 0.28 1M (прайс)
DeepSeek V4 Pro 0.435 / 0.0036 hit 0.87 1M
Gemini 2.5 Flash-Lite 0.10 0.40 1M (прайс)
Gemini 2.5 Flash 0.30 2.50 1M
Gemini 3 Flash Preview 0.50 3.00 1M

Стоимость локальной генерации (электричество)

Допущения: RTX 4060 (TGP 115W) + система ≈ 0.2 kW под нагрузкой; тариф $0.060.15/kWh (RU ≈ $0.060.08).

  • 9B Q4 @ 40 tok/s output: 1M output tokens = ~7 ч × 0.2 kW = 1.4 kWh → $0.080.21 / 1M output tokens.
  • MoE 35B-A3B @ 25 tok/s: 1M output = ~11 ч = 2.2 kWh → $0.130.33 / 1M.
  • Input-токены локально почти бесплатны (prefill быстрый), но и у DeepSeek cache hit — $0.0028/1M.

Сравнение на книге

Книга ~400k токенов исходника; мультиагентный пайплайн с амплификацией ×810 (перевод + редактура + судья + консультации) ≈ 34M токенов суммарно:

  • DeepSeek V4 Flash: ~$0.61.2 за книгу. Gemini 2.5 Flash-Lite: сопоставимо.
  • Локально (только электричество): ~$0.51.0 и 3045 часов машинного времени при кратно худшем качестве и занятой машине.

Независимые TCO-анализы дают тот же вывод: самохостинг окупается при устойчивых десятках миллионов токенов в день, ниже этого API дешевле с учётом всего (SitePoint TCO 2026, Self-Hosted LLM Costs). У TextMachine на старте объёмы на 23 порядка меньше точки безубыточности.

Вердикт: гонять основной перевод локально ради экономии — ложная экономия. Цена API-инференса дешёвых моделей уже упала до цены электричества (DeepSeek V4 Flash output $0.28/1M против ~$0.15/1M локального электричества — разница в центы за книгу), при этом API даёт качество V4-класса, скорость, параллелизм и ноль возни. Локальная модель оправдана только там, где API не может (цензура, приватность) или где инференс тривиален (embeddings, классификация).


Выводы для TextMachine

  1. Архитектурно закладывать локальную модель как «спецслужбу», не как переводчика: (a) пре-скрининг чанков на цензурные риски перед отправкой в API; (b) перевод/обработка флагованных 18+ чанков; (c) embeddings для банка памяти; (d) извлечение кандидатов в глоссарий. Основной перевод и редактура — DeepSeek V4 Flash/Pro и аналоги.
  2. Рантайм: llama-server (llama.cpp) с OpenAI-совместимым API — в Go-бэкенд он встаёт как ещё один «провайдер» через существующие адаптеры. Конфиг: -np 2, -cb, -ctk q8_0 -ctv q8_0, для MoE — --n-cpu-moe N. Ollama — только для ручных экспериментов, vLLM/TabbyAPI на 8GB не нужны.
  3. Модельный набор (июль 2026): Qwen3.5-9B-Instruct (базовые задачи, Apache 2.0) + huihui-ai abliterated-вариант (18+ скрининг/перевод) + Qwen3.5/3.6-35B-A3B через MoE-офлоад (когда нужно качество повыше, ~2530 tok/s) + bge-m3 и Qwen3-Embedding-0.6B (память/поиск). Для ja-контента дополнительно оценить Shisa V2 12B (база Mistral Nemo — заодно малоцензурна).
  4. Не использовать NLLB-200/MADLAD-400/TowerInstruct/ALMA-R: sentence-level и/или устаревшие и/или NC-лицензии. Sugoi-14B-Ultra — только если появится продуктовая ветка ja→en.
  5. 18+ пайплайн: скрининг локальной моделью → «чистые» чанки в дешёвый API → флагованные чанки в локальную abliterated (либо в permissive-API типа DeepSeek с fallback на локальную при отказе) → редактура жёстких кусков дорогой моделью по уже «отмытому» русскому тексту. Инструмент Heretic позволяет самостоятельно декензурировать любую свежую модель с контролируемой (KL) деградацией.
  6. Для массовой генерации русского текста локально рассмотреть RuadaptQwen3 (до +100% скорости на русском из-за токенизатора) — но сначала замерить качество против ванильной Qwen3.5-9B на своих текстах.
  7. Бюджетное правило: закладывать в юнит-экономику API-цены ($13 на книгу для дешёвого контура — это <<1% целевой цены продукта), а GPU владельца рассматривать как dev-стенд и цензурный обходной путь, а не как производственную мощность. При росте нагрузки на 18+ контент — аренда GPU (RTX 3090/4090 у хостеров) для abliterated 32B+ вместо покупки железа.
  8. Метрики до интеграции: прогнать VNTL-подобный тест (cosine-sim к референсу) на своих парах ja→ru/zh→ru для 34 кандидатов — публичных бенчмарков этих направлений нет, полагаться на чужие en-центричные цифры нельзя.

Источники