From GPT-2 到 gpt-oss:分析架构进展
以及它们与 Qwen3 的比较情况
本文信息来源:sebastianraschka
OpenAI 本周刚刚发布了他们的新开放权重 LLMs:gpt-oss-120b 和 gpt-oss-20b,这是自 2019 年 GPT-2 以来的首批开放权重模型。没错,得益于一些巧妙的优化,它们可以在本地运行(稍后会详细介绍)。
自 GPT-2 以来,这是 OpenAI 第一次分享大型、完全开放权重的模型。早期的 GPT 模型展示了 transformer 架构的扩展性。2022 年的 ChatGPT 发布则通过在写作和知识(后来还有编码)任务上的具体实用性,使这些模型普及开来。现在他们分享了一些期待已久的权重模型,其架构包含若干有趣的细节。
过去几天我花时间阅读代码和技术报告,总结出最有趣的细节。(就在几天后,OpenAI 还宣布了 GPT-5,我将在本文结尾简要在 gpt-oss 模型的语境中讨论它。)
以下是本文涵盖内容的快速预览。为便于浏览,建议使用文章页面左侧的目录。
- 与 GPT-2 的模型架构比较
- 将 gpt-oss 模型压缩到单张 GPU 的 MXFP4 优化
- 宽度与深度的权衡(gpt-oss 对比 Qwen3)
- 注意力偏差与汇聚点
- 与 GPT-5 的基准测试与比较
希望你觉得有收获!
1. 模型架构概述
在我们更详细讨论架构之前,先概述下图 1 所示的两个模型:gpt-oss-20b 和 gpt-oss-120b。

如果你之前看过近期的 LLM 架构图,或读过我之前的大型架构比较文章,你可能会注意到乍看之下并没有什么新颖或不同寻常的地方。

大型 LLM 架构比较
这并不令人惊讶,因为领先的 LLM 开发者往往使用相同的基础架构,然后做一些小的调整。这纯属我的推测,但我认为这是因为
- 这些实验室之间员工流动很大。
- 我们仍未找到比变换器(transformer)架构更好的方案。尽管存在状态空间模型和文本扩散模型,但据我所知,还没有人证明它们在此规模下能与变换器一样表现出色。(我找到的大多数比较仅关注基准测试性能。模型在真实世界的多轮写作和编码任务中的表现仍不明确。在撰写本文时,LM Arena 上排名最高的非纯变换器模型是 Jamba,它是一个变换器——状态空间模型的混合体,排名第 96。)
- 大多数提升很可能来自数据和算法的调整,而不是重大架构变更。
尽管如此,他们在设计选择上仍有许多有趣之处。其中一些在上图中有所展示(还有一些没有展示,不过我们也将在后文讨论)。在本文的其余部分,我将逐一突出这些特征并与其他架构进行比较。
我还应说明,我与 OpenAI 毫无关联。我的信息来自审阅已发布的模型代码和阅读他们的技术报告。如果你想了解如何在本地使用这些模型,最好的起点是 OpenAI 官方的模型中心页面:
20B 模型可以在拥有最多 16 GB 内存的消费级 GPU 上运行。120B 模型可以在单个 80 GB 内存的 H100 或更新硬件上运行。我会在后文回到这一点,因为有一些重要的注意事项。
2. 从 GPT-2 的演进
在我们跳入 gpt-oss 与更近期架构的比较之前,先坐上时光机并并排看看 GPT-2(图 2),以了解事物已经走了多远。

gpt-oss 和 GPT-2 都是基于 Attention Is All You Need (2017) 论文中提出的 transformer 架构构建的仅解码器 LLMs。多年来,许多细节发生了演变。
然而,这些变化并非 gpt-oss 独有。正如我们稍后将看到的,它们在许多其他 LLMs 中也有所体现。由于我在之前的 Big Architecture Comparison 文章中讨论了其中许多方面,我会尽量让每个小节简洁且聚焦。
1.1 去除 Dropout
Dropout (2012) 是一种传统技术,通过在训练期间随机“丢弃”(即置为零)部分层激活或注意力得分(见图 3)来防止过拟合。然而,dropout 在现代 LLMs 中很少使用,GPT-2 之后的大多数模型都已经舍弃了它(非俏皮语意)。

