找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2264

积分

0

好友

304

主题
发表于 4 小时前 | 查看: 3| 回复: 0

如果说BERT是一位阅读理解和分析的高手,那GPT就是一位创作能力出众的写作大师。

在之前的篇章中,我们了解了BERT如何通过双向注意力深刻理解文本,擅长分类、问答等任务。但AI的疆域不止于理解,当我们需要机器“创造”内容时,比如续写一篇文章、完成一首诗,甚至编一个冷笑话,这就是GPT大显身手的舞台。

GPT = Generative Pre-trained Transformer
其核心可以拆解为:生成式 + 预训练 + Transformer解码器

从OpenAI发布的GPT-1到如今的GPT-4,这一系列模型引领了生成式AI的浪潮,并最终催生了ChatGPT这样的现象级产品。

一、核心思想:单向自回归的语言模型

1. 与BERT的本质区别

GPT与BERT在设计哲学上截然不同,我们可以通过下表清晰地看到二者的对比:

维度 BERT GPT
架构 Transformer编码器(双向) Transformer解码器(单向)
训练任务 掩码语言模型 + 下一句预测 标准语言模型(预测下一个词)
注意力 每个词可以“看到”所有词 每个词只能“看到”它左边的词
擅长任务 理解(分类、NER、问答) 生成(文本续写、对话)
典型代表 BERT-base, RoBERTa GPT-2, GPT-3, ChatGPT

2. 自回归生成

GPT采用自回归的方式生成文本,其过程可以概括为:

  1. 给定一个初始的提示序列 x₁, x₂, ..., xₜ
  2. 模型预测下一个词的概率分布 P(xₜ₊₁ | x₁...xₜ)
  3. 从这个分布中采样,得到下一个词 xₜ₊₁
  4. 将新生成的 xₜ₊₁ 加入输入序列,重复步骤2-3,直到达到预设的长度或遇到结束符。

这个过程模拟了人类的写作方式:基于已有的文字,一个字一个字地向下推进,始终只依赖已经生成的内容。

二、架构详解:Transformer解码器

GPT模型的核心是Transformer的解码器部分,并对其中的注意力机制进行了关键改造——引入了掩码自注意力

1. 掩码自注意力

在标准的自注意力中,序列中的每个位置都能“看见”所有位置的信息。但在语言生成任务中,模型在预测当前位置的词时,不应该知道未来词的信息。为此,GPT使用了上三角掩码

我们用一个简化的注意力分数矩阵来说明,其中1表示“可见”,0表示“被掩码不可见”:

    词1 词2 词3 词4
词1  1   0   0   0
词2  1   1   0   0
词3  1   1   1   0
词4  1   1   1   1

这样,位于位置 i 的词,只能关注到位置 ≤i 的词,确保了生成过程的单向性。

2. 堆叠的解码器层

一个GPT模型由多个结构相同的解码器层堆叠而成。每一层都包含:

  • 掩码多头自注意力机制
  • 前馈神经网络
  • 残差连接与层归一化

值得注意的是,GPT的解码器层没有原始Transformer解码器中的“编码器-解码器注意力”子层,因为GPT是纯生成模型,没有独立的编码器输入。

3. GPT家族模型规格

GPT系列模型的发展伴随着参数规模的急剧膨胀:

模型 参数量 层数 隐藏层维度 注意力头数
GPT-1 117M 12 768 12
GPT-2 1.5B 48 1600 25
GPT-3 175B 96 12288 96
GPT-4 未公开 - - -

三、训练与生成策略

1. 训练目标

GPT的训练目标非常直观:最大化下一个词的概率。给定一个文本序列 x₁, x₂, ..., xₙ,其训练损失函数为标准的语言模型目标:

L = -∑ log P(xᵢ | x₁...xᵢ₋₁)

因此,GPT可以在海量的无标注文本上进行预训练。

  • GPT-1:BooksCorpus数据集(约7000本书)。
  • GPT-2:WebText数据集(4500万网页)。
  • GPT-3:混合数据集(如Common Crawl,总计约570GB文本)。

2. 文本生成策略

