LLM Course HW1 — Byte-level BPE + Tiny Russian Jokes LM

Это домашнее задание: обучение Byte-level BPE токенизатора и небольшой Causal Transformer на датасете русских анекдотов.

Что внутри

  • Токенизатор: Byte-level BPE, обучен с нуля на IgorVolochay/russian_jokes
  • Модель: Causal Transformer с:
    • ALiBi позиционными смещениями (по умолчанию) или RoPE (опционально)
    • GQA (Grouped-Query Attention)
    • SwiGLU в FFN
    • (опционально) Multi-Head Latent Attention (MLA) для экономии KV-кэша
  • Конфиги размеров: nano / mini / small
  • Код генерации и обучения на PyTorch

Примечание: Модель и токенизатор — кастомные классы, не transformers. Для использования см. примеры ниже.


Файлы в репозитории

  • model.safetensors — веса модели
  • config.json — конфиг модели
  • vocabulary.json, merges.json — файлы Byte-level BPE
  • README.md — эта карточка

Архитектура

  • Embedding: token embedding (без learnable pos embed; позиции кодируются ALiBi или RoPE)
  • Attention: Multi-head, GQA (число KV-голов меньше числа Q-голов)
  • Positional encoding:
    • ALiBi (additive linear bias) — не требует табличек, хорошо масштабируется
    • RoPE (опционально): комплексные вращения Q/K; требует чётного head_dim
  • FFN: SwiGLU = silu(W₁a x) ⊙ (W₁b x)W₂
  • Norm: RMSNorm (pre-norm)
  • (Опция) MLA: свёртка K/V в общий латент и on-the-fly дешифрация (снижение памяти под KV-кэш)

Тренировочные детали

  • Датасет: IgorVolochay/russian_jokes (train/test split 90/10, фиксированный seed)
  • Оптимизатор: AdamW (lr=3e-4, weight_decay=0.1)
  • Шедулер: Linear warmup (10% шагов) → linear decay
  • Batching: паддинг до максимальной длины в батче + attention_mask
  • Критерий: next-token cross-entropy с маскированием паддингов
  • Макс. контекст: max_seq_len=128

Графики

Графики

Downloads last month
54
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train Amir337/llm-course-hw1

Evaluation results