Space Oleg
CosmoFormer — это каузальная языковая модель (causal LM) с архитектурой на основе Grouped Query Attention (GQA), SwiGLU FFN и синусоидальных позиционных кодирований.
🧠 Архитектура
| Компонент | Описание |
|---|---|
| Embedding | Стандартный слой nn.Embedding с масштабированием √d_model |
| Positional Encoding | Синусоидальные кодирования (Sinusoidal) |
| Attention | Grouped Query Attention (GQA) – ускорение инференса за счёт группировки KV-heads |
| FFN | Два линейных слоя с активацией SiLU (SwiGLU-подобный) |
| Голова | lm_head (без bias) для генерации токенов |
Все параметры конфигурации задаются в config.json.
📦 Установка и загрузка
Модель использует GPT2‑токенизатор из библиотеки transformers. Установите зависимости:
pip install torch transformers safetensors huggingface_hub
Загрузка модели и токенизатора
from transformers import AutoModelForCausalLM, GPT2Tokenizer
model = AutoModelForCausalLM.from_pretrained("Qwest/Space_Oleg", trust_remote_code=True)
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token
🚀 Пример генерации
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device).eval()
prompt = "python is a "
input_ids = tokenizer.encode(prompt, return_tensors="pt").to(device)
with torch.no_grad():
output_ids = model.generate(
input_ids,
max_length=100,
temperature=0.8,
top_k=50,
top_p=0.95,
do_sample=True,
pad_token_id=tokenizer.eos_token_id,
)
generated_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(generated_text)
⚙️ Конфигурация модели
По умолчанию в репозитории используется конфигурация:
| Параметр | Значение |
|---|---|
| d_model | 512 |
| d_ff | 1024 |
| num_layers | 12 |
| num_heads | 8 |
| num_groups | 2 |
| vocab_size | 50257 |
| max_len | 2048 |
🙏 Благодарности
Архитектура вдохновлена современными подходами (GQA из LLaMA, SwiGLU из PaLM). Код написан с нуля под задачи автора.
- Downloads last month
- 88
Safetensors
Model size
73M params
Tensor type
F32
·
