Flourish-3M

⚠️ Это учебный/исследовательский проект, а не модель для продакшена. Модель усвоила синтаксис и морфологию русского языка, но не удерживает факты и связность.

Архитектура

  • 10 слоёв, dim 128, FFN 384
  • GQA: 4 query-головы / 2 kv-головы
  • RMSNorm, RoPE, SwiGLU, QK-norm, без bias, без dropout
  • Словарь токенизатора: 8 192 (byte-level BPE, регистр сохраняется), embedding'и входа/выхода общие (weight tying)
  • Контекст: 512 токенов
  • Итого: 3.02M параметров (из них 1.05M — эмбеддинги)

Тег qwen3 — не про происхождение модели. Архитектура (Llama-блок + QK-norm перед RoPE) в transformers совпадает по структуре тензоров с Qwen3ForCausalLM, поэтому для совместимости с AutoModelForCausalLM веса маппятся на Qwen3ForCausalLM.

Данные

  • deepvk/cultura_ru_edu — ~1.2 млрд символов
  • wikimedia/wikipedia (20231101.ru) — ~520 млн символов
  • Нерусские документы отфильтрованы (доля кириллицы < 60%)
  • Итого ~531M токенов (train), обучение — около 0.94 эпохи (данные не повторяются)

Обучение

  • Оптимизатор AdamW, lr 1.5e-3 с косинусным расписанием, warmup 305 шагов
  • Batch: 32 768 токенов/шаг (micro-batch 32 x accum 2)
  • Устройство: Apple Silicon (MPS), без AMP
  • Всего шагов: 15 259

Качество

Финальные метрики:

  • val loss: 3.626
  • perplexity: ~37.6

Динамика val loss/ppl по ходу обучения:

Шаг Val loss PPL
1 000 4.498 89.9
3 000 4.020 55.7
6 000 3.844 46.7
9 000 3.746 42.3
12 000 3.668 39.2
15 259 3.626 37.6

Что модель умеет:

  • Держит согласование падежей, склонения, пунктуацию

Чего не умеет:

  • Фактология практически отсутствует — имена, даты, географические привязки генерируются правдоподобно, но часто неверны
  • Связность распадается уже через 1-2 предложения, тема может "плыть"

Пример генерации (промпт → продолжение)

Москва — столица
Москва — столица России

География
Серебряный стенами в 1986 году на протяжении 30 лет открыт в 1994 году.

История
На территории города располагался в 1120-х гг. здесь.

Административный центр — село «Костёр-Волжская»,
в 1975 году — в селе «Серебряная»,
в 1979 году — в городе Большого Северо-Западного городского округа,
в 1980 году — в городе Большой Савой,
в 1989 году — в городе Большого Серебряного Корского.

В 1990 году — в селе Житомир.

География
Находится в юго-восточной части России по прямой от административного центра коммуны и муниципалитета.

Использование

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("akanemind/Flourish-3M")
tokenizer = AutoTokenizer.from_pretrained("akanemind/Flourish-3M")

inputs = tokenizer("Москва — столица", return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=100, do_sample=True, temperature=0.8)
print(tokenizer.decode(out[0]))
Downloads last month
242
Safetensors
Model size
3.02M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train akanemind/Flourish-3M

Collection including akanemind/Flourish-3M