我推测在 GPT-2 中最初使用 dropout 是因为它沿用了原始 transformer 架构。研究者很可能注意到它并不能真正提升 LLM 性能(我在小规模的 GPT-2 复现实验中也观察到同样结果)。这很可能是因为 LLM 通常只用海量数据训练一个 epoch,这与最初引入 dropout 时所面对的数百个 epoch 的训练方案形成对比。因此,由于 LLM 在训练过程中每个 token 仅被看到一次,过拟合的风险很小。
有趣的是,尽管多年来在 LLM 架构设计中有些忽视 Dropout,我发现了一篇 2025 年的研究论文 ,在小规模 LLM 实验(Pythia 1.4B)中证实在这些单轮次训练情形下,Dropout 会导致下游表现更差。
1.2 RoPE 取代绝对位置嵌入
在基于 Transformer 的 LLM 中,由于注意力机制的存在,位置编码是必要的。默认情况下,注意力将输入 token 视为无序。在最初的 GPT 架构中,绝对位置嵌入通过为序列中的每个位置添加一个可学习的嵌入向量来解决这一问题(图 4),然后将其与 token 嵌入相加。

RoPE( 旋转位置嵌入 )引入了不同的方法:它不是将位置信息作为独立的嵌入相加,而是通过根据每个标记的位置以某种方式旋转查询和值向量来对位置进行编码。(RoPE 是一个优雅的想法,但也是一个略显棘手的主题,计划某天单独更详细地讲解。)
虽然最早在 2021 年提出,但随着原始 Llama 模型在 2023 年的发布,RoPE 被广泛采用,并已成为现代 LLMs 的一个常用技术。
1.3 Swish/SwiGLU 取代 GELU
早期的 GPT 架构使用了 GELU。为什么现在用 Swish 代替 GELU?Swish 被认为在计算上略微便宜些,我认为仅此而已。根据你查看的论文不同,会发现两者在建模性能上各有微弱优势。在我看来,这些细微差异很可能属于标准误差范围内,实际效果会因超参数敏感性而异。
在深度学习界大约十多年前基本上统一采用 ReLU 之前,激活函数曾是热议话题。自那以后,研究者提出并尝试了许多曲线更平滑的类 ReLU 变体,GELU 和 Swish(图 5)是最终被保留下来的两种。

早期的 GPT 架构使用 GELU,其定义为 0.5x * [1 + erf(x / sqrt(2))]。其中 erf(误差函数的缩写)是高斯函数的积分,通常通过对高斯积分的多项式近似来计算,因此比像 Swish 中使用的 sigmoid 这样的简单函数在计算上更为昂贵,而 Swish 则简单地表示为 x * sigmoid(x)。
在实践中,Swish 在计算上略微比 GELU 便宜,这大概是它在大多数新模型中取代 GELU 的主要原因。根据不同论文的对比,某一种激活函数在建模性能上可能略优。但我认为这些提升常常在标准误差范围内,最终优劣很大程度上取决于超参数调优。
如今大多数架构使用 Swish。然而,GELU 并未完全被遗忘;例如,Google 的 Gemma 模型仍然使用 GELU。
更值得注意的是,前馈模块(一个小型多层感知机)被一个门控“GLU”对应物取代,GLU 代表门控线性单元,最早在一篇 2020 年论文中提出。具体来说,原来的 2 个全连接层被替换为 3 个全连接层,使用方式如下图 6 所示。

乍一看,GEGLU/SwiGLU 变体似乎可能优于常规前馈层,因为由于额外的层参数数量更多。但这具有迷惑性,因为在实际中,W 和 V 权重层在 SwiGLU/GEGLU 中通常被设为传统前馈层中 W_1 层尺寸的一半。
为了更清楚地说明这一点,考虑常规变体和 GLU 变体的具体代码实现:

