← 返回首页
🧠

GPT系列模型演进与原理

📂 llm ⏱ 2 min 351 words

--- title: "GPT系列模型演进与原理" description: "回顾GPT-1到GPT-4的发展历程,理解生成式预训练的核心思想" tags: ["GPT", "OpenAI", "生成模型", "预训练"] category: "llm" icon: "🧠"

GPT系列模型演进与原理

GPT系列概述

GPT(Generative Pre-trained Transformer)系列是 OpenAI 开发的一系列大语言模型。从 GPT-1 到 GPT-4,每一代模型都在规模、能力和应用范围上实现了显著突破。

GPT-1:生成式预训练的开端

核心思想

GPT-1 的核心创新是将无监督预训练与有监督微调相结合:

  1. 预训练阶段:在大规模无标注文本上学习语言模型
  2. 微调阶段:在特定任务的标注数据上进行有监督学习

模型架构

输入 → Token Embedding + Position Embedding → 12层 Transformer Decoder → 输出

GPT-1 的关键参数:

from transformers import GPT2LMHeadModel, GPT2Tokenizer

# 加载预训练的 GPT-2 模型(GPT-1 架构类似)
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')

# 文本生成
input_text = "The future of AI is"
input_ids = tokenizer.encode(input_text, return_tensors='pt')

output = model.generate(
    input_ids,
    max_length=50,
    num_return_sequences=1,
    no_repeat_ngram_size=2,
    temperature=0.7
)

print(tokenizer.decode(output[0], skip_special_tokens=True))

GPT-2:零样本学习

关键改进

GPT-2 证明了语言模型可以通过零样本学习(Zero-shot Learning)完成各种任务,无需任何标注数据。

模型规模

配置 参数量 层数 隐藏维度
Small 1.17亿 12 768
Medium 3.45亿 24 1024
Large 7.62亿 36 1280
XL 15.42亿 48 1600

零样本任务示例

# 翻译任务(零样本)
prompt = "Translate English to French: cheese =>"
# 模型输出: "fromage"

# 问答任务(零样本)
prompt = "Q: What is the capital of France?\nA:"
# 模型输出: "Paris"

# 摘要任务(零样本)
prompt = "Article: [长文本]...\n\nTL;DR:"
# 模型输出: "摘要内容"

GPT-3:少样本学习的突破

涌现能力

GPT-3(1750亿参数)展示了强大的少样本学习能力,只需在提示中提供几个示例,就能完成新任务。

# 少样本学习示例
prompt = """Translate English to Chinese:
hello => 你好
good morning => 早上好
thank you => 谢谢

How are you? => """

# 模型会生成: "你好吗?"

In-Context Learning

GPT-3 的核心能力是 In-Context Learning(上下文学习):

from openai import OpenAI

client = OpenAI()

def few_shot_classification(text, examples):
    messages = [
        {"role": "system", "content": "你是一个文本分类器。"},
    ]
    for ex in examples:
        messages.append({"role": "user", "content": ex["input"]})
        messages.append({"role": "assistant", "content": ex["output"]})
    messages.append({"role": "user", "content": text})
    
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    return response.choices[0].message.content

# 使用示例
examples = [
    {"input": "这部电影太棒了!", "output": "正面"},
    {"input": "服务态度很差", "output": "负面"},
]

result = few_shot_classification("产品质量不错,但价格偏高", examples)
print(result)  # 输出: "中性" 或类似分类

GPT-4:多模态与推理能力

关键特性

性能对比

基准测试 GPT-3.5 GPT-4
GRE考试 213分 163分(top 10%)
BAR法律考试 ~10% ~90%
SAT数学 590分 700分

GPT系列的核心设计思想

1. 自回归生成

GPT 模型采用自回归方式生成文本:

def autoregressive_generate(model, start_token, max_length):
    """自回归生成过程示意"""
    generated = [start_token]
    
    for _ in range(max_length):
        input_tensor = torch.tensor([generated])
        logits = model(input_tensor)
        next_token = torch.argmax(logits[:, -1, :])
        generated.append(next_token.item())
    
    return generated

2. 指令遵循

通过 RLHF(人类反馈强化学习)和指令微调,GPT 模型学会了更好地遵循人类指令。

3. 规模定律

OpenAI 发现了重要的规模定律(Scaling Laws):

Loss ∝ N^(-α) + D^(-β) + E^(-γ)

其中 N 是参数量,D 是数据量,E 是计算量。这指导了模型规模的扩展。

GPT系列的开源生态

尽管 GPT 系列本身不开源,但催生了大量开源替代方案:

总结

GPT 系列的发展展示了规模、数据和算法协同进化的力量。从 GPT-1 的预训练+微调范式,到 GPT-4 的多模态推理能力,每一代模型都推动了 AI 技术的边界。理解 GPT 系列的演进历程,对于把握大语言模型的发展方向具有重要意义。