TokenTown:用一座城市直观理解 LLM 的运作方式

查看原文 HN 讨论

文章摘要

TokenTown 是一个托管在 GitHub Pages 上的浏览器内交互演示,副标题是”一座按 token 逐个铺开的语言模型城市”。它把 Transformer 的每一个阶段映射成等距视角(isometric)城市里的一个街区,然后让一支”车队”载着隐藏状态在路网上跑一圈,把推理过程演成一段可观看的动画。

映射关系是这样的:文本先在”码头”被切成 token,在”铸造厂”被铸成向量,盖上位置戳,然后每一层都绕”层环”跑一圈——注意力、残差、前馈、残差——最后由”词汇体育场”把隐藏状态变成概率分布,采样器挑出一个 token。这个 token 沿”反馈高速路”开回起点,整座城市再跑一遍。点击任意街区可以飞过去看它对应阶段的解释。

作者在页面里专门写了一节”这里面有多少是真的”,态度相当诚实,分成三档:

节奏设计也花了心思:车队第一次到达某个街区时会停留 9 到 26 秒(取决于要讲的内容多少),面板下方有进度条显示还剩多久;所有街区都讲解完之后,城市就切换到”可观看”而非”可阅读”的速度,重复的层会快进,因为那是同一条路配不同权重。空格键可以无限期停住任意一站,S 键单步推进一个阶段,速度滑块从 0.4 倍到 8 倍缩放一切(包括阅读停留时间),R 重置并重播完整慢速导览,F 跟随镜头,L 切换标签。可以拖动平移、滚轮缩放。作者注明灵感来自 PGSimCity(一个把 PostgreSQL 做成城市的模型),但代码、美术和文案都是原创。

作者在 HN 的自述里补充了动机:他反复给朋友解释分词,发现市面上缺一个以学习而非文档为目的的简单交互工具,所以做了这个——粘贴文本就能立刻看到它如何被切成 token,以及 token ID、计数等细节,从而理解为什么提示词是那个价格、上下文限制为什么那样表现、模型为什么有时会在意想不到的地方切开一个词。

HN 评论精华

这条帖子只有 74 分、21 条评论,讨论的走向对作者相当不友好——绝大多数回复不是在谈 Transformer,而是在谈”这是不是又一个 vibe-coded 项目”。如实记录如下: