返回学习地图
llmPhase B · 第 12

2.5 GPT系列

GPT-1/2/3/4进化史、Scaling Laws、架构演进:解码大语言模型的发展密码

5 个章节·按类别展开/折叠
知识

GPT进化史:从一个实验到改变世界

GPT的全称是Generative Pre-trained Transformer(生成式预训练Transformer)。从2018年的GPT-1到2024年的GPT-4o,这个系列的模型彻底改变了人工智能的格局。让我们用讲故事的方式来理解这段进化史。

GPT-1(2018年):"预训练+微调"可行!

参数:12层,1.17亿参数。大小:就像一个小仓库。

GPT-1证明了"预训练+微调"范式可行:先用海量文本训练一个通用的语言模型(预训练),然后针对特定任务(如情感分析、翻译)微调模型。这就像先上完小学中学的通识教育,再学习专业方向。

GPT-2(2019年):"规模大了就是不一样"

参数:48层,15亿参数。大小:一个厂房。

GPT-2惊人之处在于:它在某些任务上不做任何微调就能表现良好——这就是"零样本学习"(Zero-shot)。模型足够大后,很多能力自然涌现。OpenAI甚至一度认为GPT-2太危险不敢发布完整版本。

GPT-3(2020年):"涌现是一种魔术"

参数:96层,1750亿参数。大小:一栋摩天大楼。

GPT-3的重大发现:In-Context Learning(上下文学习)。给模型几个示例(few-shot),它就能泛化到新任务——不用微调任何参数。只要在Prompt里给几个例子,模型就能理解你想要什么。这让AI的开发模式从"训练模型"变成了"写提示词"。

GPT-3的技术规格:d_model=12288(每个词用12288维向量表示),96个注意力头,序列最长2048个token。

GPT-3.5 / ChatGPT(2022年):"让人说好"

注意:参数规模与GPT-3类似,但加持了RLHF(人类反馈强化学习)。

2022年11月30日,ChatGPT发布。2个月用户突破1亿。它的核心突破不是更大而是"更会说话":通过人类反馈让模型学会聊天,回答更有用、更安全、更符合人类期望。

GPT-4(2023年):"多模态与MoE时代"

参数:约1.8万亿(MoE架构,8个专家,每token路由到2个)。

支持图像输入。在各种专业考试(律师资格、医学执照)中达到人类前沿水平。使用了MoE(混合专家)架构——不是每次都用全部参数,只激活部分,大大降低成本。

GPT-4o(2024年):"原生多模态"

o = omni(全能的)。文本+图像+语音统一处理——不再先转成文字再处理,而是直接理解语音中的语调、情感等信息。

公式

Scaling Laws:为什么模型越大越聪明?

<p>2020年,OpenAI和DeepMind分别发表论文,发现了<b>Scaling Laws(规模法则)</b>——模型性能与参数数量、数据量、计算量之间存在可预测的幂律关系。简单说就是:<b>更大的模型、更多的数据、更多的算力 → 更好的性能。而且这个关系是可预测的。</b></p>
<p>OpenAI的Scaling Law公式(简化版):</p>
<p><b>L(N) ≈ (N_c / N)^α</b></p>
<p>其中:</p>
<table border="1">
<tr><th>符号</th><th>名称</th><th>含义</th><th>典型值/说明</th></tr>
<tr><td>L(N)</td><td>损失函数值</td><td>模型在测试集上的损失。越小越好</td><td>衡量模型性能的指标</td></tr>
<tr><td>N</td><td>参数量</td><td>模型有多少个可训练参数</td><td>GPT-3: 175B。越大模型越强</td></tr>
<tr><td>N_c</td><td>临界参数量</td><td>一个常数,与网络架构有关</td><td>由实验拟合得出</td></tr>
<tr><td>α</td><td>缩放指数</td><td>损失随参数量下降的速度</td><td>约0.04-0.10</td></tr>
</table>
<p><b>这条公式在说什么?</b></p>
<p>当参数量N翻倍时,损失L大约下降到原来的 2^(-α),即约为原来的 94-97%。下降很慢——需要指数级增加参数才能获得线性级的性能提升。</p>
<p><b>Chinchilla修正(DeepMind 2022年):</b></p>
<p>OpenAI的原始Scaling Law假设算力固定时先放大模型。但DeepMind发现<b>数据量同样重要</b>。Chinchilla定律说:</p>
<p>最优状态下,<b>每1个参数大约需要20个token的训练数据</b>。</p>
<p>所以训练一个70B(700亿)参数的模型,大约需要1.4T(1.4万亿)token的训练数据。</p>
<p>很多之前的模型(包括GPT-3)都训练不足——参数量大到一定程度但没有配足够的数据。GPT-4做到参数量和数据量同步增长。</p>
<p><b>实际意义:</b></p>
<p>如果你想训练一个10B参数的模型,按Chinchilla定律你需要约200B token的数据(大约4000亿字的中文)。数据不够的话,不如缩小模型。这就是为什么现在"数据质量比模型大小更重要"成为共识。</p>
知识

架构演进:GPT架构的持续优化

GPT系列使用的核心架构是Decoder-only Transformer(只用Transformer的解码器部分)。但它不是简单放大参数,还有很多架构改进:

