/ Модель

Характеристики

Лицензия
CC BY-SA 4.0
Библиотека
pytorch
Опубликована
4 окт 2026

TokenizerTest-32m-A

Генерация текстаТекст → текст

Небольшая польская базовая языковая модель Fabryka AI для продолжения текста и экспериментов по сравнению токенизаторов.

260скачиваний за 30 дней0лайковвеса обновлены5 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

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

Описание составлено по карточке модели и метаданным Hugging Face

SlayerLab/TokenizerTest-32m-A — небольшая базовая языковая модель на польском языке, созданная Fabryka AI (ранее SlayerLab) под руководством Аркадиуша Слоты. Это контрольный вариант A эксперимента по сравнению токенизаторов: модель обучена с токенизатором Fabryka AI BPE с размером словаря 32 000; парная модель отличается только токенизатором.

Модель предназначена для продолжения польского текста и исследования влияния токенизатора на качество языковой модели. Это собственная архитектура PyTorch: 15 слоёв, размерность 384, 6 голов внимания, контекст 1024 токена и около 38,9 млн параметров с общими входными и выходными эмбеддингами. В README приведено сравнение по битам на байт; авторы отмечают, что на этом масштабе токенизатор варианта B не дал выигрыша по этой метрике. Модель не настроена на диалог и выполнение инструкций. Лицензия — CC BY-SA 4.0.

Сценарии применения

  • продолжение польского текста
  • сравнение токенизаторов на польском корпусе
  • исследование языкового моделирования на небольших моделях

Ограничения

Небольшая базовая модель продолжает текст, но не предназначена для ответов на вопросы или выполнения инструкций; её знания ограничены, и она может воспроизводить ошибки и предвзятость обучающих веб-текстов. Для каждого варианта эксперимента проведён только один запуск с одним seed, поэтому оценка не включает разброс результатов.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

TokenizerTest-32m-A (Polish research base model, tokenizer comparison — arm A)

A small Polish base language model trained as arm A of a controlled tokenizer experiment. It is a research checkpoint for comparing tokenizers, not a model for use. It is a Fabryka AI project (formerly SlayerLab).

Author: Arkadiusz Słota (Fabryka AI), who designed and ran the experiment. Tokenizer of arm B: stubbornGuy.

Companion model (tokenizer A/B experiment)

This model is one half of a controlled tokenizer comparison. Two models were trained with the same architecture, training recipe, seed and the same Polish text. The only difference is the tokenizer:

armtokenizerrepofinal step
AFabryka AI BPE, vocab 32 000 (60e23148)SlayerLab/TokenizerTest-32m-A89 000
Btokenizer by stubbornGuy, vocab 32 000 (77eeebed)SlayerLab/TokenizerTest-32m-B95 000

This model: A.

Shared recipe: ~38.9M parameters (tied input/output embeddings); "32m" in the repo name is the recipe name ("Glint 32M r6"), not the parameter count. Architecture: 15 layers, d_model 384, 6 heads, context 1024, Muon optimizer, batch 32, seed 1337, trainer train_gpt_ref_r6.py (0223c083).

Both arms saw the same ~12.4 GB of Polish text (public dataset SlayerLab/slayer-pl-8x3b @ d50df04a, files pack-00, pack-01 and shared/{core,core_sa,legal,legal_sa}; validation = pack-07 after 13-gram decontamination); B splits it more finely (on the training text 3.96 vs 4.25 bytes per token incl. EOS; on validation 4.14 vs 4.41), so it needed more steps for the same bytes. For the same reason B has lower bits per token (val 4.395 vs 4.668), which says nothing about model quality.

How to compare: loss per token is not comparable across tokenizers. We compare bits per byte on the same bytes (lower is better):

ABB − A
validation (7 232 820 B)1.05831.0622+0.0040 (+0.37 %)
held-out W (1 430 217 B)1.07811.0883+0.0101 (+0.94 %)

From ~4 B bytes onward the gap is roughly constant (val +0.003…+0.004, W +0.008…+0.010) and does not close by the end of training. Curve every 10k steps (bits per byte; note: at the same step B has seen fewer bytes than A):

