TinyStories Story Filler
крошечная модель, которая дописывает середину рассказа
Это encoder-decoder transformer на 37,5M параметров, обученный с нуля на TinyStories. Ему дают начало и конец короткой истории, а он генерирует середину. Проект Питера Конанта и Эрика Кардинала по Deep Learning в San Jose State University, Spring 2025.
🤓 Ключевые особенности
- 🤓 4 encoder- и 4 decoder-слоя, ширина 256, 8 голов, лимит 512 токенов.
- ⌨ GPT-2 tokenizer на 50 257 токенов; EOS используется как pad-токен.
- 📝 На вход подаются начало и конец, на выходе — сгенерированная середина.
- 🤔 Обучение с нуля на TinyStories; на 2 000 отложенных историях perplexity 11,8.
- 😑 Ограничения: модель не выдаёт end token, часто теряет первое слово середины, персонажи дрейфуют, и середина редко ведёт к заданному финалу.
📝 Пример
import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from model import StoryFiller, tokenizer, device
model = StoryFiller(tokenizer.vocab_size, 256, 4, 8, 512).to(device)
model.load_state_dict(load_file(hf_hub_download("PeterCConant/tinystories-story-filler", "model.safetensors")))
model.eval()
Подробнее
Perplexity на валидации TinyStories — 11,8; если подставить чужое начало и конец — 20,8.37,5M параметров, контекст 512 токенов, обучение с нуля на TinyStories.
Ограничения: генерация всегда идёт до лимита длины, первое слово середины часто пропадает, персонажи дрейфуют.
Код, training notebook и полный write-up — в GitHub-репозитории проекта.








Комментарии