1. Decoder-only(只用解码器)

为什么只用解码器?GPT的目标是自回归式生成——根据前面的词预测下一个词。解码器的掩码自注意力正好做这件事:每个token只能看到前面的token,适合从左到右的文本生成。BERT(编码器)更适合"理解"任务,GPT适合"生成"任务。

2. MoE(混合专家,Mixture of Experts)

一个大问题:模型越大推断越贵。MoE是一种"智慧偷懒"。

把模型的FFN层拆分成多个"专家"。一个门控网络(Router)决定每个token应该找哪些专家处理。每次只激活少数几个专家,其他专家休息。

GPT-4:8个专家,每个token路由到2个。总参数约1.8万亿,活跃参数约3700亿。相当于有8个专注不同领域的老师,每道题只找2个最合适的老师回答。大大节省成本。

3. GQA(Grouped Query Attention,分组查询注意力)

多头注意力中,Q(查询)多头独立但K和V可以共享。GQA把注意力头分组,组内共享KV。这样减少了KV缓存(推断时需要存起来),加速推断。

LLaMA 2/GPT-4等都用了这个技术。

4. RoPE(旋转位置编码)

相比Transformer原始的绝对位置编码,RoPE用旋转矩阵编码相对位置关系。优点是模型能自然地理解"距离"的概念,而且能外推到训练时没见过的长序列。

5. FlashAttention(快闪注意力)

Transformer的注意力计算是O(n²)的——序列长1000意味着100万的注意力对要计算。FlashAttention通过巧妙的分块(Tiling)计算,减少了GPU显存访问,速度提升2-4倍且不损失精度。

这项技术让你能用更长的上下文(GPT-4 Turbo支持128K token),是长上下文能力的关键。

6. Pre-Norm(前置归一化)

原始Transformer把层归一化放在每个子层之后。经过实验发现,把归一化放到子层之前(Pre-Norm)训练更稳定。现在几乎所有大模型都用Pre-Norm。

实例

实例:Scaling Laws如何指导实际开发?

实例

假设你在创业,想训练一个中文法律领域的专业模型。你有1000万条法律文档(约50亿个token)。你能训练多大的模型?

按Chinchilla定律:每参数约20 token最合理。

50亿 token / 20 = 2.5亿参数。

所以合理选择:~2-3亿参数。更大就是浪费(参数吃不饱数据)。

方案对比:

方案A:训练一个7B(70亿)参数的模型 → 数据严重不足,过拟合严重。看似大但实际不如小模型。

方案B:训练一个250M(2.5亿)参数的模型 → 数据刚好匹配,训练充分。虽然参数小但学会的知识更扎实。

方案C:使用开源预训练模型(如Qwen-7B)+ 用法律数据微调 → 最实际的方案!基础能力来自大模型预训练,专业能力来自微调。

这说明了为什么现在微调(Fine-tuning)比从头训练(Pre-training)更受欢迎:利用已有的大模型知识,只用少量专业数据就能获得好的专业表现。

NumPy验证计算:

import numpy as np

# 假设 Scaling Law: L = (N_c / N)^0.05
N_c = 1e8  # 临界参数量 1亿

for N_billions in [0.1, 1, 10, 100, 175]:
    N = N_billions * 1e9
    L = (N_c / N) ** 0.05
    print(f"参数量{N_billions}B: 损失值L={L:.4f}")

# 输出:
# 参数量0.1B: L=0.8912
# 参数量1B:   L=0.7942
# 参数量10B:  L=0.7078
# 参数量100B: L=0.6309
# 参数量175B: L=0.6134
# 可以看到:损失下降越来越慢(边际收益递减)
练习

练习题

练习

Q1:GPT-1、GPT-2、GPT-3的主要突破分别是什么?

Q2:Scaling Law是什么?它说明什么规律?

Q3:按Chinchilla定律,训练一个70B参数的模型需要多少训练数据(token数)?

Q4:MoE(混合专家)架构相比密集架构有什么优势?

Q5:为什么现在GPT用的Decoder-only更适合文本生成而BERT的Encoder-only更适合文本理解?

查看答案

A1:GPT-1:证明"预训练+微调"有效。GPT-2:发现扩大规模带来零样本能力。GPT-3:涌现In-Context Learning和Few-shot能力。

A2:Scaling Law发现模型性能(损失)与参数量、数据量、计算量之间存在幂律关系:Loss ∝ N^(-α)。更大的模型+更多数据+更多算力=更好的性能,且这个关系可预测。但边际收益递减。

A3:按Chinchilla定律:每参数约20 token。70B×20=1.4T(1.4万亿)token。大约相当于2-3万亿字的中文文本。

A4:MoE把FFN拆成多个专家,每次只激活2个左右。总参数可以很大(如1.8T)但活跃参数只有一小部分(如370B)。优点是:模型"容量"大但推断成本低。缺点是训练复杂,专家负载不均衡。

A5:Decoder-only使用自回归生成(从左到右逐个预测下一个词),天然适合文本生成任务。Encoder-only(BERT)同时看到整个序列(双向注意),适合需要全局理解的任务如分类、实体识别。生成任务需要因果性(不能说未来),所以Decoder-only最合适。