假设我们的嵌入维度是1024。在常规前馈网络情况下,这将是
- fc1:1024 × 4096 = 4,194,304
- fc2:1024 × 4096 = 4,194,304
也就是 fc1 + fc2 = 8,388,608 个参数。
对于 GLU 变体,我们有
- fc1:1024 × 2048 = 2,097,152
- fc2:1024 × 2048 = 2,097,152
- fc3:2048 × 1024 = 2,097,152
即:3 × 2,097,152 = 6,291,456 个权重参数。
因此,总体来看,使用 GLU 变体可以减少参数量,同时性能也更优。性能提升的原因在于这些 GLU 变体引入了额外的乘法交互,从而增强了表达能力(这与深而窄的神经网络在训练得当时优于浅而宽网络的原因相同)。
1.4 专家混合(Mixture-of-Experts)替代单一前馈模块
除了如上一节所述将前馈模块升级为 SwiGLU 外,gpt-oss 还用多个前馈模块替代了单一前馈模块,并在每个标记生成步骤中仅使用其中的一个子集。这种方法称为专家混合(MoE),下图第 8 图对此进行了说明。

因此,将单个前馈模块替换为多个前馈模块(如在 MoE 设置中所做)会大幅增加模型的总参数量。然而,关键技巧在于我们并不对每个标记都使用(“激活”)所有专家。相反,路由器只为每个标记选择一小部分专家。
由于一次仅有少数专家被激活,MoE 模块通常被称为稀疏 ,对比之下, 密集模块总是使用全部参数集。然而,通过 MoE 实现的大量总参数提升了 LLM 的容量,这意味着它在训练中可以吸收更多知识。稀疏性仍然使推理保持高效,因为我们不会同时使用所有参数。
(趣闻:在大多数 MoE 模型中,专家权重占总模型参数的比例超过 90%。)
1.5 分组查询注意力取代多头注意力
正如我在之前文章中提到的,近年来分组查询注意力(GQA)作为多头注意力(MHA)的一种更节省计算和参数的替代方案逐渐兴起。
在多头注意力中,每个头都有自己的一组键和值。GQA 通过让多个头共享相同的键和值投影来减少内存使用。
例如,如图9所示,若有2组键—值和4个注意力头,头1和头2可能共享一组键和值,而头3和头4共享另一组。该分组减少了键和值的总计算量,从而降低内存使用并提高效率——消融研究表明,这在不显著影响建模性能的情况下实现了上述优势。

因此,GQA 的核心思想是通过在多个查询头之间共享键和值来减少键和值头的数量。这可以(1)降低模型的参数量,且(2)在推理时减少键和值张量的内存带宽使用,因为需要存储和从 KV 缓存中检索的键和值更少。
(如果你想知道 GQA 在代码中是什么样子,请参见我的 GPT-2 到 Llama 3 的转换指南 ,其中有一个不使用 KV 缓存的版本,以及我的 KV 缓存变体 在这里 。)
虽然 GQA 主要是针对 MHA 的一种计算效率权宜之计,但消融研究(例如 原始 GQA 论文和 Llama 2 论文中的研究)表明,就 LLM 建模性能而言,其表现与标准 MHA 相当。
1.6 滑动窗口注意力
滑动窗口注意力(见下图 10)最早在 LongFormer 论文(2020) 中提出,后来被 Mistral 推广。有趣的是,gpt-oss 每隔一层就会应用这种机制。你可以把它视为多头注意力的一种变体,或在本例中为分组查询注意力(GQA),其注意力范围被限制在较小的窗口内,从而降低了内存使用和计算成本。

