windowcapture
исходный код / NEURAL_RESEARCH_AND_DESIGN.md

NEURAL_RESEARCH_AND_DESIGN.md

92 строк · 13,858 байт · модуль Docs
 1# Нейросети: ресёрч (API/цены/качество) + дизайн умной автозамены
 2
 3> 2026-06-03. Две части: (1) бесплатные и российские нейросети — доступ, цены, качество, «тупые или нет»; (2) **инновационный дизайн** супер-маленькой контекстной нейросети для T9, работающей безотказно.
 4
 5---
 6
 7# Часть 1. Ресёрч нейросетей
 8
 9## 1.1 Российские LLM (для фичи «AI-описание рисунков», аудитория = РФ)
10| Модель | Бесплатно | Платно (нач. 2026) | Мультимодал (vision) | Качество (RU) | Без VPN в РФ |
11|---|---|---|---|---|---|
12| **GigaChat** (Сбер) | **1 000 000 токенов / 12 мес** (900k Lite + 50k Pro + 50k Max) | Lite **0.065₽/1k** (~$0.7/M), Pro 0.5₽/1k, Max 0.65₽/1k | **Да** (GigaChat 2.0; Ultra с 03.2026, reasoning) | near-SOTA на MERA (±2–7% от топа); слабее в reasoning/кореференции | **Да**, OpenAI-совместимый API |
13| **YandexGPT** (Яндекс) | через Алису (Lite, лимит/день); Plus 399₽/мес → Pro в Алисе | Lite 0.20₽/1k in / 0.40₽ out; Pro 5.1 0.80₽/1k | частично (image input в чате) | Pro 5.1 ≈ GPT-4.1 в 56% (заявление Яндекса, независимо не подтверждено); независимо — средне-нижний мировой тир | API через Yandex Cloud (для бизнеса) |
14| **T-pro 2.0 / T-lite** (Т-Банк) | открытые веса (T-lite) | — | — | эффективная hybrid-reasoning RU-модель | локально |
15| **Cotype** (МТС) | есть free-доступ | — | мало данных | RU-ориентирована | да |
16
17**Вердикт по российским LLM:** для русского текста/описания картинок — **НЕ тупые**, на RU-бенчмарках near-SOTA (GigaChat 2 Max, YandexGPT 5 Pro), и **работают без VPN** (важно: Gemini в РФ часто требует VPN). Слабее фронтира в сложном reasoning, но для «описать скриншот в формальном стиле + подпись рисунка» — **достаточно**. GigaChat 2 — мультимодальный, т.е. реально может «распознать» изображение.
18
19## 1.2 Бесплатные глобальные API (как у Gemini сейчас, для стэкинга/фоллбэка)
20| Провайдер | Free-лимит | Заметка |
21|---|---|---|
22| **Google Gemini** (уже используется) | **1500 запр/день** на 2.5/3 Flash, 1M TPM; Pro — 50–100/день | Платно 2.0 Flash $0.075/M (самый дешёвый); в РФ часто нужен VPN |
23| **Groq** | 30 RPM / 1000 запр/день; очень быстро (300+ tok/s) | Llama 3.3 70B, Llama 4, DeepSeek-R1-distill, Qwen QwQ, Mistral Saba |
24| **OpenRouter** | free-модели 50/день (1000 при депозите $10), 20 RPM | Llama, Gemini Flash 1.5, Mistral 7B — 11+ бесплатных |
25| **Mistral** | ~1 запр/сек | — |
26
27Стэкинг нескольких провайдеров умножает бесплатный лимит. **Рекомендация для РФ-аудитории:** добавить **GigaChat как провайдер рядом с Gemini** (фича уже имеет fallback-логику по моделям/ключам) — бесплатный лимит + без VPN + мультимодал.
28
29## 1.3 Распознавание/исправление текста (для самой автозамены) — ВАЖНО
30Здесь российское и открытое **реально работает лучше** нынешнего самописного движка (31%):
31- **Yandex Speller****бесплатный** API (RU/UK/EN), огромный словарь, ловит опечатки и **ошибки безударных гласных** (тот самый класс, что наш движок ПРОВАЛИВАЕТ: сиводня/кароче). Минусы: облако (задержка, приватность, нужна сеть), не полноценная грамматика. [yandex.ru/dev/speller](https://yandex.ru/dev/speller)
32- **SAGE** (ai-forever/Сбер, **MIT**, открытый) — SOTA-семейство RU-корректоров. **`sage-fredt5-distilled-95m`** (95M, дистиллированный) F1 орфо ~79%, пункт. ~84%; `sage-fredt5-large` F1 ~84/87/95 (орфо/пункт/регистр). Исправляет **орфографию+пунктуацию+регистр сразу**. Есть генератор синт-ошибок **Augmentex/SBSC**. [github.com/ai-forever/sage](https://github.com/ai-forever/sage)
33- **ByT5** (char/byte-level, открытый) — иммунен к шуму/опечаткам, мультиязычный (вкл. RU), >96% alpha-word acc.
34- **GECToR** — «**теги правок вместо генерации**»: модель выбирает операцию (вставь/удали/замени), а не пишет текст с нуля → **не может галлюцинировать** (прямой ответ на проблему отключённых Seq2Spell/GRU).
35
36---
37
38# Часть 2. Дизайн: маленькая контекстная нейросеть, работающая БЕЗОТКАЗНО
39
40## 2.1 Главный инсайт
41«Безотказно» = **максимум точности (precision), не полноты**. Пользователь прощает «не исправил опечатку», но НЕНАВИДИТ «исправил правильное слово на неправильное». Значит система должна быть **precision-first + с порогом уверенности**, и при этом **контекстной** (требование автора: «понимает, что мы пишем и какой контекст»).
42
43## 2.2 Почему всё существующее не годится
44- Словарь+edit-distance (текущее): без контекста, слепой ранкер → 31%.
45- Большой seq2seq (их отключённый GRU): **галлюцинирует** (генерирует не-слова).
46- `forcedFix` (1400 пар): не обобщается.
47
48## 2.3 Архитектура (новизна — в интеграции)
49**Одна крошечная символьная контекст-модель (~2–8M параметров, CPU, инкрементально на каждое нажатие)** внутри пайплайна noisy-channel + жёсткое ограничение словарём + калиброванный гейт:
50
51```
52        печатается текст …слово_n-1  сло́во_n[|]
53
54        ┌──────────────▼───────────────┐
55        │  Shared char context encoder  │  causal GRU / 2-слойный char-transformer,
56        │  (последние ~64 символа,      │  держит скрытое состояние по мере ввода —
57        │   включая границы слов)       │  ЭТО и есть «понимание контекста», дёшево
58        └───────┬───────────────┬───────┘
59                │ LM-голова      │ Error-голова
60        P(word│контекст)   P(typed│candidate)  ← клавиатура ЙЦУКЕН + фонетика(о/а,и/е,ё/е,ться/тся)+транспозиции
61                │               │
62        ┌───────▼───────────────▼───────┐
63        │  Кандидаты ТОЛЬКО из словаря   │  dict ∩ (взвеш. edit-dist ≤2) ∪ {typed}
64        │  (модель НЕ генерирует — РАНЖИРУЕТ) → НЕ может галлюцинировать
65        └───────────────┬───────────────┘
66                        │ noisy-channel: score = logP(cand│ctx) + λ·logP(typed│cand)
67        ┌───────────────▼───────────────┐
68        │  Калиброванный гейт уверенности │  применять автозамену ТОЛЬКО если:
69        │   • typed нет в словаре         │   • margin(best−typed) > τ_high
70        │   • margin(best−2nd) > τ_margin │   • контекст реально был доступен
71        └───────────────┬───────────────┘
72              да ▼               ▼ нет
73         тихо исправить    подсказка-T9 (1 клавиша) ИЛИ молчать
74```
75
76**+ Онлайн-персонализация (дёшево и ново):** «память отмен» — если пользователь откатывает исправление (перепечатал оригинал за N мс), пара мгновенно в чёрный список, а его слово — в личный словарь. Модель адаптируется к жаргону/именам **без дообучения**. Это напрямую убивает главную причину раздражения.
77
78## 2.4 Почему это «нигде не встречалось»
79Честно: отдельные кирпичи известны (char-LM, noisy-channel, GECToR-ограничение, confidence-gating). Новизна — в **системе**: *одна крошечная shared-char-context модель обслуживает СРАЗУ и языковой приор, и обученный клавиатурно-фонетический канал; вывод жёстко ограничен словарём; калиброванный precision-гейт; мгновенная персонализация по отменам; всё локально, на каждое нажатие.* Так не делает ни Windows, ни облачный Grammarly, ни словарные T9. Это практичный оригинальный синтез именно под «ноль ложных исправлений на живом RU-вводе».
80
81## 2.5 Дорожная карта (сначала БЕЗ обучения, потом крошечная своя)
82- **Этап 0 (сейчас, без ML):** заменить ранжирование на честный noisy-channel из УЖЕ имеющихся активов (`FreqIdx` + `bigram_lm.bin`) + добавить ё/фонетические стоимости + **убрать CharEmbedNet**. Большой скачок с 31%, нулевое обучение.
83- **Этап 1 (без обучения, on-demand путь):** подключить **SAGE `sage-fredt5-distilled-95m`** (MIT) или **ByT5** на путь `Ctrl+Shift+Space` («исправить весь текст») — 95M на CPU/ONNX это десятки мс, для on-demand нормально. Или **Yandex Speller** (бесплатно) как облачный фоллбэк. → почти-SOTA качество батч-коррекции без обучения.
84- **Этап 2 (крошечная своя — та самая инновация):** обучить <8M char-context модель с нуля на синт-ошибках (генерим пары correct→typo через открытый **Augmentex/SBSC** из RU-корпуса — дёшево). Это always-on движок на каждое нажатие с precision-гейтом. ~Дни на 1 GPU; в проде — модель в пару МБ вместо 1400 строк forcedFix + 18 МБ мёртвых моделей.
85
86## 2.6 Что это даёт проекту
87- Автозамена перестаёт зависеть от ручного `forcedFix`, обобщается, и (главное) **почти не делает ложных исправлений** — то самое «безотказно».
88- Вес автозамены падает (минус CharEmbedNet 16 МБ + 3 мёртвые модели), что идеально под план разделения (`WC.TextAssist` станет лёгким).
89- Для РФ-рынка: спелл — Yandex Speller/SAGE (RU-native), описание картинок — GigaChat (без VPN, мультимодал) рядом с Gemini.
90
91## Источники
92GigaChat тарифы [developers.sber.ru](https://developers.sber.ru/docs/ru/gigachat/api/tariffs) · YandexGPT цены [yandex.cloud](https://yandex.cloud/ru/docs/foundation-models/pricing) · MERA/GigaChat [arxiv 2506.09440](https://arxiv.org/html/2506.09440v1) · free APIs [tokenmix](https://tokenmix.ai/blog/free-llm-api) · Gemini free [ai.google.dev](https://ai.google.dev/gemini-api/docs/rate-limits) · Vikhr [arxiv 2405.13929](https://arxiv.org/abs/2405.13929) · SAGE [github.com/ai-forever/sage](https://github.com/ai-forever/sage) · ByT5 [arxiv 2201.13242](https://arxiv.org/pdf/2201.13242) · GECToR [arxiv 2005.12592](https://arxiv.org/pdf/2005.12592) · Yandex Speller [yandex.ru/dev/speller](https://yandex.ru/dev/speller)