GPT (Generative Pre-trained Transformer)
GPT(生成式预训练 Transformer)是一种仅解码器的 Transformer,经过预训练以预测下一个 token。本文介绍其工作原理,以及从 GPT-1 到 GPT-6 的发展。
GPT(生成式预训练 Transformer)是一种仅由解码器构成的Transformer语言模型:它先在大量未标注文本上进行预训练,以预测下一个token,然后再针对具体任务进行调整。OpenAI 于 2018 年 6 月通过 Alec Radford 和同事的论文 Improving Language Understanding by Generative Pre-Training 介绍了这一方法;GPT 这个名称概括了其训练方案:以 Transformer 为基础构建文本生成模型,并在任何特定任务训练之前进行预训练。GPT 系列的参数规模从 GPT-1 的 1.17 亿增长到 GPT-3 的 1,750 亿;ChatGPT 于 2022 年 11 月 30 日发布,让 GPT 成为最广为人知的大型语言模型(LLM)系列。“GPT 风格”也用来描述以相同方式训练的任何仅由解码器构成的 LLM,包括 Meta 的 Llama 和 Alibaba 的 Qwen 模型。
GPT 模型的工作原理#
文本首先会被拆分成 token;GPT-2 引入了基于字节的tokenization方式,其词表包含 50,257 个 token,GPT-3 沿用了这一词表。每个 token 都会转换为一个嵌入并加上位置信号,然后由一叠相同的解码器块逐步处理这些向量。在每个块中,带掩码的自注意力会让每个位置只能读取自身及其之前的位置;前馈层则会独立变换每个位置:
由于因果掩码的作用,对包含 1,024 个 token 的训练序列进行一次前向传播,就能同时得到 1,024 个下一个 token 的预测结果;因此,即使生成过程是顺序的,预训练仍可并行执行。推理时,模型会为下一个 token 评分,将其添加到文本中,然后重复这一过程,并通过 KV 缓存复用先前计算结果。OpenAI 的 1.24 亿参数 GPT-2 展示了第一步:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
inputs = tokenizer("The capital of France is", return_tensors="pt")
# One forward pass scores every vocabulary token as the next token
with torch.no_grad():
logits = model(**inputs).logits[0, -1]
top = logits.softmax(dim=-1).topk(5)
for p, i in zip(top.values, top.indices):
print(f"{tokenizer.decode(i)!r}: {p:.3f}")
# Generation repeats that step, appending one token at a time
output = model.generate(**inputs, max_new_tokens=8, do_sample=False, pad_token_id=tokenizer.eos_token_id)
print(tokenizer.decode(output[0]))GPT-2 为“ the”给出的概率是 0.085,而“ Paris”只有 0.032;贪心解码生成的文本为“The capital of France is the capital of the French Republic, and”。预训练 GPT 会像训练数据那样续写文本;接着通过指令微调和基于人类反馈的强化学习(RLHF),它就能成为回答问题的助手。
从 GPT-1 到 GPT-6#
GPT-1 使用 7,000 多本未出版书籍对一个 12 层解码器进行预训练,然后针对每项任务进行微调,在研究涉及的 12 项任务中,有 9 项的效果达到当时最先进水平。GPT-2 于 2019 年 2 月公布,参数规模扩大到 15 亿,并使用 40 GB 网页文本进行训练,还能以零样本方式执行任务;出于对滥用的担忧,OpenAI 分阶段发布其权重,直至 2019 年 11 月。2020 年 5 月发布的 GPT-3 展示了如何从提示中给出的示例进行少样本学习,这一结果早已由缩放定律所预示。
InstructGPT 随后推出 ChatGPT,并加入了基于人工反馈的训练;GPT-4 于 2023 年 3 月开始接受图像输入。OpenAI 的 o 系列推理模型从 2024 年 9 月的 o1 开始,学会在回答前写出长篇思维链;2025 年 8 月 7 日发布的 GPT-5 则通过路由器接入一个快速模型和一个推理模型。两天前,OpenAI 根据 Apache 2.0 许可证发布了 gpt-oss-120b 和 gpt-oss-20b,这是该公司自 GPT-2 以来首次发布开放权重语言模型。GPT-6 系列于 2026 年 9 月推出:GPT-6 Astra 于 9 月 3 日发布,GPT-6 Sol 和 GPT-6 Luna 于 9 月 22 日发布,GPT-6.1 Sol 于 9 月 29 日发布。
GPT 在计算机视觉中的应用#
同样的下一个 token 预测方法也适用于图像。OpenAI 的 Image GPT 于 2020 年训练 GPT-2 规模的模型逐个预测像素;视觉自回归建模 (VAR)逐级预测图像;许多视觉语言模型 (VLM)则将图像编码器接到 GPT 风格的解码器上,由解码器生成答案。文本编码器也采用了这种设计:OpenAI 的 CLIP 使用一个拥有 6,300 万个参数、12 层的 Transformer 对文本编码,该 Transformer 采用 GPT-2 架构和掩码自注意力。Tencent AI Lab 的 YOLO-World 已集成到 Ultralytics 软件包中;调用 set_classes(["person", "bus"]) 时,它会调用 CLIP 文本编码器,将每个类别名称转换为检测器可以与图像区域匹配的嵌入,因此无需重新训练即可更改类别列表。OpenAI 自己的 GPT 模型也能读取图像,而 VLM Leaderboard会衡量 GPT-6.1 Sol 和其他视觉语言模型在真实世界数据集中检测对象的准确度。
GPT 与相关术语的区别#
BERT 使用没有因果掩码的 Transformer 编码器,因此每个 token 都能看到完整输入;它适合分类和检索任务,但不能生成文本。LLM 指任何大型语言模型;GPT 既指 OpenAI 的模型系列,也指大多数 LLM 共有的仅解码器设计。ChatGPT 这样的聊天机器人,是基于 GPT 模型构建的应用,它会在模型外层加入系统提示、对话历史和工具。