具体来说,gpt-oss 在能访问完整上下文的 GQA 层与限制为 128 个标记的滑动窗口 GQA 层之间交替。
正如我在上一篇文章中讨论的,Gemma 2(2024) 使用了类似的 1:1 比例。Gemma 3 在今年初走得更远,改为 5:1 比例,即每五层滑动窗口(局部)注意力层才有一层全注意力层。
根据 Gemma 的消融研究,滑动窗口注意力对建模性能的影响极小,如下图所示。注意 Gemma 2 的窗口大小为 4096 个标记,Gemma 3 将其缩减为 1024。在 gpt-oss 中,窗口仅为 128 个标记,异常之小。
作为一则趣闻, 官方公告文章指出滑动窗口注意力显然早在 GPT-3 中就已被使用:
这些模型采用交替的密集与局部带状稀疏注意力模式,类似于 GPT-3
谁能想到!?我回去看了最初的 GPT-3 论文 ,那里确实提到了:
我们使用与 GPT-2 [RWC+19] 相同的模型和架构,包括其中描述的修改初始化、预归一化和可逆分词,唯一的例外是我们在 Transformer 的各层中使用交替的密集和局部带状稀疏注意力模式,类似于 Sparse Transformer [CGRS19]。
1.7 RMSNorm 取代 LayerNorm
最后一个小调整,来自 GPT-2,是将 LayerNorm(2016) 替换为 RMSNorm(2019),这已成为近年来的一个常见趋势。
类似于将 GELU 换成 Swish 和 SwiGLU,RMSNorm 是这些较小但合理的效率改进之一。RMSNorm 的目的与 LayerNorm 类似,用于规范化层激活,如下方图 11 所示。
你可能还记得,不久之前 BatchNorm 曾是该任务的首选。后来它逐渐失宠,主要因为它难以高效并行(由于使用了批次的均值和方差统计量),并且在小批量大小下表现不佳。

如上图 11 所示,LayerNorm 和 RMSNorm 都将层输出缩放到合理的范围内。
LayerNorm 减去均值并除以标准差,使得该层的输出具有零均值和单位方差(方差为 1,标准差为 1)。
RMSNorm 将输入除以均方根。这样并不强制输出为零均值和单位方差,但均值和方差处于合理范围:均值在 -1 到 1 之间,方差在 0 到 1 之间。在图 11 所示的这个具体例子中,均值为 0.77,方差为 0.41。
LayerNorm 和 RMSNorm 都能稳定激活尺度并改善优化,但在大规模 LLMs 中通常更偏好使用 RMSNorm,因为其计算代价更低。与 LayerNorm 不同,RMSNorm 没有偏置(平移)项,并将昂贵的均值和方差计算简化为一次均方根操作。这将跨特征的归约次数从两个降为一个,从而降低了 GPU 上的通信开销并提高训练效率。
图 12 显示了对应的代码实现:

1.8 GPT-2 的遗产
我仍然认为 GPT-2 是学习 LLMs 时的极佳入门架构。它足够简单,让人能够理解而不被各种优化技巧迷惑,同时又足够复杂,能让你扎实掌握现代 transformer 模型的工作原理。
从 GPT-2 入手,你可以专注于基础(注意力机制、位置嵌入、归一化以及整体训练流程),而不会被新架构中那些额外的特性和微调所压倒。
事实上,我认为先花时间学习甚至实现 GPT-2,再在其基础上叠加更新的改进,是值得的。这样你不仅更容易理解那些改进,而且更能体会它们的价值,因为你会更清楚这些改进试图解决哪些局限或问题。
例如,基于我之前的 GPT-2 代码,最近我从头实现了 Qwen3 架构 ,它与 gpt-oss 非常相似,这也引出了下一个话题:将 gpt-oss 与更近的架构进行比较。
3. 将 gpt-oss 与近期架构(Qwen3)进行比较
在我们梳理了从 GPT-2 到 GPT OSS 的演变之后,下一步是将 GPT OSS 与更近的架构 Qwen3 进行比较。Qwen3 于 2025 年 5 月发布,比 GPT OSS 发布早三个月。
我在此选择 Qwen3 的原因是,截至本文撰写时,它是顶级开源权重模型之一。此外,Qwen3 的某个 MoE 模型在可训练参数总量上与 GPT OSS 相对接近,因此在某种程度上可直接进行比较。
下图 13 将 gpt-oss-20b 与一个规模相当的 Qwen3 模型进行了比较。