训练好的GPT是一个概率模型,从其中采样生成文本有多种策略:

  • 贪心搜索:每一步都选择概率最高的词。结果往往短小、重复、不够自然。
  • 束搜索:保留多个(束宽)候选序列,最后选择整体概率最高的。虽然减少了错误,但生成的文本依然容易陷入重复模式。
  • 随机采样:根据模型输出的概率分布随机挑选下一个词。这带来了多样性,但也可能选中一些不合理或低质量的词。
  • Top-k采样:仅从概率最高的k个词中采样,避免选中概率极低的词。
  • Top-p(核)采样:目前最常用的策略。它选择累积概率超过p的最小词集,然后在这个集合内重新归一化并采样。这种方法能动态调整候选词的数量。

在采样中,温度参数也至关重要。它通过 logits = logits / temperature 来调整Softmax分布的平滑度。温度越低(<1),分布越尖锐,生成结果越保守和确定;温度越高(>1),分布越均匀,生成结果越随机和多样。

四、实战:使用HuggingFace Transformers生成文本

让我们通过HuggingFace Transformers库,实际体验一下GPT-2的文本生成能力。

1. 环境准备

首先,安装必要的库:

pip install transformers torch

2. 基础文本生成

以下代码演示了如何使用GPT-2生成多个续写文本。

from transformers import GPT2LMHeadModel, GPT2Tokenizer

# 加载模型和分词器
model_name = "gpt2"  # 也可选择 "gpt2-medium", "gpt2-large", "gpt2-xl"
tokenizer = GPT2Tokenizer.from_pretrained(model_name)
model = GPT2LMHeadModel.from_pretrained(model_name)

# 设置生成参数
prompt = "Once upon a time,"
inputs = tokenizer(prompt, return_tensors="pt")

# 生成文本
outputs = model.generate(
    inputs.input_ids,
    max_length=50,
    num_return_sequences=3,
    do_sample=True,
    top_p=0.9,
    temperature=0.8,
    pad_token_id=tokenizer.eos_token_id
)

# 解码并打印输出
for i, output in enumerate(outputs):
    text = tokenizer.decode(output, skip_special_tokens=True)
    print(f"生成 {i+1}: {text}\n")

3. 条件生成示例

我们可以给模型一个经典的开头,让它续写一首诗:

prompt = "Roses are red, violets are blue,"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
    inputs.input_ids,
    max_length=50,
    do_sample=True,
    top_k=50,
    temperature=0.9
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

五、从GPT-3到ChatGPT的演进

1. GPT-3:规模效应的奇迹

拥有1750亿参数的GPT-3展现了惊人的少样本学习能力。你只需要在提示词中给出几个任务示例,GPT-3就能理解并执行新任务,而无需进行额外的模型微调。
例如,一个情感分类的少样本提示可能是:

文本:这部电影很棒!情感:正面
文本:太无聊了。情感:负面
文本:我喜欢它。情感:

GPT-3会基于前两个例子,自动为第三个句子输出“正面”。

2. InstructGPT与ChatGPT

尽管GPT-3能力强大,但它生成的内容并不总是符合人类的指令或价值观。InstructGPT通过基于人类反馈的强化学习对GPT-3进行微调,极大地提升了模型对指令的遵循能力和输出的有用性、真实性、无害性。
ChatGPT则是在此基础上,进一步针对多轮对话场景进行了优化,最终成为我们熟知的、能够进行流畅自然对话的AI助手。

总结

从GPT-1到GPT-4的发展历程,清晰地证明了“数据规模 + 自回归架构 + Transformer”这条技术路线的巨大潜力。GPT让机器不仅能够理解语言,更能够创造语言。以ChatGPT为代表的大语言模型的出现,无疑开启了一个生成式AI的新纪元。

希望本文能帮助你系统地理解GPT的原理、架构与实战应用。如果你想进一步探讨AIGC相关技术,欢迎在云栈社区的“人工智能”版块与其他开发者交流。




上一篇:我的自动化实践:脚本、Skill与Agent的优先级选择
下一篇:Agentic AI如何终结安全验证割裂,实现持续智能防护
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-18 09:01 , Processed in 0.732789 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表