游乐游手机版
首页/AI热点日报/热点详情

ChatGPT 1750亿参数从何而来

类型:热点整理2026-07-21
ChatGPT的175B参数由词嵌入、位置嵌入、多头注意力与前馈网络四部分构成,经96层堆叠计算得出。依据论文参数设置,代入公式计算的总参数量约为174 6B,与公开的175B基本一致,其中词嵌入和位置嵌入负责输入表征,多头注意力实现上下文交互。
# ChatGPT模型参数数量计算教程

大语言模型(LLM)中的参数规模是衡量模型能力的重要指标,例如ChatGPT拥有175 Billion(175B)参数。对于从事硬件或系统优化的人员来说,理解参数的具体构成和计算方法十分关键。本文将基于ChatGPT论文中的参数设置,以清晰的步骤和公式,一步步推导出这一数字。

一、ChatGPT背景与结构

1. Transformer基础

ChatGPT基于Google提出的Transformer架构。完整的Transformer包含编码器(Encoder)和解码器(Decoder),用于序列到序列的任务(如翻译)。

2. ChatGPT的Decoder-only结构

与翻译任务不同,ChatGPT用于对话生成,因此只需使用Transformer的Decoder部分。它接收输入序列,通过自注意力机制和全连接层逐步生成下一个token。

3. 整体数据流(以Bert为例的等效理解)

虽然ChatGPT是decoder-only,但其内部计算流程与经典Bert类似,可用以下立体图直观理解:

  • ① 输入序列经词嵌入(Input Embedding)位置编码(Position Encoding)后,与Key、Value、Query矩阵做线性投影,再进行Attention计算。
  • ② 多个Attention头的结果拼接(Concat),再次经过线性投影。
  • ③ 结果输入前馈网络(Feed-Forward Network),经过两层线性变换后输出。
  • ④ 重复第②、③步n_layer次。

二、参数符号说明

在计算之前,先明确以下核心参数的含义:

  • n_head:Attention中头的数量
  • d_model:瓶颈层(bottleneck)向量的维度
  • n_vocabulary:词典大小(字典维度)
  • n_context:上下文长度(输入序列最大长度)
  • n_layer:网络层数(重复堆叠次数)
  • d_head:每个Attention头的维度,通常 d_head = d_model / n_head

三、参数计算详细步骤

1. Input Embedding + Position Embedding

输入序列经过词嵌入矩阵 Wₑ 从维度 (n_context, n_vocabulary) 映射到 (n_context, d_model)。该矩阵大小为 ,参数量 = n_vocabulary × d_model

同时,位置嵌入矩阵 Wₚ 大小为 ,参数量 = n_context × d_model

因此,本部分总参数为:n_vocabulary × d_model + n_context × d_model

2. Attention & Multi-Head

  • 每个Attention头包含三个投影矩阵:WᵢQ、WᵢK、WᵢV,大小均为 d_model × d_head。三个矩阵的总参数量 = 3 × d_model × d_head
  • 当有 n_head 个头时,Multi-Head部分的参数为:3 × d_model × d_head × n_head
  • 各头输出拼接后(维度 n_context × n_head·d_head),通过输出投影矩阵 Wₒ 映射回 d_model 维度。Wₒ 大小为 (n_head × d_head) × d_head,即 n_head × d_head × d_model(注意 n_head·d_head = d_model,所以此处的 d_head 是原 d_head,实际上 Wₒ 的参数量 = d_model × d_model,但保留公式一致性)。

将上述两部分相加,得到单层Attention的总参数:4 × d_model × d_head × n_head

注意:在ChatGPT中,d_head = 128,n_head = 96,d_model = 12288,符合 d_model = n_head × d_head。

3. Feed-Forward Network (FFN)

前馈网络由两层线性变换组成,中间隐藏层维度 d_ff 通常为 d_model 的4倍。即:d_ff = 4 × d_model。

  • 第一层:W₁ (d_model × d_ff),偏置 b₁ (d_ff),参数量 = d_model × d_ff + d_ff
  • 第二层:W₂ (d_ff × d_model),偏置 b₂ (d_model),参数量 = d_ff × d_model + d_model
  • 代入 d_ff = 4 × d_model,合计 = 2 × d_model × 4×d_model + d_model + 4×d_model = 8 × d_model² + 5 × d_model

