從 GPT?2 到 gpt?oss:解析架構的迭代

From GPT-2 to gpt-oss: Analyzing the Architectural Advances

  • 原文

    https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the

  • OpenAI 本周剛發布了兩款新的開放權重的大語言模型:gpt-oss-120b 和 gpt-oss-20b,這是自 2019 年 GPT-2 以來首次推出的開放權重模型。是的,得益于一些巧妙的優化,它們可以在本地運行(稍后會詳細介紹)。

    這是自 GPT-2 以來,OpenAI 首次分享體量較大的、完全開放權重的模型。早期的 GPT 模型展示了 Transformer 架構的可擴展性。2022 年的 ChatGPT 發布則通過在寫作與知識(以及后來在編程)任務上的具體實用性,使這些模型走向主流。如今他們分享了一個期待已久的權重模型,其架構也包含一些有趣的細節。

    為了總結最有趣的細節,我花了過去幾天的時間閱讀代碼和技術報告。(就在幾天后,OpenAI 還發布了 GPT-5,我將在本文末尾的 gpt-oss 模型背景下簡要討論它。)

    以下是本文涵蓋內容的快速預覽。為了便于導航,我建議使用文章頁面左側的目錄。

    1. 與 GPT-2 的模型架構比較
    2. 將 gpt-oss 模型安裝到單個 GPU 上的 MXFP4 優化
    3. 寬度與深度之間的權衡 (gpt-oss vs Qwen3)
    4. 注意力偏差和 sinks
    5. 基準測試以及與 GPT-5 的比較

    希望您覺得它內容豐富!


Model Architecture Overview

  • 在更詳細地討論架構之前,我們先概覽一下兩個模型:gpt-oss-20b 和 gpt-oss-120b,如下方圖 1 所示。img
    如果您之前曾查看過最近的LLM架構圖,或者閱讀我以前的大型體系結構比較文章,則可能會發現乍一看沒有什么新穎或不尋常的。

  • 這并不令人意外,因為領先的 LLM 開發者傾向于使用相同的基本架構,然后進行較小的調整。這純粹是我的猜測,但我認為這是因為

    1. 這些實驗室之間的人才流動頻繁。
    2. 我們至今仍未找到比 Transformer 架構更好的方案。盡管存在狀態空間模型和文本擴散模型,但據我所知,還沒有人證明它們在這一規模上能與 Transformer 相媲美。(我找到的大多數比較僅關注基準測試表現。模型在真實世界的多輪寫作與編碼任務中的表現仍不明確。撰寫本文時,LM Arena 上排名最高的非純 Transformer 模型是 Jamba——一種 Transformer 與狀態空間模型的混合體,排名第 96 位。)
    3. 大部分性能提升很可能源于數據與算法的微調,而非重大架構變更。
  • 話雖如此,他們的設計選擇仍然有許多有趣的方面。上圖顯示了一些(而另一些則沒有,但我們稍后也將討論它們)。在本文的其余部分,我將重點介紹這些功能,并將它們一次與其他架構進行比較。

    我還要說明,我與 OpenAI 并無任何關聯。我的信息來源于對已發布的模型代碼的審閱以及他們技術報告的閱讀。如果你想學習如何在本地使用這些模型,那最好還是閱讀OpenAI 官方的模型中心頁面。

    https://huggingface.co/openai/gpt-oss-20b

    https://huggingface.co/openai/gpt-oss-120b

    20B 模型可在配備最高 16 GB 顯存的消費級 GPU 上運行。120B 模型可在單塊配備 80 GB 顯存的 H100 或更新的硬件上運行。我稍后會再討論這一點,因為其中存在一些重要的注意事項。


Coming From GPT-2

  • 在比較 gpt-oss 與更近期的架構之前,我們不妨乘坐“時間機器”,并排回看一下 GPT-2(圖 2),以了解技術迄今取得了多大進步。img

    GPT-oss 和 GPT-2 都是基于 《Attention Is All You Need》(2017 年) 論文中提出的 Transformer 架構構建的Decode-only架構 LLM。多年來,許多細節已得到改進。

    然而,這些變化并非 GPT-OSS 獨有。正如我們稍后將看到的,它們也出現在許多其他 LLM 中。由于我在上一篇 “大型架構比較” 文章中討論過許多此類方面,因此我將盡量使每個小節簡短而有重點。