stepA valB valA WB W
10 0001.19101.20091.23271.2463
20 0001.14481.15231.17991.1896
30 0001.12001.12781.14991.1634
40 0001.10321.11091.13041.1435
50 0001.08881.09691.11411.1291
60 0001.07731.08501.10001.1145
70 0001.06751.07521.08851.1025
80 0001.06101.06771.08181.0944
89 0001.0583—1.0781—
90 000—1.0633—1.0892
95 000—1.0622—1.0883

The same numbers, with checkpoint and data hashes, are in bpb_curve.json.

Caveat: one seed per arm, no noise estimate. The honest reading is "at this scale the B tokenizer brings no gain in bits per byte", not "B is worse".

Training data

Public dataset SlayerLab/slayer-pl-8x3b at revision d50df04a; the same files for both arms:

fileusesha256
pack-00/web.parquettraining (web)5cbb6dfa3a276a30db3c2034105ffffa75cc29b767456e7d75c305f9bd7ec562
pack-01/web.parquettraining (web)802f4829f41ef83e23979d2460500907bcfd44278e300eccb5e39ac666a04c2c
shared/core.parquettraining (core)ea0b4b901ace3780501b02a3972f014f77ce722315476e6f93681616958e0a99
shared/core_sa.parquettraining (core, CC BY-SA)910b18eeebbc26efbbd76554d7484d016c6df692a3b6a18492b5c9ceb32549cb
shared/legal.parquettraining (legal)6d4cc2f604d76452cd7e7ea52d1a04826f5e44f09bb035ba0853232fe373e74a
shared/legal_sa.parquettraining (legal, CC BY-SA)a1609cd31e12e0f6fdfdb030edb538bc230fc5f5ab376d23136180338e9dbd1e
pack-07/web.parquetvalidation (13-gram decontaminated against training)3d93331061595949f2e2cab187cfe688a117785c048e94688808b399b3f53b67

Usage

The model is a custom PyTorch architecture (same code as SlayerLab/GoLLeM-v6-250M), not a transformers class.

filecontent
model.safetensorsfinal weights, step 89 000 (fp32, 38,866,958 parameters; output head stored as a copy of the tied embedding)
config.jsonarchitecture
tokenizer.jsonarm A tokenizer, 32 000 tokens (tokenizers)
modeling_gollem_v6.pymodel code (inference) and a small generate helper
step_10000/ … step_80000/intermediate checkpoints every 10k steps (same three files each; weights only, no optimizer state)
bpb_curve.jsonbits-per-byte curve (step, checkpoint sha256, val, W)
SHA256SUMSsha256 of every file
# pip install torch safetensors tokenizers huggingface_hub
from huggingface_hub import snapshot_download
import sys

path = snapshot_download("SlayerLab/TokenizerTest-32m-A")   # pin revision="<commit>" for reproducibility
sys.path.insert(0, path)
from modeling_gollem_v6 import load_gollem_v6, generate

model, tok = load_gollem_v6(path)                          # final checkpoint
print(generate(model, tok, "Kraków jest miastem", max_new_tokens=40, temperature=0.8, top_k=50, seed=1))
model_10k, _ = load_gollem_v6(f"{path}/step_10000")        # an intermediate checkpoint

Loading any model.safetensors of this repository into modeling_gollem_v6.py reproduces the logits of the corresponding training checkpoint exactly (checked with torch.equal for every step).

Limitations

  • Small base model (~38.9M parameters): it continues Polish text; it does not answer questions or follow instructions. Limited knowledge; may reproduce errors and biases of web text. Research use only.
  • Single run, single seed per arm; see the caveat above.

License

Weights: CC BY-SA 4.0 (the training text includes CC BY-SA parts of SlayerLab/slayer-pl-8x3b). Attribution: TokenizerTest-32m-A, Arkadiusz Słota / Fabryka AI, link to this repository; derivative weights under the same licence. Training data keep their upstream licences; see the dataset card of SlayerLab/slayer-pl-8x3b.

TokenizerTest — Fabryka AI. Author: Arkadiusz Słota.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch

Нельзя запустить

Архитектура ? неизвестна transformers в образе рантайма.

Ревизия весов
4953c23

0 моделей