--- language: - ru license: mit library_name: transformers pipeline_tag: text-generation tags: - text-generation - chat - russian - transformer - pytorch - easyformer - custom_code - conversational datasets: - custom model_type: transformer base_model: OpenRussianAI/andrey --- # Andrey — EasyFormer 1M Лёгкий русскоязычный чат-бот на архитектуре EasyFormer. Упрощённый decoder-only Transformer, ~1.5M параметров. ## О модели Andrey — компактный русскоязычный чат-бот на собственной архитектуре EasyFormer. Снаружи — классический decoder-only Transformer, внутри — упрощения для скорости: single-head attention, RMSNorm, FFN×2, weight tying. Модель обучается за минуты на CPU, помещается в 15 MB, работает на любом устройстве. ## Архитектура | Параметр | Значение | |---|---| | Тип | decoder-only Transformer | | Параметров | ~1.5M | | Слоёв | 5 | | d_model | 192 | | Голов | 1 (single-head) | | FFN | ×2, ReLU | | Нормализация | RMSNorm | | Контекст | 128 токенов | | Токенизатор | char-level, 64 символа | | Weight tying | lm_head ↔ tok_emb | ## Быстрый старт ```bash pip install transformers torch huggingface_hub ``` ```python import json, torch from transformers import AutoModelForCausalLM from huggingface_hub import hf_hub_download REPO = "OpenRussianAI/andrey" model = AutoModelForCausalLM.from_pretrained( REPO, trust_remote_code=True, dtype=torch.float32, ).eval() d = json.load(open(hf_hub_download(REPO, "tokenizer.json"), encoding="utf-8")) stoi, itos = d["stoi"], {int(k): v for k, v in d["itos"].items()} enc = lambda s: [stoi[c] for c in s if c in stoi] dec = lambda ids: "".join(itos[i] for i in ids) def ask(q, max_new=40, temp=0.6, top_k=20): ids = torch.tensor([enc(f"User: {q}\nBot:")], dtype=torch.long) out = model.generate(ids, max_new_tokens=max_new, do_sample=True, temperature=temp, top_k=top_k) text = dec(out[0].tolist()) return text.split("Bot:", 1)[-1].split("User:", 1)[0].strip() print(ask("привет")) ``` ## Примеры диалогов ``` User: привет Bot: привет, рад тебя видеть User: как дела Bot: хорошо, готов помочь User: кто ты Bot: я лёгкий чат-бот на EasyFormer User: что умеешь Bot: поддерживать простой разговор User: ты работаешь на цп Bot: да, я работаю на процессоре User: сколько у тебя параметров Bot: около миллиона User: пока Bot: до встречи ``` ## Обучение | Параметр | Значение | |---|---| | Диалогов | 500+ | | Токенов | ~7 000 | | Эпох | 150 | | Батч | 32 | | Оптимизатор | AdamW, lr=3e-3 | | Устройство | Tesla T4 (CUDA) | | Время | 5 минут ради ускорений | | Финальный loss | 0.042 | ## Структура репо ``` OpenRussianAI/andrey/ ├── README.md ├── config.json ├── configuration_easyformer.py ├── modeling_easyformer.py ├── pytorch_model.bin └── tokenizer.json ``` ## Ограничения - С матешей плоховато - Это не слово из датасета = мусор ## Лицензия MIT ## Сайт Easyformer https://sites.google.com/view/easyformer/home