正如我们所见,gpt-oss 20B 与 Qwen3 30B-A3B 在架构组件上非常相似。这里的主要差异,除尺寸外,是 gpt-oss 使用了滑动窗口注意力机制(如前文 1.6 节所讨论,未在此图中示出),而 Qwen3 则没有。
下面在接下来的子章节中逐一梳理这些值得关注的细节。
3.1 宽度与深度
如果我们仔细观察这两个模型,会发现 Qwen3 的架构要深得多,拥有 48 个 transformer 块,而不是 24 个(见图 14)。

另一方面,gpt-oss 的架构要宽得多:
- 嵌入维度为 2880,而不是 2048
- 中间专家(前馈)投影维度为 5760,而不是 768
还值得注意的是,gpt-oss 使用了两倍的注意力头数,但这并不直接增加模型的宽度。模型的宽度由嵌入维度决定。
在参数数量固定的情况下,一种方法是否优于另一种?经验法则是,更深的模型具有更高的灵活性,但由于不稳定性问题(梯度爆炸和消失,RMSNorm 和捷径连接旨在缓解这些问题),训练起来可能更困难。
更宽的架构在推理时具有更快的优势(更高的令牌/秒吞吐量),因为更高的并行化,但代价是更高的内存消耗。
在建模性能方面,不幸的是,我所知道的没有很好的“同条件”比较(在参数大小和数据集保持不变的情况下),除了一项发表于 Gemma 2 论文(表 9) 的消融研究,该研究发现对于一个 9B 参数的架构,更宽的设置略优于更深的设置。在 4 个基准测试中,更宽的模型取得了 52.0 的平均得分,而更深的模型取得了 50.8 的平均得分。
3.2 少量大型专家与大量小型专家
如上图 14 所示,值得注意的是 gpt-oss 的专家数量出人意料地少(为 32 而非 128),且每个标记仅启用 4 个而非 8 个活跃专家。不过,每个专家的规模远大于 Qwen3 中的专家。
这很有趣,因为近期趋势和发展表明更多、更小的模型往往更有利。在总参数量不变的情况下,这一变化在下面来自 DeepSeekMoE 论文的图 15 中得到了很好的说明。

值得注意的是,与 DeepSeek 的模型不同,gpt-oss 和 Qwen3 都没有使用共享专家。
公平地说,gpt-oss 中专家数量少可能是 20B 规模的副作用。看看下面的 120B 模型,他们确实在保持其他条件不变的情况下增加了专家数量(和 transformer 层数),如下面的图 16 所示。

对于 20B 和 120B 模型如此相似的乏味解释,可能是因为 120B 模型是主要关注点。而创建更小模型最简单的方式就是把它做得稍短一些(更少的 transformer 层)并减少专家数量,因为参数大多集中在那里。然而,也有人可能会推测他们是否先开始训练 120B 模型,然后为了继续预训练而砍掉了一些 transformer 层和专家(而不是从随机权重开始)。
无论如何,这是因为仅仅扩展这两项(Transformer 层和专家数量)相当不寻常。例如,观察不同规模的 Qwen3 MoE 模型(下图图 17),它们在更多方面上更为成比例地扩展。

3.3 注意力偏置与注意力汇聚
gpt-oss 与 Qwen3 都采用分组查询注意力。主要区别在于,如前所述,gpt-oss 在每隔一层通过滑动窗口注意力限制上下文长度。
然而,有一个有趣的细节引起了我的注意。下图显示,gpt-oss 似乎在注意力权重中使用了偏置单元。

自 GPT-2 以来我就没见过这些偏置单元被使用,它们通常被认为是多余的。确实,我发现了一篇近期论文 ,从数学上证明至少在键变换(k_proj)上这是成立的。此外,实证结果表明有无偏置单元几乎没有差别(见下图 19)。

你可能注意到的另一个细节是图 18 代码截图中对 sinks 的定义。一般模型中,注意力 sinks 是放在序列开头的特殊“始终被关注”token,用于稳定注意力,这在长上下文场景中特别有用。也就是说,如果上下文变得非常长,这个位于开头的被关注的特殊 token 仍然会被关注,它可以学会存储关于整个序列的一些普遍有用的信息。(我认为最初是在 Efficient Streaming Language Models with Attention Sinks 一文中提出的。)
在 gpt-oss 的实现中,attention sinks 并不是输入序列中的实际 token。相反,它们是为每个 head 学习的偏置 logit,附加到注意力分数上(见图 20)。目的与上述 attention sinks 相同,但无需修改分词后的输入。