Removing Dropout

  • Dropout(2012)是一種傳統的防止過擬合技術,在訓練過程中通過隨機“丟棄”(即置零)一部分層激活或注意力分數(見圖3)來實現。然而,在現代大語言模型中很少使用 dropout,大多數在 GPT-2 之后的模型都已將其droped(雙關語并非本意)。img

    我推測 Dropout 最初在 GPT-2 中使用,是因為它繼承自原始的 Transformer 架構。研究人員可能注意到,它并沒有真正提升 LLM 的性能(我在小規模的 GPT-2 復制運行中也觀察到了同樣的情況)。這可能是因為 LLM 通常只在海量數據集上進行單輪訓練,這與 Dropout 最初引入時使用的數百輪訓練方案形成了鮮明對比。因此,由于 LLM 在訓練過程中每個 token 只被識別一次,因此過擬合的風險很小。

    有趣的是,雖然 Dropout 在 LLM 架構設計中多年來一直被忽視,但我發現了一篇 2025 年的研究論文 ,其中包含小規模 LLM 實驗(Pythia 1.4B),證實了 Dropout 在這些單 epoch 機制中會導致下游性能變差。


RoPE Replaces Absolute Positional Embeddings

  • 在基于 Transformer 的 LLM 中,由于注意力機制的存在,位置編碼必不可少。默認情況下,注意力機制會將輸入 token 視為無序的。在原始 GPT 架構中,絕對位置嵌入通過為序列中的每個位置添加一個學習到的嵌入向量(圖 4)來解決這個問題,然后將該向量添加到 token 嵌入中。img

    RoPE( 旋轉位置嵌入 )引入了一種不同的方法:它不是將位置信息添加為單獨的嵌入,而是通過根據每個標記的位置旋轉查詢和鍵向量來編碼位置。(RoPE 是一個優雅的想法,但解釋起來也有點棘手。我計劃以后單獨更詳細地介紹。)

    RoPE 于 2021 年首次推出,但隨著 2023 年原始 Llama 模型的發布而得到廣泛采用,并從此成為現代 LLM 的主要內容。


