← На главную

TokenTown: transformer в браузере как город, возящий hidden state

29.07.2026 13:05 · hackernews

TokenTown — это изометрический город, где каждый район воплощает один этап transformer language model. Конвой везёт hidden state по улицам: в доках текст нарезают на tokens, в литейном цехе отливают в vector, штампуют позиционной меткой, а затем гоняют по кольцу слоёв — attention, residual, feed-forward, residual — по разу на каждый layer. На стадионе hidden state превращается в probability distribution, и sampler выбирает очередной token. Этот token по feedback highway возвращается обратно, и весь город запускается заново.

Всё действительно вычисляется прямо в браузере. Работают настоящие tokenizer split, embedding lookup, sinusoidal positional encoding, LayerNorm, multi-head scaled dot-product attention с causal masking поверх растущего KV cache, residual adds, GELU feed-forward и temperature / top-p sampling. Столбики на грузовике — это честный vector, а лучи над складом — реальные softmax weights. Prefill обрабатывает все токены промпта разом, а decode — строго один. Модель нарочно ужата: 12 dimensions вместо тысяч, 2 attention heads вместо десятков, от 2 до 12 layers вместо 80 и словарь в пару сотен слов. Веса случайные, модель никто не обучал, поэтому обычная случайновесовая сеть выдавала бы шум. Чтобы текст оставался читаемым, финальные logits подмешивают к проекции честного hidden-state bigram prior, построенный на маленьком фиксированном корпусе. Attention scores заострены, к ним добавлен небольшой первый токен ("sink") и recency bias — так карта внимания выглядит как у обученных моделей. Сам текст считайте декорацией, а механизм — уроком.

При первом визите в район конвой останавливается на 9–26 секунд, чтобы можно было прочитать объяснение, а индикатор под панелью показывает оставшееся время. Когда все районы объяснены, город переходит в обзорный темп, а повторяющиеся layers проматываются быстрее — дорога та же, веса разные. Space держит остановку бесконечно, S шагает поэтапно, Speed масштабирует всё от 0.4× до 8×. Reset (⟲) перезапускает медленный тур с начала, Run продолжает с того места, где вы уже читали. Управление: Space — play/pause, S — один шаг, R — сброс тура, F — камера следует за конвоем, L — подписи. Карту можно перетаскивать, зумировать колёсиком, а клик по любому району показывает его объяснение. По умолчанию вид привязан к конвою; кнопка ⤢ слева или двойной клик отдаляют камеру на весь город, а отключив Follow, можно бродить самому. Проект вдохновлён идеей PGSimCity — городом-моделью PostgreSQL, но код, графика и текст целиком оригинальные.

Читать оригинал →