← aipaipai.cloud · INDEX
01 输入 02 注意力 03 积木 04 架构 05 训练 06 现代
DOCS // INTERACTIVE SERIES 04/06

架构://
整体组装

把 Block 堆起来配上输入输出,就是完整模型。本篇拆三种架构之争 + 参数量从哪来。 教学性模拟--模型结构图为示意,参数量按公开公式估算,非对某个具体权重表的精确统计。

ARCH_READY TYPE: DECODER_ONLY (现代主流) SLUG: transformer-architecture STATUS: LOCAL_ONLY

00 三种架构

同一套积木,拼法不同,能干的事就不同。点 tab 看。

ENC-DEC · 原版 Transformer · 机器翻译

Encoder 把整句读成表示(双向,看全文),Decoder 再逐词生成译文(带因果掩码,只看左边 + 看 Encoder 输出)。

适合「输入一段、输出一段」的任务:翻译、摘要。结构最重,现在只在特定任务用。

ENCODER-ONLY · BERT · 理解型

只有 Encoder,双向看全句。擅长理解:分类、抽取、句子相似度。

不擅长生成。BERT 用「掩码语言模型」(挖空填词)训练。现多用于专用理解模型。

DECODER-ONLY · GPT / Llama / Qwen · 现代主流

只有 Decoder,单向看左边。靠「预测下一个词」训练,天然会生成。一个架构通吃理解和生成。

为什么赢?简单、统一、scaling 友好--堆大堆多就好,理解能力反而也涌现出来了。现代大模型几乎全选它。

01 一个 Block 的数据流

Decoder-Only 全貌:embedding -> N × Block -> 输出头。拖滑块改层数。

12

输入向量过完 N 层 Block 后,过一个线性层(LM Head)把维度映回词表大小,再 softmax 得到「下一个词是哪个 token」的概率分布。这就是生成。

embed -> [Block]×N -> LM Head -> softmax -> 下一个词的概率

02 参数量计算器

拖滑块设模型配置,实时算出参数量从哪来。这是「7B / 13B / 70B」到底怎么算出来的。

4096
32
32
32K
总参数量
0
-
每层 Block
0
× n_layers
Embed+Head
0
词表相关

参数量分解(占比)

部位公式参数量
Embeddingvocab × d_model0
每层注意力 (QKVO)4 × d_model²0
每层 FFN2 × d_model × d_ff0
全部 Blockn_layers × (attn+ffn)0
LM Head (若不共享)vocab × d_model0
为什么 FFN 是参数大头?

注意力每层是 4·d_model²,FFN 是 2·d_model·d_ff = 2·d_model·(4·d_model) = 8·d_model²。所以每层里 FFN 是注意力的两倍,是参数和计算的大头。这也是第 6 篇 MoE 要把 FFN 换成「多个小 FFN 稀疏激活」的原因--它最胖,最值得优化。

03 概念速查

术语一句话
Encoder-Decoder双向编码+单向解码,适合翻译/摘要
Encoder-Only双向理解,BERT,擅长分类/抽取
Decoder-Only单向预测下一个词,GPT/Llama,现代主流
LM Head把 hidden 映回词表维度的线性层
7B / 13B / 70B参数量简写,B = billion = 10 亿
参数大头FFN(约 2/3)+ 词表嵌入(vocab 大时很重)
NEXT · 05/06

训练机制

骨架有了,怎么把它从随机变成有知识?损失、优化器、三阶段训练。

下一篇 · 训练 ->