4. 层数重复

上述 Attention 和 FFN 组成一个 Transformer 层,共重复 n_layer 次。因此,所有层的总参数量为:

n_layer × ( 4 × d_model × d_head × n_head + 8 × d_model² + 5 × d_model )

5. 汇总公式

将输入嵌入、位置嵌入与所有层参数相加,得到模型总参数:

总参数 = n_vocabulary × d_model     ← 词嵌入矩阵
       + n_context × d_model        ← 位置矩阵
       + n_layer × (
            4 × d_model × d_head × n_head   ← Multi-Head Attention
          + 8 × d_model² + 5 × d_model      ← Feed-Forward Network
         )

四、验证:ChatGPT论文参数计算

根据GPT-3/InstructGPT论文公开的参数设置:

  • n_vocabulary = 50257
  • d_model = 12288
  • n_context = 2048
  • n_layer = 96
  • d_head = 128
  • n_head = 96

代入计算:

  1. 词嵌入 + 位置嵌入
    50257 × 12288 + 2048 × 12288 = 642,723,840(约0.64B)
  2. 单层Attention & MultiHead
    4 × 12288 × 128 × 96 = 603,979,776(约0.6B)
  3. 单层Feed-Forward
    8 × 12288² + 5 × 12288 = 1,207,939,072 + 61,440 = 1,208,000,512(约1.21B)
  4. 所有层(96层)
    96 × (603,979,776 + 1,208,000,512) = 96 × 1,811,980,288 = 173,952,073,728(约173.95B)
  5. 总参数量
    642,723,840 + 173,952,073,728 = 174,594,797,568175 Billion

该结果与ChatGPT论文公开的175B参数基本一致,验证了计算方法的准确性。

五、常见问题(FAQ)

  • Q1:为什么不包括Layer Normalization的参数?
    Layer Normalization通常包含可学习的缩放因子(γ)和偏移量(β),每个子层(Attention和FFN后)各有一组。由于参数量相对较小(每层约2×d_model),在175B量级中可忽略。若需精确计算,可额外加上:n_layer × 2 × 2 × d_model = 4 × n_layer × d_model。
  • Q2:d_head和n_head的关系如何确定?
    在ChatGPT中,d_head = d_model / n_head。本例中d_model=12288,n_head=96,故d_head=128。如果不满足整除,则实际计算时按矩阵维度严格匹配。
  • Q3:位置嵌入为什么用n_context × d_model?
    位置嵌入是可学习的参数矩阵,每个位置对应一个d_model维向量。最大上下文长度为n_context,因此矩阵大小为n_context × d_model。实际使用时,只取前seq_len行。
  • Q4:为什么Feed-Forward中用了偏置项(bias)?
    线性变换通常包含偏置,上述公式已包含b₁和b₂。部分实现(如GPT-3)可能省略偏置,但论文中默认包含。偏置量微小,不影响对数量级的理解。

六、小提示

  • 提示1:计算时注意单位统一。上述公式中所有维度均为整数,乘积结果直接相加,最终得到精确的参数量。
  • 提示2:d_ff通常取4×d_model,但不同模型可能采用不同倍数,例如8倍或2倍。务必根据具体论文确认。
  • 提示3:本方法适用于所有基于Transformer Decoder的模型(如GPT系列、LLaMA等),只需替换对应参数即可估算参数量。
  • 提示4:175B参数中,词嵌入矩阵占了约0.64B,多层重复的权重占了174.3B,这说明模型能力的提升主要来自层数加深和宽度扩大。

通过以上分步拆解,你可以清晰地理解ChatGPT 175B参数的由来:词嵌入、位置嵌入、多头注意力、前馈网络四部分按层堆叠。掌握这一计算方法,无论是对硬件资源评估还是模型剪枝分析,都大有裨益。

来源:https://m.elecfans.com/article/2299877.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。