C3-Lite / README.md
longtimedevs's picture
Update README.md
08f6b10 verified
|
Raw History Blame Contribute Delete
4.68 kB
---
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)**