3.4 许可
最后,与 Qwen3 类似,gpt-oss 模型采用 Apache 2.0 开源许可证,这很棒(这也是我个人开源项目偏好的许可证)。这意味着这些模型可以被蒸馏到其他模型中,或无限制地用于商业产品。
开放权重与开源 LLMs。 这一区别多年来一直存在争论,但有必要澄清,以免对此次发布及其产物产生混淆。有些模型开发者仅发布模型权重和推理代码(例如 Llama、Gemma、gpt-oss),而另一些(例如 OLMo)则发布包括训练代码、数据集和权重在内的全部内容,作为真正的开源。
按更严格的定义,gpt-oss 是一个开放权重模型(和 Qwen3 一样),因为它包含权重和推理代码但不包含训练代码或数据集。然而,该术语在行业内的使用并不一致。
我猜“gpt-oss”中的“oss”指的是开源软件 ;然而,令我颇感惊讶的是,OpenAI 在其官方公告文章中明确将 gpt-oss 描述为一个开放权重模型。
4 其他有趣的细节
尽管前面的章节描述了自 GPT-2 以来架构如何演进,并讨论了其与 Qwen3(以及大多数其他近期模型)的相似之处,但仍有一些我尚未提及的额外但值得注意的细节。这些内容没有很好地归入前面的各节,但仍值得一提。
4.1 训练概览
不幸的是,关于训练集规模和使用算法的信息并不多。我在下面补充了来自模型说明报告 (1)和公告帖 (2)中最有趣的片段:
gpt-oss 模型使用了我们最先进的预训练和后续训练技术来训练 [...](1)
[...] 完成该项工作共需 210 万 H100 小时,而 gpt-oss-20b 几乎只需其中的十分之一。(1)
[...] 包括监督微调阶段和高算力的强化学习阶段 [...](2)
我们在一个以英语为主、仅包含文本的数据集上训练这些模型,重点是 STEM、编码和通识知识。(2)
因此,我们知道 gpt-oss 系列模型是推理模型。211 万 H100 GPU 小时的训练算力大致相当于规模约大 5.6 倍的 DeepSeek V3 模型所用的 278.8 万 H800 GPU 小时。不幸的是,目前尚无 Qwen3 的训练时长信息。
有趣的是,GPT-oss 的训练小时估算同时包含了用于指令跟随的监督学习和用于推理的强化学习,而 DeepSeek V3 只是一个预训练的基础模型,DeepSeek R1 则是在其基础上单独训练的。
4.2 推理工作
正如上一节所述,gpt-oss 模型是推理型模型。然而,特别有趣的是,它们的训练方式使用户能够通过推理时的尺度调整轻松控制推理程度。
具体来说,gpt-oss 模型可以在其系统提示中接收“推理强度:低/中/高”这样的指令,这会直接影响响应的长度和准确性,如图 21 所示。

