Page 34 · SimLabs LLM Visual
端到端 Mini-GPT:从文本到生成
前面三十几页,我们把 LLM 的每个零件都拆开看过了:Token、Embedding、Attention、QKV、因果 Mask、位置编码、残差、LayerNorm、FFN、交叉熵、自动微分、AdamW、训练循环。现在,把所有零件装回一台完整的机器——在浏览器里真实训练一个字符级 Mini-GPT,然后用它生成文字。
真实可训练
纯浏览器运行
梯度裁剪 + LR 调度
Top-K / Top-P 采样
1给模型一点文字作为"食粮"
大模型不是凭空学会说话的。它需要先"读"大量文字,才能学到字符之间的搭配规律。下面这段文字就是你的 Mini-GPT 的全部训练数据。
快速填充:
字符数:0
唯一字符:0
2构建词表:把字符变成 id
模型不认识汉字或字母,它只认识数字。字符级 Tokenizer 把每个唯一字符映射成一个整数 id。我们额外加入三个特殊 token:<unk>、<bos>、<eos>。
词表预览(前 80 个字符):
3滑动窗口:制造"输入→目标"训练样本
语言模型的目标是"预测下一个字符"。把文本切成固定长度的窗口:前 CTX 个字符作为输入,后 CTX 个字符作为目标(右移一格)。
5生成:让训练好的模型开口说话
给模型一个开头(prompt),它一个字一个字地预测下一个字符,然后把自己刚预测的字也作为输入,继续预测。温度 / Top-K / Top-P 联合控制采样的多样性。
6内部可视化:看看模型"脑子里"在想什么
模型做一次前向传播时,每一层都会产生中间矩阵。下面用热力图展示当前输入下 Attention 权重、Q/K/V 的样子。Attention 用顺序色图(越亮越关注),Q/K/V 用发散色图(红正蓝负)。
Attention 权重矩阵(行 = query 位置,列 = key 位置):
知识点完整总结
这一页把前面所有零件组装成了一个完整可用的 Mini-GPT。
📖 标准介绍
字符级语言模型是以单个字符为最小单位的自回归语言模型。给定前文,它预测下一个字符的概率分布。
Mini-GPT:1 层 Transformer Block、单头注意力、32 维 Embedding、32→128→32 的 FFN、LM Head 映射到词表。目标是最小化交叉熵损失,优化器 AdamW(含 warmup + cosine 调度与梯度裁剪),生成使用温度 + Top-K + Top-P 采样。
💡 通俗介绍
想象你在教一个婴儿认字。每次给他一句话的开头,让他猜下一个字是什么。猜的次数多了,他就慢慢学会了字的搭配规律。
Mini-GPT 就是这样学习的。它一开始什么都不懂,输出完全是随机的。但每次看到训练样本,都会计算预测与正确答案的差距(交叉熵),根据差距调整内部参数。
🔧 解决了什么问题
- 端到端可运行:文本 → 生成全流程闭环。
- 真实训练:前向、反向、AdamW 更新真实执行。
- 训练稳定:LayerNorm 反向正确、梯度裁剪、LR 调度。
- 纯 JS 实现:不依赖 PyTorch/TensorFlow。
- 教学闭环:把前面三十几页知识点串成完整流水线。
⭐ 为什么重要
理解大模型怎么训练,最好的方式不是看论文,而是亲手训练一个能跑通全流程的最小版本。
你会看到:文本 → token id → embedding → QKV → 因果 attention → 残差 + LN → FFN → LM Head → 交叉熵 → 反向传播 → AdamW 更新 → 自回归生成。
🚀 应用场景
- LLM 教学与科普
- 算法原型验证(注意力变体、损失函数、优化器)
- 边缘设备部署(浏览器、手机)
- 隐私敏感场景(本地训练)
- 创意编程 / 生成艺术
⚠️ 缺陷与局限
- 模型容量极小:几万参数只能学到非常局部的规律。
- 训练数据极少:几百到几千字符,必须同分布才有效。
- 单层单头:只能捕捉极短程依赖。
- 字符级效率低:相比 BPE 分词序列更长。
- 过拟合严重:小数据 + 小模型,容易背下来。
- 性能受限:纯 JS 单线程,几千步需要几秒到几十秒。
- 不能替代真实 LLM:价值在教学,不是生产级能力。
一句话理解 Mini-GPT: 它是真实 GPT 的微缩版——同样的组件、同样的数据流、同样的训练目标,只是规模小了几百万倍。它的意义不是"造一个能用的 AI",而是"让你亲眼看到 AI 是怎么学会的"。
学完这一页,最好记住三件事
语言模型的目标是预测下一个字符
所有复杂度都服务于一个简单目标:看到前文,预测下一个字符。交叉熵衡量预测与真实标签的差距。
Transformer 是学习这个目标的机器
Embedding 把字符变向量,Attention 让它们互相关注,FFN 加工特征,LM Head 输出概率。
稳定训练需要工程技巧
正确的 LayerNorm 反向、梯度裁剪、warmup + cosine 调度,让小模型也能稳定收敛。