DevKits
交互式 3D 教程

大语言模型是如何工作的

一份可交互的 3D 讲解,带你看一个真实(迷你)的 GPT 式 Transformer 跑推理 —— 逐个 token、逐层拆解。全部资源本站自托管、在你的浏览器本地运行:不下载任何外部资源、不做任何追踪。

为什么要了解内部原理?

一旦你能在脑海中还原「从输入提示词到读到回复」之间发生的每一步,提示词工程、微调、以及排查模型行为都会变得轻松得多。滚动浏览下方的 3D 模型,看清每一次矩阵乘法,再对照下面逐阶段的中文说明。

3D 模型

拖动旋转视角 · 滚轮缩放 · 用右侧的侧栏逐步跟随讲解。

Loading…

这个 3D 可视化需要 WebGL2。请用较新版本的 Chrome、Firefox、Safari 或 Edge 打开本页。

流水线逐阶段拆解

上面的动画是浏览器端的 WebGL 渲染,所以这里用文字把同一段旅程再讲一遍 —— 从原始文字到采样出下一个 token。

1 · 分词 Tokenize

原始文字被切成一个个 token(通常是子词片段),再通过一张固定词表把每个 token 映射成整数 ID。从这一步之后,模型看到的永远只是这些整数,再也见不到字母本身。

2 · 词嵌入 Embedding

每个 token ID 去一张学习得到的嵌入表里查一行,变成一串数字组成的向量。再叠加一个位置嵌入,让模型知道每个 token 在序列中的先后位置。

3 · 层归一化 Layer Norm

在每个子层之前,把每个 token 向量归一化到均值 0、离散程度 1,再用两个学习得到的参数重新缩放。这样数值始终「乖巧」,超深网络才能稳定训练。

4 · 自注意力 Self-Attention

每个 token 生成 Query、Key、Value 三个向量。Query 与 Key 的点积决定一个 token 对其他 token 的关注程度;softmax 把这些分数变成权重,用来加权融合各个 Value。

5 · 注意力矩阵

把每个 token 对所有其他 token 的注意力排开,得到一个三角矩阵(未来的 token 被掩掉)。许多注意力头并行运行,每个头学到 token 之间不同的关系。

6 · 前馈网络 MLP

注意力在 token 之间混合信息之后,每个 token 再被一个两层小网络单独处理:先扩展维度、套一个非线性激活(GELU)、再投影回来。模型的大部分参数都在这里。

7 · Transformer 块

层归一化、注意力、残差相加、层归一化、MLP、残差相加 —— 这就是一个块。一个 GPT 无非是把这个块重复堆叠(GPT-2 small 12 个,GPT-3 96 个),每过一次就把 token 向量再打磨一点。

8 · 反嵌入与 Softmax

最后一个 token 向量乘以反嵌入矩阵,为词表里每个 token 产出一个 logit,再由 softmax 把这些 logit 变成一个加起来等于 1 的概率分布。

9 · 采样 Sampling

从这个分布里采样出一个 token(由温度、top-k、top-p 调节),接到输入末尾,然后整条流水线再跑一遍。正是这个「自回归」循环,让模型写出一段段文字。

常见问题

这个可视化展示的是什么模型?

一个极小的 GPT 式网络(nano-GPT),被训练用来给字母 A、B、C 排序 —— 出自 Andrej Karpathy 的 minGPT 示例模型。它小到可以把每一个权重和激活都渲染出来,却与 GPT-2、GPT-3 用的是完全相同的架构。

会上传或从服务器下载任何东西吗?

不会。模型权重、字体图集以及全部渲染资源都由本站自己托管,完全在你的浏览器里通过 WebGL 运行。你的任何操作都不会被上传、记录或发送给任何第三方。

为什么我看不到 3D 模型?

这个可视化需要 WebGL2,现代浏览器都支持。如果画面一直空白,请换用较新版本的 Chrome、Firefox、Safari 或 Edge,并确认已开启硬件加速。

它和 ChatGPT 这样的真实模型有什么关系?

流水线是完全一样的 —— 分词、嵌入、堆叠 Transformer 块、反嵌入、softmax、采样。前沿大模型只是把它放大:更大的词表、更宽的向量、更多的头、多得多的层。GPT-3 有 1750 亿参数,跑的正是这同一套机制。

致谢与许可

本页的 3D 可视化基于 Brendan Bycroft 的开源项目 llm-viz(MIT 许可),在本站自托管、不依赖任何外部资源。示例模型是 Andrej Karpathy 的 minGPT 中给 A/B/C 排序的 nano-GPT。