从 0 训练 LLaMA
不调 API、不加载权重,用 PyTorch 从零复刻 LLaMA 的 decoder-only 架构(RMSNorm / RoPE / GQA / SwiGLU / KV 缓存)并训练。理解大模型的地基。
逐层拼出 LLaMA decoder block(RMSNorm + RoPE + GQA + SwiGLU + KV 缓存),再训练:loss 曲线下降,采样生成从乱码变通顺。
本地版本说明
架构组件(RMSNorm/RoPE/GQA/SwiGLU/KV缓存)是真实 LLaMA 结构,来自大模型原理正课 LLaMA 系列(视频课)。config 与 loss/step 数值为示意;浏览器里不真跑训练。
从零搭 LLaMA 架构并训练
先逐层拼出 LLaMA 的 decoder block(RMSNorm + RoPE + GQA + SwiGLU + KV 缓存),再跑训练——看 loss 下降、生成逐渐通顺。
Decoder Block × 8
Token Embedding
RMSNorm
RoPE Self-Attention (GQA)
RMSNorm
SwiGLU FFN
dim 512 · 8 layers · 8 heads / 4 KV (GQA) · vocab 32000 · 示意配置
训练 loss
采样生成(同一 prompt)
训练开始后,生成会从乱码逐步变通顺。
建议体验
搭建模型,看 decoder block 逐层拼出来。
开始训练,看 loss 曲线一步步下降。
看同一 prompt 的生成从乱码变成通顺句子。
这个试玩能说明什么
你吃透地基——从零实现 LLaMA,而不只是 import 一个模型。
你理解每个现代组件:RMSNorm / RoPE / GQA / SwiGLU / KV 缓存。
你打通上下层:KV 缓存支撑 prompt cache,架构理解支撑微调/RL 选择。
架构
Decoder-only · RMSNorm · RoPE · GQA · SwiGLU · KV 缓存(Pre-Norm)
从零
PyTorch,不加载权重——从张量到训练循环全手写
最强信号
支撑微调/RL/Agent 的地基级深度