这种可调节性很有用,因为它让我们能够在成本、算力和准确性之间取得平衡。例如,如果任务很简单,比如回答一个直接的知识问题或修正一个小错别字,我们可以跳过扩展推理。这样既节省时间和资源,又避免了不必要的冗长回复和繁复的推理痕迹。
有些遗憾的是,OpenAI 没有像 Qwen3 或 OLMo 那样在强化学习推理训练之前发布基础模型。基础模型对研究人员开发推理方法来说尤其有价值(这也是我目前喜欢使用 Qwen3 Base 的一个原因)。我猜测 OpenAI 的决定更多是由行业和生产使用场景驱动的,而非出于研究方面的考虑。
注意,原始的 Qwen3 模型也提供了一个用于启用/禁用思考(推理)模式的切换(通过 tokenizer 中的 enable_thinking=True/False 设置,该设置只是添加 <think></think> 标签以禁用推理行为)。不过,Qwen3 团队在过去几周更新了他们的模型,并从混合模型转向专用的 Instruct/Thinking/Coder 变体。
原因是混合模式的性能低于各个单独模型:
在与社区讨论并反思此事后,我们决定放弃混合思考模式。我们现在将分别训练 Instruct 和 Thinking 模型,以实现尽可能最佳的质量。 来源
4.3 MXFP4 优化:一个小但重要的细节
一个有趣的惊喜是,OpenAI 发布了使用 MXFP4 量化方案针对 MoE 专家模型的 gpt-oss 模型。
量化格式过去是一个小众话题,主要与移动或嵌入式 AI 相关,但随着更大模型的兴起,这一状况已发生变化。在此情形下,MXFP4 优化使模型能够在单 GPU 设备上运行。
以下是实际情况的样子:
- 大型模型(例如 120B)可以在单个 80GB H100 或更新的 GPU 上运行。虽然这不是消费级硬件,但租用一台单 H100 机器远比多 H100 机器便宜得多。此外,我们也不用担心将模型分布到多个 GPU 上并增加通信开销。更棒的是,AMD MI300X 卡从第一天就被支持!
- 更小的 20B 模型甚至可以装入 16 GB 显存;但条件是必须使用支持 MXFP4 的 RTX 50 系列或更新 GPU。
请注意,这些模型也可以在较旧的硬件上运行,但无法使用 MXFP4,因此会消耗更多内存。没有 MXFP4 优化时,模型以 bfloat16 格式运行时大约会消耗 48 GB(gpt-oss-20b)和 240 GB(gpt-oss-120b)。
顺便说一下,我可以在我的 Mac Mini 上通过 ollama 轻松运行 gpt-oss-20b 模型。它大约使用 13.5 GB 内存,确实相当合理。
4.4 基准测试
这些模型对于独立基准测试来说仍然有些新。查看了 LM Arena 排行榜后,我发现 gpt-oss 还未上榜。因此,根据 LM Arena 用户的反馈,目前 Qwen3-Instruct 仍然是最顶尖的开源权重模型(见图 22)。

查看 gpt-oss 发布帖中提供的推理基准,我们可以看到 gpt-oss 系列模型在表现上与 OpenAI 的专有模型以及 Qwen3 不相上下(见图 23)。

但需要说明的是,gpt-oss-120b 的规模几乎只有 Qwen3 A235B-A22B-Thinking-2507 模型的一半,并且可以在单张 GPU 上运行。
然而,基准性能并不总能反映真实世界的可用性。在我过去几天的有限使用中,发现 gpt-oss 相当有能力。不过,正如其他人所指出的,它似乎有较高的幻觉倾向(这一点也在其模型卡中提到)。
这种情况可能源于它在数学、谜题和代码等推理任务上的大量训练,这可能导致某些“常识遗忘”。不过,鉴于 gpt-oss 在设计时考虑了工具使用,这一限制随着时间推移可能会变得不那么重要。开源 LLMs 的工具整合仍处于早期阶段,但随着成熟,我预计在回答事实性或基于知识的查询时,我们会越来越多地让模型查阅外部来源(如搜索引擎)。
如果出现这种情况,优先强调推理能力而非记忆可能是合理的。这与人在学校(或更广泛的生活中)学习的情况类似,解决问题的能力通常比死记事实更重要。
5 gpt-oss 与 GPT-5
OpenAI 忙碌了一周,并在 gpt-oss 发布后不久推出了期待已久的 GPT-5 模型。GPT-5 的发布很有意思。我不得不说,让我真正感到惊讶的是他们的开源模型在基准测试表现上与其最佳商业产品相比竟然如此接近(见图 24)。

总的来说,尽管有人称这次发布被炒作过度,但我很高兴我们有了一套新的、非常强大的开源权重模型,其表现并不比最佳专有模型差多少。当然,基准测试往往不能准确反映现实世界的使用情况,基于有限的使用数据现在下定论还为时过早。但我认为,对于喜欢使用开源权重和本地(或私有托管)模型的人来说,现在是个好时机。