Swish/SwiGLU Replaces GELU

  • 早期的 GPT 架構使用 GELU。為什么現在使用 Swish 而不是 GELU?我認為 Swish 的計算成本略低,這就是它的全部優勢。根據你參考的論文,你會發現其中一種在建模性能方面略勝一籌。在我看來,這些細微的差異可能在標準誤差范圍內,具體數值會根據超參數敏感度而有所不同。

  • 激活函數曾經是一個熱門的爭論話題,直到十多年前深度學習社區基本確定了 ReLU 函數。從那時起,研究人員提出并嘗試了許多類似 ReLU 且曲線更平滑的變體,其中 GELU 和 Swish(圖 5)是其中最受青睞的。img

    早期的 GPT 架構使用 GELU,其定義為 0.5x * [1 + erf(x / sqrt(2))] 。其中, erf (誤差函數的縮寫)是高斯積分,它是使用高斯積分的多項式近似來計算的,這使得它的計算成本比 Swish 中使用的 S 形函數(其中 Swish 只是 x * sigmoid(x) 簡單函數更高 。

    實際上,Swish 的計算成本略低于 GELU,這可能是它在大多數新模型中取代 GELU 的主要原因。根據我們所參考的論文,其中一種算法的建模性能可能會略勝一籌。但我認為這些改進通常在標準誤差范圍內,最終勝出者將很大程度上取決于超參數的調優。

  • 如今,大多數架構都使用 Swish。然而,GELU 并未被完全遺忘;例如,谷歌的 Gemma 模型仍然使用 GELU。

    更值得注意的是,FFN模塊(一個小型MLP)被門控“GLU”模塊取代。GLU 是門控線性單元的縮寫,是在 2020 年的一篇論文中提出的 。具體來說,2 個全連接層被 3 個全連接層取代,如下圖 6 所示。img

    乍一看,GEGLU/SwiGLU 變體似乎比常規前饋層更好,因為額外的層帶來了更多的參數。但這并非易事,因為在實踐中, SwiGLU/GEGLU 中的 WV 權重層通常被選擇為傳統前饋層中 W_1 層大小的一半 。

    為了更好地說明這一點,請考慮常規和 GLU 變體的具體代碼實現:img

    因此,假設我們的嵌入維度為 1024。在常規前饋情況下,這將是
    fc1:1024?4096=4194304fc2:1024?4096=4194304fc1: 1024*4096=4194304\\ fc2: 1024*4096=4194304\\ fc1:1024?4096=4194304fc2:1024?4096=4194304
    fc1+fc2=8388608fc1+fc2=8388608fc1+fc2=8388608 個參數

    對于 GLU 變體,我們有
    fc1:1024?2048=2097152fc2:1024?2048=2097152fc3:2048?1024=2097152fc1: 1024*2048=2097152\\ fc2: 1024*2048=2097152\\ fc3: 2048*1024=2097152\\ fc1:1024?2048=2097152fc2:1024?2048=2097152fc3:2048?1024=2097152
    3?2097152=62914563*2097152=62914563?2097152=6291456 個參數

    總體而言,采用 GLU 變體可以減少參數數量,同時獲得更好的性能。其性能提升的原因在于,這些 GLU 變體引入了額外的乘性交互,從而提升了表達能力(與深而窄的神經網絡在良好訓練條件下優于淺而寬的神經網絡的原因相同)。


Mixture-of-Experts Replaces Single FeedForward Module

  • 除了將FFN模塊升級為 SwiGLU(如上文所述)之外,gpt-oss 還將單個FFN模塊替換為多個FFN模塊,每個 token 生成步驟僅使用一個子集。這種方法被稱為混合專家 (MoE),如下圖 8 所示。img

    因此, 用多個前饋模塊替換單個前饋模塊 (就像在 MoE 設置中所做的那樣)會顯著增加模型的總參數數量。然而,關鍵在于我們不會為每個 token 使用(“激活”)所有專家。相反,路由器只會為每個 token 選擇一小部分專家。

  • 由于每次僅有少數專家處于激活狀態,MoE 模塊常被稱為稀疏模塊,與始終使用完整參數集的致密模塊相對。借助 MoE 帶來的龐大參數總量,LLM 的容量得以提升,即在訓練中能吸收更多知識。然而,由于稀疏性在推理階段無需同時調用全部參數,因此推理仍然高效。

    (有趣的是:在大多數 MoE 模型中,專家權重占模型總參數的 90% 以上。)


Grouped Query Attention Replaces Multi-Head Attention

  • 正如我在之前的文章中提到的,分組查詢注意力(GQA)近年來已成為多頭注意力(MHA)更高效的計算和參數替代方案。

    在 MHA 中,每個 head 都有自己的一組鍵和值。GQA 通過將多個 head 分組以共享相同的鍵和值投影來減少內存使用量。

    例如,如圖 9 所示,如果有 2 個鍵值組和 4 個注意力頭,則注意力頭 1 和 2 可能共享一組鍵值對,而注意力頭 3 和 4 則共享另一組鍵值對。這種分組減少了鍵值對的計算總量,從而降低了內存使用量并提高了效率——根據消融研究,這不會顯著影響建模性能。img

    因此,GQA 的核心思想是通過在多個查詢頭之間共享鍵值頭來減少鍵值頭的數量。這 (1) 可以降低模型的參數數量,(2) 還可以減少推理過程中鍵值張量的內存帶寬占用,因為需要存儲和從鍵值緩存中檢索的鍵值更少。

    (如果您好奇 GQA 在代碼中的樣子,請參閱我的 GPT-2 到 Llama 3 轉換指南 , 其中有一個沒有 KV 緩存的版本,以及一個 KV 緩存變體 。)

  • 盡管 GQA 主要是為多頭注意力(MHA)提供計算效率上的權衡方案,但消融研究(例如原始 GQA 論文和 Llama 2 論文中的研究)表明,在大型語言模型的建模性能方面,它與標準 MHA 表現相當。


Sliding Window Attention

  • 滑動窗口注意力機制(如下圖 10 所示)最早在 LongFormer 論文(2020 年) 中提出 ,后來由 Mistral 推廣。有趣的是,GPT-OSS 每隔一層就應用一次滑動窗口注意力機制。你可以將其視為多頭注意力機制(在本例中為分組查詢注意力機制 (GQA))的一種變體,其中注意力上下文被限制在一個較小的窗口中,從而同時降低了內存使用量和計算成本。img

    具體而言,gpt-oss 在 GQA 層之間交替使用兩種機制:一種對完整上下文進行注意力計算,另一種采用僅限于 128 個標記的滑動窗口注意力。

    正如我在上一篇文章中所討論的 , Gemma 2 (2024) 采用了類似的 1:1 比例。 今年早些時候發布的 Gemma 3 則更進一步,改為 5:1 的比例,這意味著每五個滑動窗口(局部)注意力層對應一個全注意力層。

  • 根據 Gemma 的消融研究,滑動窗口注意力機制對建模性能的影響微乎其微,如下圖所示。需要注意的是,Gemma 2 中的窗口大小為 4096 個 token,而 Gemma 3 中將其縮減至 1024 個。在 GPT-OSS 中,窗口大小僅為 128 個 token,非常小。
    有趣的是, 官方公告文章指出,滑動窗口注意力顯然已經在 GPT-3 中使用:

    The models use alternating dense and locally banded sparse attention patterns, similar to GPT-3

    誰知道呢!我回去看了 GPT-3 的原始論文 ,那里確實提到了這一點:

    We use the same model and architecture as GPT-2 [ RWC+19 ], including the modified initialization, pre-normalization, and reversible tokenization described therein, with the exception that we use alternating dense and locally banded sparse attention patterns in the layers of the transformer, similar to the Sparse Transformer


RMSNorm Replaces LayerNorm

  • 最后,GPT-2 做出的最后一個小調整是用 RMSNorm (2019) 取代了 LayerNorm (2016) ,這是近年來的普遍趨勢。

    類似于用 Swish 和 SwiGLU 替換 GELU,RMSNorm 是這些較小但有效的效率改進之一。RMSNorm 與 LayerNorm 類似,其目的都是對層激活進行歸一化,如下圖所示。

    你或許還記得,不久之前 BatchNorm 還是完成這項任務的首選。此后它逐漸失寵,主要原因在于其均值與方差等批量統計量使高效并行化更困難,而且在小批量規模下表現不佳。img

    如上所示,LayerNorm 與 RMSNorm 都會將層的輸出縮放至合理范圍內。

    LayerNorm 減去平均值并除以標準差,使得層輸出具有零平均值和單位方差(方差為 1,標準差為 1)。

    RMSNorm 將輸入除以均方根。這不會強制要求均值為零且方差為單位,但均值和方差應處于合理范圍內:均值為 -1 到 1,方差為 0 到 1。在上 所示的特定示例中,均值為 0.77,方差為 0.41。

    LayerNorm 和 RMSNorm 都能穩定激活的尺度并改進優化過程,但在大規模 LLM 中常優先采用 RMSNorm,因為其計算成本更低。與 LayerNorm 不同,RMSNorm 不包含偏置(平移)項,并將昂貴的均值與方差計算簡化為一次均方根運算。這樣將跨特征的歸約次數從兩次減少為一次,降低了 GPU 上的通信開銷,提高了訓練效率。

    下圖顯示了其代碼img


The GPT-2 Legacy

  • 我仍然認為,在學習 LLM 時,GPT-2 是一個優秀的入門架構。它足夠簡單易懂,不會迷失在層層優化技巧中,但又足夠復雜,能夠讓你扎實掌握現代 Transformer 模型的工作原理。

    從 GPT-2 開始,您可以專注于基礎知識(注意力機制、位置嵌入、規范化和整體訓練流程),而不會被新架構中的額外功能和調整所淹沒。

    事實上,我認為在嘗試疊加較新的改動之前,先花時間學習乃至實現 GPT-2 是值得的。這樣不僅更容易理解那些改動,你也更可能更好地欣賞它們,因為你會更清楚這些改動試圖解決的局限或問題。

    例如,從我的 GPT-2 代碼開始,我最近從頭開始實現了 Qwen3 架構 ,它與 gpt-oss 非常相似,這將我們帶到下一個主題:將 gpt-oss 與更新的架構進行比較。


Comparing gpt-oss To A Recent Architecture (Qwen3)

  • 現在我們已經了解了從 GPT-2 到 GPT OSS 的演變過程,我們可以進行下一步,將 GPT OSS 與三個月前(2025 年 5 月)發布的較新的架構 Qwen3 進行比較。

    我之所以選擇 Qwen3,是因為截至撰寫本文時,它是頂級的開放權重模型之一。此外,Qwen3 的 MoE 模型之一,由于其可訓練參數的整體規模相對接近,幾乎可以直接與 GPT OSS 進行比較。

    下圖 13 將 gpt-oss-20b 與大小相當的 Qwen3 模型進行了比較。img

    我們可以看到,GPT-OSS 20B 和 Qwen3 30B-A3B 在架構組件上非常相似。除了尺寸之外,主要的區別在于 GPT-OSS 采用了滑動窗口注意力機制(如前文 1.6 節所述)(圖中未顯示),而 Qwen3 則沒有。

    在下面的小節中,我們將逐一介紹值得注意的細節。


Width Versus Depth

  • 如果我們仔細觀察這兩個模型,我們會發現 Qwen3 是一個更深的架構,它有 48 個變壓器塊而不是 24 個img

    另一方面,gpt-oss 是一個更寬的架構

    • embedding維度為 2880,而不是 2048
    • 專家(FFN)投影維度為 5760,而不是 768

    值得注意的是,gpt-oss 使用了兩倍的注意力頭,但這并不會直接增加模型的寬度。寬度由嵌入維度決定。

  • 在參數數量固定的情況下,這兩種方法是否各有優勢?一般而言,更深的模型更具靈活性,但由于梯度爆炸和梯度消失等導致的不穩定問題,訓練會更困難(RMSNorm 和殘差連接旨在緩解這些問題)。

    更寬的架構具有推理速度更快的優勢(具有更高的tokens/s吞吐量,tps),因為可以在更高的內存成本下實現更好的并行化。

    在模型性能方面,除了一項來自《Gemma 2》論文(表 9)的消融研究外,我所知并沒有在參數規模和數據集保持一致條件下的、可真正對等比較的結果。該研究發現,對于一個 90 億參數的架構,寬度更大的設計略優于深度更深的設計。在四個基準上,寬模型的平均得分為 52.0,深模型的平均得分為 50.8。


Few Large Versus Many Small Experts

  • 如上圖所示,還有件值得注意的是gpt-oss 的專家數量出奇地少(32 個而不是 128 個),并且每個 token 僅激活 4 個而不是 8 個專家。然而,每個專家的數量比 Qwen3 中的專家數量要大得多。

    這很有意思,因為最近的趨勢和發展表明,更多、更小的模型是有益的。在總參數大小不變的情況下,這種變化在 DeepSeekMoE 論文的圖 15 中得到了很好的說明。img

    需要注意,與 DeepSeek 的模型不同,gpt-oss 和 Qwen3 都沒有使用共享專家。

  • 客觀而言,gpt-oss 中專家數量偏少,可能是 20B 規模帶來的副作用。觀察下面的 120B 模式,他們確實在保持其他條件不變的情況下,增加了專家數量(以及 Transformer 塊數),如下方圖所示。img

    對于 20B 和 120B 模型如此相似這一現象,一個枯燥的解釋可能是 120B 模型是主要的研究重點。 創建較小模型的簡單方法是使其短一些(減少 Transformer 塊的數量)并減少專家數量,因為大部分參數都在那里。 然而,人們可能會猜測,他們是否先開始訓練 120B 模型,然后為了繼續預訓練而刪除了一些 Transformer 塊和專家(而不是從隨機初始權重開始)。

  • 無論如何,這是因為僅縮放這兩個(Transformer 模塊和專家數量)的情況相當罕見。例如,當查看多種尺寸的 Qwen3 MoE 模型(下圖)時,它們在更多方面彼此之間進行了更均衡的縮放。img


Attention Bias and Attention Sinks

  • 兩者都用了分組查詢注意力(GQA),但區別在于 gpt-oss 還在網絡里隔一層就用一次滑動窗口注意力來限制每層可看的上下文范圍,而 Qwen3 沒有這種“隔層做局部注意力”的做法。

    兩者都用了分組查詢注意力。不同之處在于,gpt-oss 在注意力權重里加入了可學習的偏置單元(在softmax前給每個頭附加偏置項),而這點在圖里也有體現img

    我從 GPT?2 之后也很少再看到這些偏置單元被使用,而且它們通常被認為是多余的。確實,我找到了一篇近期論文,數學上證明至少對鍵變換(k_proj)來說這是成立的。并且,實證結果也顯示帶不帶偏置單元的差別很小(見下方圖)

    img

    還有一個你可能注意到的細節:上圖代碼截圖里對 “sinks” 的定義。一般的模型里,attention sinks 指的是放在序列開頭、總是會被關注的特殊標記,用來穩定注意力,尤其在長上下文場景里很有用。也就是說,當上下文變得很長時,開頭這個特別被關注的標記仍然會被注意到,并且它可以學會存儲對整段序列都普遍有用的信息。(我認為這個做法最早來自這篇論文:Efficient Streaming Language Models with Attention Sinks。)

    在 gpt-oss 的實現里,attention sinks 并不是輸入序列里的真實標記;相反,它們是為每個注意力頭單獨學習的偏置 logits,被直接加到注意力分數上(見下圖)。這樣做的目的和前面提到的 attention sinks 一樣,但不需要改動分詞后的輸入。img


License

  • 最后,與 Qwen3 類似,gpt-oss 模型采用 Apache 2.0 開源許可證,這很棒(我自己的開源項目也傾向于使用相同的許可證)。這意味著這些模型可以不受限制地提煉成其他模型或用于商業產品。

  • 開放權重與開源 LLM。 多年來,這種區別一直備受爭議,但為了避免與本次發布及其相關構件產生混淆,有必要進行澄清。一些模型開發者僅發布模型權重和推理代碼(例如 Llama、Gemma、gpt-oss),而其他一些模型開發者(例如 OLMo)則將所有內容(包括訓練代碼、數據集和權重)以真正的開源形式發布。

  • 按照更嚴格的定義,gpt-oss 是一個開放權重模型(就像 Qwen3 一樣),因為它包含權重和推理代碼,但不包含訓練代碼或數據集。然而,業界對該術語的使用并不一致。

    我假設“gpt-oss”中的“oss”代表開源軟件 ;然而,令我驚喜的是,OpenAI 本身在其官方公告文章中明確將 gpt-oss 描述為開放權重模型 。


Other Interesting Tidbits

  • 雖然前面幾節描述了該架構自 GPT-2 以來的演變,并討論了它與 Qwen3(以及大多數其他近期模型)的相似之處,但還有一些值得注意的細節我尚未提及。這些要點與前面幾節的內容并不完全契合,但仍然值得一提。


Training Overview

  • 遺憾的是,關于訓練集大小和算法的信息并不多。我從模型卡報告 (1) 和公告帖 (2) 中整理了一些最有趣的信息,如下所示:

    The gpt-oss models were trained using our most advanced pre-training and post-training techniques […] (1)
    gpt-oss 模型采用我們最先進的預訓練和后訓練技術進行訓練 […] (1)

    […] required 2.1million H100-hours to complete, with gpt-oss-20b needing almost 10x fewer. (1)
    […] 需要 210 萬個 H100 小時才能完成,而 gpt-oss-20b 所需的時間幾乎減少了 10 倍。(1)

    […] including a supervised fine-tuning stage and a high-compute RL stage […] (2)
    […] 包括一個監督微調階段和一個高計算 RL 階段 […] (2)

    We trained the models on a mostly English, text-only dataset, with a focus on STEM, coding, and general knowledge. (2)
    我們在一個主要由英語和純文本組成的數據集上訓練了模型,重點關注 STEM、編碼和常識。(2)

    因此,我們知道 gpt-oss 模型是推理模型。210 萬個 H100 GPU 小時的訓練計算量大致相當于訓練規模約 5.6 倍的 DeepSeek V3 模型所需的 278.8 萬個 H800 GPU 小時。遺憾的是,目前還沒有關于 Qwen3 訓練時間的信息可以來對比。

    有意思的是,GPT?oss 的“訓練時長”估算同時包含了兩部分:用于指令跟隨的監督學習訓練,以及用于推理能力的強化學習訓練;而 DeepSeek V3 只是一個預訓練的基礎模型,后續的 DeepSeek R1 是在它之上單獨訓練出來的。


Reasoning Efforts

  • 如上一節所述,GPT-OSS 模型是推理模型。然而特別有趣的是,它們的訓練方式使得用戶可以通過推理時間縮放輕松控制推理程度。

    具體來說,gpt-oss 模型可以接收“Reasoning effort: low/medium/high”指令作為其系統提示的一部分,這直接影響響應長度和準確性,如圖下圖所示。img

    這種可調節的程度很有用,因為它能讓我們在成本、算力和準確率之間取得平衡。比如,當任務很簡單——像回答一個直接的知識問答或修正一個小拼寫錯誤——我們就可以跳過擴展式的推理。這樣既省時間和資源,也能避免不必要的長回復和冗長的推理過程。

    與 Qwen3 或 OLMo 不同,OpenAI 沒有在基于強化學習的推理訓練之前發布基礎模型,這多少有些遺憾。基礎模型對于研究推理方法的研究人員來說,是極其寶貴的起點(這也是我目前喜歡使用 Qwen3 Base 的原因之一)。我猜測,OpenAI 的決定更多是出于行業和生產用例的考慮,而非出于研究方面的考慮。

  • 需要說明兩點:

    早期的 Qwen3 原始模型也提供了一個開關,用來開啟或關閉“思考(推理)”模式:在分詞器里把 enable_thinking 設為 True/False,就會簡單地給輸入加上 標簽,從而關閉或啟用推理行為。

    不過,Qwen3 團隊在最近幾周更新了他們的模型,不再采用這種“混合式”的做法,而是轉向分別提供獨立的 Instruct / Thinking / Coder 版本。

    原因是混合模式與單個模型相比性能較低:

    After discussing with the community and reflecting on the matter, we have decided to abandon the hybrid thinking mode. We will now train the Instruct and Thinking models separately to achieve the best possible quality. Source


MXFP4 Optimization: A Small But Important Detail

  • 有個有趣的意外是:OpenAI 發布的 gpt?oss 模型里,針對 MoE 專家部分采用了 MXFP4 量化方案。

    量化格式曾經是一個小眾話題,主要與移動或嵌入式 AI 相關,但隨著模型規模的擴大,這種情況發生了變化。在這種情況下,MXFP4 優化允許模型在單 GPU 設備上運行。

    實際情況如下:

    1. 大型模型(例如 120B)可安裝在單個 80GB H100 或更新的 GPU 上。雖然不是消費級硬件,但租用一臺配備 1 個 H100 的機器比租用多臺 H100 的機器便宜得多。此外,我們不必擔心在 GPU 之間分配模型并增加通信開銷。AMD MI300X 顯卡從第一天起就支持,真是太好了!
    2. 較小的 20B 型號甚至可以裝入 16 GB 的 VRAM;需要注意的是,它必須是 RTX 50 系列 GPU 或更新版本才能支持 MXFP4。
  • 請注意,這些模型也可以在不支持 MXFP4 的舊硬件上運行,因此會消耗更多 RAM。如果沒有 MXFP4 優化,bfloat16 模型的內存消耗會更大,例如 48 GB (gpt-oss-20b) 和 240 GB (gpt-oss-120b)。

    順便說一句,我可以在 Mac Mini 上使用 ollama 輕松運行 gpt-oss-20b 模型。它占用大約 13.5 GB 內存,這確實很合理。


Benchmarks

  • 這些模型對于獨立基準測試來說仍然有點太新了。查看 LM Arena 排行榜后 ,我發現 gpt-oss 尚未上榜。因此,根據 LM Arena 用戶的反饋,Qwen3-Instruct 目前仍然是最高權重的模型。img

    查看 gpt-oss 公告帖中提供的推理基準,我們可以看到 gpt-ossmodels 與 OpenAI 的專有模型以及 Qwen3 相當。img

    不過,需要加上一點前提:gpt-oss-120b 的規模幾乎只有 Qwen3 A235B-A22B-Thinking-2507 的一半,而且它可以在單塊 GPU 上運行。

    基準測試性能并不總是反映實際可用性。在過去幾天有限的使用中,我發現 gpt-oss 相當強大。不過,正如其他人所觀察到的,它似乎確實有較高的幻覺傾向(這一點在其模型卡中也提到了)。

    這可能源于其訓練側重于數學、謎題和代碼等推理任務,這可能導致一些“常識遺忘”。不過,由于 gpt-oss 在設計時就考慮到了工具的使用,因此這種限制隨著時間的推移可能會逐漸減弱。開源 LLM 中的工具集成仍處于早期階段,但隨著其逐漸成熟,我預計我們會越來越多地讓模型在回答事實或基于知識的查詢時參考外部資源(例如搜索引擎)。

    如果發生這種情況,那么優先考慮推理能力而非記憶力或許是明智之舉。這很像人類在學校(或生活中)的學習,解決問題的能力通常比記憶事實更重要。


gpt-oss and GPT-5

  • OpenAI 度過了忙碌的一周,在 gpt-oss 發布后不久,就發布了期待已久的 GPT-5 模型。GPT-5 的發布非常引人注目。如果說有什么要說的,那就是他們的開源模型在基準性能方面的表現,與其最佳產品相比,確實非常出色,這讓我感到非常驚訝。img

    總而言之,盡管有些人認為該版本被過度炒作,但我很高興我們擁有了一套真正強大的開放權重模型,它們與最好的專有模型并無太大差距。當然,基準測試通常不能準確反映實際使用情況,而且由于使用情況有限,現在下結論還為時過早。但我認為,對于喜歡使用開放權重和本地(或私人托管)模型的人來說,這是一個好時機。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92658.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一周學會Matplotlib3 Python 數據可視化-線條 (Line)

鋒哥原創的Matplotlib3 Python數據可視化視頻教程: https://www.bilibili.com/video/BV1UhtuzcEqX/ 課程介紹 本課程講解利用python進行數據可視化 科研繪圖-Matplotlib,學習Matplotlib圖形參數基本設置,繪圖參數及主要函數,以及…

09-netty基礎-手寫rpc-原理-01

netty系列文章: 01-netty基礎-socket02-netty基礎-java四種IO模型03-netty基礎-多路復用select、poll、epoll04-netty基礎-Reactor三種模型05-netty基礎-ByteBuf數據結構06-netty基礎-編碼解碼07-netty基礎-自定義編解碼器08-netty基礎-自定義序列化和反序列化09-n…

Windows 小知識:Winodws 文件與文件夾名不區分大小寫

專欄導航 上一篇:Windows 編程輔助技能:速覽定義 回到目錄 下一篇:無 本節前言 本節來分享一個小的知識點,具體地,我們在下面來細說。 一. Windows 系統的文件與文件夾的名字,不區分大小寫 請大家…

嵌套-列表存儲字典,字典存儲列表,字典存儲字典

字典存儲列表aliens []for alien in range(10):new_alien {"id": alien, "color": "green", "speed": "slow" , "points": 20}aliens.append(new_alien)for alien in aliens[:5]:print(alien) print("...&…

個人筆記Mybatis2

4.配置解析4.1核心配置文件mybatis-config.xmlMyBatis配置包含對MyBatis行為方式有顯著影響的設置和屬性在 MyBatis 中有兩種類型的事務管理器 (也就是 type"[JDBC|MANAGED]”configuration(配置) properties(屬性) settings(設置) typeAliases(類型別名) typeHandlers(類…

使用 Maxwell 和 RabbitMQ 監控 Mysql Flowable 表變更

為什么需要監控數據庫變化?當 Flowable 表中的數據發生變化(例如插入新任務、更新狀態或刪除記錄),我們可能需要觸發其他操作,比如通知用戶、更新儀表盤或啟動新流程。Maxwell 可以讀取 MySQL 的二進制日志&#xff08…

MySQL面試題及詳細答案 155道(041-060)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

mysql_mcp_server_pro源碼部署及啟動報錯新手指南:讓智能體長出手來直接獲取到最底層的數據

文章目錄 源碼部署 1.克隆項目地址 2.創建虛擬環境 3.激活環境 4.進入項目目錄下 5.安裝依賴 6.進入到src目錄 7.在當前目錄下,新建一個.env文件 8.配置數據庫信息 9.啟動項目 10.啟動權限管理啟動項目 啟動報錯了: 問題現象與直接原因 解決方案與操作步驟 方案1:允許忽略未定…

jupyter服務器創建賬戶加映射對外賬戶地址

文章目錄一、創建test1-test10用戶(跳過已存在的test3)二、檢查必要組件是否安裝解決方法:用緊湊格式避免換行解析錯誤核心修復說明:使用方法:以下是根據需求生成的命令、檢查腳本及啟動腳本,按步驟執行即可…

DDR中的POD與ODT

一、POD(Pseudo Open Drain)技術1. 定義與工作原理POD(偽開漏) 是DDR4/LPDDR4引入的電壓標準與驅動架構,替代傳統的SSTL(Stub Series Terminated Logic)。其核心特征是將上拉電源從VDDQ改為VTT&…

企業架構之導論(1)

一、企業架構是什么 企業架構是對企業業務、數據、應用、技術四大核心領域及其相互關系的系統化描述與設計框架。它像一張“城市藍圖”,確保業務戰略能精準映射到IT落地: 本質:是連接業務戰略(做什么)與技術執行(怎么做)的結構化方法論。 核心組件: 業務架構:定義業…

實戰:在已有K8S集群如何新增和刪除Node節點

本篇文章將分享一下如何在已有集群添加新節點和刪除現有節點1 新增節點到K8S集群新增節點可以分為準備節點、配置節點和將其加入集群三步。1.1 準備新節點準備一個相同操作系統的主機作為新節點。參考以前部署的文章:實戰部署k8s 1.28版本集群,跟著操作到…

C++ 黑馬 內存分配模型

一, 內存分配模型內存總共有四個分區1 代碼區 主要用來存儲二進制代碼,由操作系統進行管理2 棧區 由編譯器自己進行釋放和分配,例如函數的傳遞的參數,局部變量,const修飾的局部常量等等....3 堆區 由程序員自己分配和釋放&am…

【華為倉頡編程語言】運行第一個倉頡程序

歡迎來到倉頡編程語言的第一個實戰課程。 上節課我們成功安裝了倉頡工具鏈,今天讓我們一起編寫并運行第一個倉頡程序。相信很多同學都還記得學習第一門編程語言時寫的"Hello World"程序,那種看到程序成功運行的激動心情。今天,我們…

利用DeepSeek改寫并增強測試Duckdb和sqlite的不同插入方法性能

在前文基礎上,好奇作為事務型數據庫的SQLite表現怎么樣,讓DeepSeek來幫忙。 提示詞 請仿照附件編寫用python插入sqlite數據的測試函數,如果sqlite3沒有對應方法就省略 import sqlite3 import pandas as pd import timemethods [字符串拼接, …

進程管理塊(PCB):操作系統進程管理的核心數據結構

進程管理塊(PCB):操作系統進程管理的核心數據結構在現代操作系統中,進程管理塊(Process Control Block, PCB) 是內核用來描述、管理和控制進程生命周期的最核心、最關鍵的數據結構。它就像是一個進程的“身…

線程的sleep、wait、join、yield如何使用?

sleep:讓線程睡眠,期間會出讓cpu,在同步代碼塊中,不會釋放鎖 wait(必須先獲得對應的鎖才能調用):讓線程進 入等待狀態,釋放當前線程持有的鎖資源線程只有在notify 或者notifyAll方法調用后才會被喚醒,然后去爭奪鎖. join: 線程之間協同方式,使…

2025年服裝智能跟單系統TOP3推薦榜單

TOP1領軍者首選推薦:金蝶服裝系統【★★★★★】 在服裝智能跟單系統的領域,金蝶服裝系統憑借其強大的功能和卓越的性能脫穎而出,成為眾多企業的首選。盡管本文標題提及的是另一份榜單,但值得一提的是,金蝶系統若參與評…

基于FFmpeg的B站視頻下載處理

起因是這樣的一天,本人在B站客戶端緩存了一個視頻,用于學習參考等學術交流,但是視頻和音頻卻是分開且通過Win Hex查看發現文件頭含有9個“30”,想到一個個手動刪字節不如讓程序取代,便有了本文章這一篇文章發布之前&am…

【Vue Router】路由模式、懶加載、守衛、權限、緩存

前言 Vue Router 是 Vue 生態中處理頁面跳轉的核心工具,它解決了單頁應用中 URL 管理、組件切換、狀態維護等關鍵問題,同時提供了豐富的功能(如動態路由、嵌套路由、路由守衛)。除了經常用到的路由配置以外,我們還需了…