Views
No views yet
| Область | Что умеет |
|---|---|
| ✍️ Генерация текста | Связные рассказы, стихи, новости, ответы на вопросы |
| 💬 Диалог | Поддерживает беседу (вопрос-ответ, реплики) |
| ⚡ Скорость | ~40–60 токенов/сек на CPU, до 200+ токенов/сек на GPU |
| 🧠 Память | Около 500 МБ RAM в режиме инференса |
| 🌍 Язык | Только русский (словарь 32000 BPE-токенов) |
| 🔓 Открытость | Полный код и веса под лицензией MIT |
pip install transformers torch1from transformers import AutoTokenizer, AutoModelForCausalLM
2
3tokenizer = AutoTokenizer.from_pretrained("ваш_профиль/RUcover-Lite-Mini")
4model = AutoModelForCausalLM.from_pretrained("ваш_профиль/RUcover-Lite-Mini")
5
6text = "Привет, как дела?"
7inputs = tokenizer(text, return_tensors="pt")
8outputs = model.generate(**inputs, max_length=50)
9
10print(tokenizer.decode(outputs[0], skip_special_tokens=True))| Параметр | Значение |
|---|---|
| Архитектура: | Transformer Decoder (RoPE + SwiGLU + RMSNorm) |
| Параметры: | ~10 млн |
| Слои: | 6 |
| Размер эмбеддинга: | 384 |
| Голов внимания: | 6 |
| Размер FFN: | 1536 |
| Длина контекста: | 1024 токена |
| Словарь: | 32000 (BPE) |
| Функция активации: | SwiGLU |
| Нормализация: | RMSNorm |
| Позиционное кодирование: | RoPE |
1[Входной текст]
2 │
3 ▼
4┌─────────────┐
5│ BPE токенизатор │ → [101, 452, 890, ...]
6└─────────────┘
7 │
8 ▼
9┌─────────────┐
10│ Token Embedding │ → [batch, seq_len, 384]
11└─────────────┘
12 │
13 ▼
14┌─────────────────────────────────────────┐
15│ 6× Transformer Block │
16│ ┌───────────┐ ┌───────────────┐ │
17│ │ MultiHead │ │ RMSNorm │ │
18│ │ (RoPE) │ │ + Residual │ │
19│ └───────────┘ └───────────────┘ │
20│ │ │
21│ ▼ │
22│ ┌───────────┐ ┌───────────────┐ │
23│ │ SwiGLU │ │ RMSNorm │ │
24│ │ FFN │ │ + Residual │ │
25│ └───────────┘ └───────────────┘ │
26└─────────────────────────────────────────┘
27 │
28 ▼
29┌─────────────┐
30│ RMSNorm │
31└─────────────┘
32 │
33 ▼
34┌─────────────┐
35│ Language │ → [vocab_size] probabilities
36│ Head │
37└─────────────┘
38 │
39 ▼
40 [следующий токен] → повторяется авторегрессивноpip install torch tokenizers1import torch
2from tokenizers import Tokenizer
3from model import RUcoverLiteMini
4from config import RUcoverConfig
5
6# Загрузка токенизатора
7tokenizer = Tokenizer.from_pretrained("ваш_логин/RUcover-Lite-Mini")
8
9# Загрузка конфигурации и модели
10config = RUcoverConfig()
11model = RUcoverLiteMini(config)
12
13# Загрузка весов
14model.load_state_dict(torch.load("rucover_lite_mini.pt", map_location="cpu"))
15model.eval()1def generate_text(prompt, max_new_tokens=80, temperature=0.8, top_k=40):
2 input_ids = tokenizer.encode(prompt).ids
3 input_tensor = torch.tensor([input_ids])
4
5 for _ in range(max_new_tokens):
6 with torch.no_grad():
7 logits = model(input_tensor)
8 logits = logits[0, -1, :] / temperature
9
10 # Top-k фильтрация
11 top_k_vals, top_k_idx = torch.topk(logits, top_k)
12 logits = torch.full_like(logits, -float('inf'))
13 logits[top_k_idx] = top_k_vals
14
15 probs = torch.softmax(logits, dim=-1)
16 next_token = torch.multinomial(probs, 1)
17 input_tensor = torch.cat([input_tensor, next_token.unsqueeze(0)], dim=1)
18
19 return tokenizer.decode(input_tensor[0].tolist())1prompt = "Почему небо голубое?"
2answer = generate_text(prompt, max_new_tokens=50)
3print(answer)