🚀 C3-Lite: Contextual Neural Autocomplete Engine

C3-Lite — компактная гибридная система предиктивного ввода и контекстного автодополнения текста (Next-Word / Word-Completion), объединяющая N-граммы (L1) и символьную 2×GRU нейросеть (L2) с аппаратной защитой от зацикливаний и синтаксического дрейфа.


💡 Особенности и преимущества

  • 🛡️ 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

[Контекст ввода пользователя (до 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. Установка зависимостей

pip install torch transformers safetensors

2. Загрузка и инференс через Transformers

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:

python c3_lite.py

Скрипт автоматически инициализирует движок и запустит темный графический интерфейс мобильной клавиатуры.


📊 Датасеты и обучение

Обучение проводилось с нуля на открытых корпусах:

  • OPUS Tatoeba (RU/EN) — разговорные диалоги и бытовые фразы;
  • wikitext-103-raw-v1 — связный английский корпус с очисткой от энциклопедического шума;
  • atBuba/ruwiki-dataset — очищенные русскоязычные предложения.

👨‍💻 Автор

Разработка: LongTime
Официальный сайт проекта: long-time.ru

Downloads last month
-
Safetensors
Model size
3.46M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support