--- language: - ru - en license: mit tags: - text-generation - autocomplete - t9 - gru - rnn - ngram - low-latency - edge-ai pipeline_tag: text-generation --- # πŸš€ C3-Lite: Contextual Neural Autocomplete Engine **C3-Lite** β€” компактная гибридная систСма ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ контСкстного автодополнСния тСкста (Next-Word / Word-Completion), ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π°Ρ **N-Π³Ρ€Π°ΠΌΠΌΡ‹ (L1)** ΠΈ **ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ 2Γ—GRU Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ (L2)** с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠΉ ΠΈ синтаксичСского Π΄Ρ€Π΅ΠΉΡ„Π°. * πŸ“¦ **Hugging Face Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:** [longtimedevs/C3-Lite](https://huggingface.co/longtimedevs/C3-Lite) * 🌐 **Π‘Π°ΠΉΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:** [long-time.ru](https://long-time.ru) * βš–οΈ **ЛицСнзия:** MIT --- ## πŸ’‘ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ прСимущСства - **πŸ›‘οΈ Hard Anti-Loop Guard:** ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π±ΠΈΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ($A \to B \to A \to B$), Ρ‚Ρ€ΠΈΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΠ΅Ρ‚Π΅Π»ΡŒ ΠΈ нСпосрСдствСнных Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² слов ($w_t \neq w_{t-1}$). - **πŸ“ БинтаксичСский ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ:** ВстроСнная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ грамматичСской нСсогласованности (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° связок Π²Ρ€ΠΎΠ΄Π΅ *Β«a + pluralΒ»*, Π΄Π²ΡƒΡ… Π°Ρ€Ρ‚ΠΈΠΊΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³ΠΎΠ² подряд). - **🧠 Π”ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ контСкст:** Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ состояниС нСйросСти $h_T$ Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ тСкст (Π΄ΠΎ 512 символов), сохраняя ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌΡ‹ Π½Π° протяТСнии всСго прСдлоТСния. - **⚑ Π­ΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Π°Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΡΡ‚ΡŒ:** ВСс всСх Π°Ρ€Ρ‚ΠΎΡ„Π°ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° дискС β€” всСго **~15 ΠœΠ‘**, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° β€” **< 15 мс Π½Π° CPU**. --- ## πŸ—οΈ АрхитСктура C3-Lite ```text [ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π΄ΠΎ 512 симв.)] β”‚ β”œβ”€β”€β”€β–Ί L1: N-Grams (Top-140k 3-Π³Ρ€Π°ΠΌΠΌ, Top-70k 2-Π³Ρ€Π°ΠΌΠΌ) β”‚ └─► Быстрый ΠΎΡ‚Π±ΠΎΡ€ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΆΠΈΠ²ΠΎΠΉ Ρ€Π΅Ρ‡ΠΈ β”‚ β”œβ”€β”€β”€β–Ί L2: 2Γ—GRU Neural Network (Embed=128, Hidden=512, ~3.6M params) β”‚ └─► ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΎΡ†Π΅Π½ΠΊΠ° бСглости (fluency) ΠΎΡ‚ скрытого состояния h_T β”‚ β–Ό [Grammar Filter + Hard Anti-Loop Guard] β”‚ β–Ό [Top-3 ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π±Π΅Π· Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠΉ ΠΈ смысловых сбоСв] ``` --- ## πŸ› οΈ Быстрый старт ### 1. Установка зависимостСй ```bash pip install torch transformers safetensors ``` ### 2. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ инфСрСнс Ρ‡Π΅Ρ€Π΅Π· Transformers ```python import torch from transformers import AutoModel, AutoTokenizer REPO_ID = "longtimedevs/C3-Lite" # Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ tokenizer = AutoTokenizer.from_pretrained(REPO_ID, use_fast=False) model = AutoModel.from_pretrained(REPO_ID) model.eval() # ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° контСкста context = "we are not " input_ids = torch.tensor([[tokenizer.char_to_id.get(c, 1) for c in context]], dtype=torch.long) with torch.no_grad(): outputs = model(input_ids) logits = outputs.logits print("Logits shape:", logits.shape) ``` ### 3. Автономный запуск с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ Tkinter Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ скрипт `c3_lite.py`: ```bash python c3_lite.py ``` Π‘ΠΊΡ€ΠΈΠΏΡ‚ автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈ запустит Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ графичСский интСрфСйс мобильной ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. --- ## πŸ“Š ДатасСты ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ с нуля Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… корпусах: - **OPUS Tatoeba (RU/EN)** β€” Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ„Ρ€Π°Π·Ρ‹; - **wikitext-103-raw-v1** β€” связный английский корпус с очисткой ΠΎΡ‚ энциклопСдичСского ΡˆΡƒΠΌΠ°; - **atBuba/ruwiki-dataset** β€” ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ русскоязычныС прСдлоТСния. --- ## πŸ‘¨β€πŸ’» Автор Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: **LongTime** ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: **[long-time.ru](https://long-time.ru)**