Qwen3技術報告解讀

https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf

節前放模型,大晚上的發技術報告。通義,真有你的~

文章目錄

  • 預訓練
  • 后訓練
    • Long-CoT Cold Start
    • Reasoning RL
    • Thinking Mode Fusion
    • General RL
    • Strong-to-Weak Distillation
  • 模型結構

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

先看下摘要里提到的幾個亮點:

  • 包括Dense和Moe模型,參數量橫跨0.6B到235B。
    Dense包括:Qwen3-32B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B 和 Qwen3-0.6B。
    Moe包括:

    • Qwen3-235B-A22B,235B 總參數和 22B 激活參數的大型MoE模型。
    • Qwen3-30B-A3B,30B 總參數和 3B 激活參數的小型MoE模型。
  • 把thinking和non-thinking模式集成在一個模型中。并且,只需要在提示詞中就能進行兩個模式的切換。

  • 多語言支持,從29種到119種。

在Qwen3發布的當天,筆者就趕緊在自己的任務上嘗試了新發布的模型,就我的任務而言相比Qwen-2.5來說還是有比較明顯的提升的。終于等到技術報告發布了,趕緊來看看~

目錄:

  • 預訓練
  • 后訓練
    • Long-CoT Cold Start
    • Reasoning RL
    • Thinking Mode Fusion
    • General RL
  • 模型結構

預訓練

在更大規模的數據上進行了預訓練,語言擴充到了119種,token數達到了36萬億!Qwen2.5則有18萬億個。

怎么擴充到這么大規模的預訓練數據?

  • 多模態的方案。使用微調后的Qwen2.5-VL提取PDF中的文本。
  • 合成數據。使用Qwen2.5-Math和Qwen2.5-Coder合成數學、代碼領域的數據。

為了提高數據的質量和多樣性,開發了一個多語言的數據標注系統。使用該系統對訓練數據集進行了詳細的標注,覆蓋了多個維度,包括教育價值、領域、主題和安全性等。這些標注信息會被用于過濾和組合數據。

預訓練分成三個階段:

  1. General Stage,S1。
    模型在 30 萬億個 token 上進行預訓練,上下文長度為 4K token。為模型提供了基本的語言技能和通用知識。
  2. Reasoning Stage,S2。
    通過增加知識密集型數據(如 STEM、編程和推理任務)的比例來增強模型的推理能力,隨后模型又在額外的 5 萬億個 token 上進行了預訓練。
  3. Long Context Stage,最后階段。
    使用高質量的長上下文數據將上下文長度擴展到 32K token,確保模型能夠有效地處理更長的輸入。這一階段的數據種,75%的樣本長度在16k-32k,25%在4k-16k。

后訓練

四階段的后訓練流程,以對齊人類偏好和下游任務。

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

  1. Long-CoT Cold Start,長思維鏈冷啟動。
    使用多樣的的長思維鏈數據進行微調,涵蓋了數學、代碼、邏輯推理和 STEM 問題等多種任務和領域,在為模型配備基本的推理能力。
  2. 長思維鏈強化學習。
    大規模強化學習,利用基于規則的獎勵來增強模型的探索和鉆研能力。
  3. 思維模式融合。
    在一份包括長思維鏈數據和常用的指令微調數據的組合數據上對模型進行微調,將非思考模式整合到思考模型中。通過一個token(/no_think)來進行模式的切換。
  4. 通用強化學習。
    在包括指令遵循、格式遵循和 Agent 能力等在內的 20 多個通用領域的任務上應用了強化學習,以進一步增強模型的通用能力并糾正不良行為。

另外,可以看到,Qwen3-235B-A22B和Qwen3-32B是按照上面四階段的后訓練流程訓的,其他模型則是在這兩個的基礎上蒸餾出來的。看看每個階段的一些重點。

Long-CoT Cold Start

使用的數據,包括數學、代碼、邏輯推理和STEM,數據集里的每個問答樣本都有參考答案、代碼樣本都配備測試樣例。

數據怎么怎么構造的?嚴格的兩階段的過濾過程:query過濾和response過濾。

  • query過濾。

    • 使用Qwen2.5-72B-Instruct識別并過濾那些難以驗證的query,例如包含多個子問題或通用文本生成的query。
    • 此外,還過濾了Qwen2.5-72B-Instruct無需cot就能正確回答的問題,以確保數據集中只包含需要深度推理的問題。
    • 并且使用Qwen2.5-72B-Instruct標注了每個query的領域,以確保數據領域的均衡。
  • response過濾。

    • query過濾后,使用QwQ-32B為每個query生成多個候選響應。
    • 對于QwQ-32B無法生成正確解決方案的查詢,由人工標注員評估響應的準確性。進一步的篩選標準包括移除最終答案錯誤、重復過多、明顯猜測、思考與總結內容不一致、語言混用或風格突變、以及可能與驗證集項目過于相似的響應。

Reasoning RL

這一階段的數據必須滿足的要求:

  • 在上一階段沒有使用過。
  • 對于冷啟動模型是可以學習的。
  • 要有挑戰性。
  • 覆蓋廣泛的子領域。

最終收集了3995(才這么點數據?🤔)個query-verfier pair進行GRPO訓練。

在訓練策略上,通過控制模型的熵(即模型輸出的不確定性)來平衡探索和利用。熵的增加或保持穩定對于維持穩定的訓練過程至關重要。

Thinking Mode Fusion

這一階段的目標是實現對推理行為的管理和控制,即think和no-think的切換,通過SFT實現,并且設計了chat template融合兩種模式。

SFT數據怎么構建的?

為了確保上一步得到的模型的性能不被SFT影響,thinking的數據是使用第一階段的query在第二階段的模型上做拒絕采樣得到的。non-thinking的數據則是精心篩選(具體怎么做的沒有細說)的涵蓋大量任務的數據,例如代碼、數學、指令跟隨、多語言任務、創意寫作、問答和角色扮演等。對于non-thinking的數據,通過自動生成的checklist來評估響應的質量。

兩類數據的模板:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

默認情況下是開啟think模式的,為此還在訓練數據中添加了一些不包含/think的帶思考過程的樣本。

此外,還通過訓練實現了模型生成時自動進行預算控制(Thinking Budget)。一種具體的情況——不完整的思考過程下也能正常回答問題。在推理時,用戶可以指定一個budget,當模型的思考過程達到了指定的閾值時,則手動停止思考過程,并插入停止思考的指令,讓模型直接開始回答問題。

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

General RL

重點在獎勵的設計上,覆蓋了20種不同的任務。一共有三種類型的獎勵:

  • Rule-based Reward。
  • Model-based Reward with Reference Answer。用Qwen2.5-72B-Instruct對模型的回答和參考答案進行打分。
  • Model-based Reward without Reference Answer。對于沒有標準答案的樣本,利用偏好數據訓練了一個打分模型對模型回答打分作為標量獎勵。

特別的,這一階段訓練了模型的Agent的能力,在RL的Rollout時,允許模型和外部環境進行多輪的交互。

Strong-to-Weak Distillation

前面的這四個階段使用來訓Qwen3-235B-A22B和Qwen3-32B的,其余的小模型都是在這個階段蒸餾得到的。蒸餾時有兩個階段:

  1. Off-policy Distillation。
    使用強模型(Qwen3-32B或Qwen3-235B-A22B)在思考模式和非思考模式下的生成,將這些輸出作為弱模型的訓練目標。

  2. On-policy Distillation。

    在思考和非思考模式下,從弱模型中采樣,通過最小化弱模型和強模型輸出之間的KL散度對弱模型進行微調。

感覺論文種講的不是很清楚。

模型結構

Dense模型與Qwen2.5的模型結構類似,包括使用了GQA、SwiGLU、RoPE、RMSNorm和pre-normalization。不同之處:去除了QKV-bias、引入了QK-Norm。MoE模型的基礎架構和Qwen3 Dense是一樣的。

Dense和MoE的模型架構如下所示:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

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

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

相關文章

【網絡編程】十、詳解 UDP 協議

文章目錄 Ⅰ. 傳輸層概述1、進程之間的通信2、再談端口號端口號的引出五元組標識一個通信端口號范圍劃分常見的知名端口號查看知名端口號協議號 VS 端口號 3、兩個問題一個端口號是否可以被多個進程綁定?一個進程是否可以綁定多個端口號? 4、部分常見指令…

實現RTSP低延遲播放器,挑戰與解決方案

隨著低延遲直播需求的快速增長,RTSP(Real-Time Streaming Protocol)播放器逐漸成為實時視頻流傳輸中的核心技術之一。與WebRTC(Web Real-Time Communication)相比,RTSP在實時性和網絡延遲方面面臨諸多挑戰&…

【springcloud學習(dalston.sr1)】Eureka單個服務端的搭建(含源代碼)(三)

該系列項目整體介紹及源代碼請參照前面寫的一篇文章【springcloud學習(dalston.sr1)】項目整體介紹(含源代碼)(一) springcloud學習(dalston.sr1)系統文章匯總如下: 【springcloud學習(dalston…

GPU與NPU異構計算任務劃分算法研究:基于強化學習的Transformer負載均衡實踐

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,按量計費,靈活彈性,頂級配置,學生專屬優惠。 引言 在邊緣計算與AI推理場景中,GPU-NPU異構計算架構已成為突破算力瓶頸的關鍵技…

探索C語言中的二叉樹:原理、實現與應用

一、引言 二叉樹作為一種重要的數據結構,在計算機科學領域有著廣泛的應用,無論是在操作系統的文件系統管理,還是在數據庫的索引構建中,都能看到它的身影。在C語言中,我們可以利用指針靈活地構建和操作二叉樹。接下來&…

使用libUSB-win32的簡單讀寫例程參考

USB上位機程序的編寫,函數的調用過程. 調用 void usb_init(void); 進行初始化 調用usb_find_busses、usb_find_devices和usb_get_busses這三個函數,獲得已找到的USB總線序列;然后通過鏈表遍歷所有的USB設備,根據已知的要打開USB設…

vue注冊用戶使用v-model實現數據雙向綁定

定義數據模型 Login.vue //定義數據模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 實現數據模型的key與注冊表單中的元素之間的雙向綁定 <!-- 注冊表單 --><el-form ref"form" size"large" autocompl…

【Arthas實戰】常見使用場景與命令分享

簡介: Arthas是一款Java診斷工具&#xff0c;適用于多種場景&#xff0c;如接口響應變慢、CPU占用過高、熱更新需求等。其核心命令包括實時監控面板&#xff08;dashboard&#xff09;、線程狀態查看&#xff08;thread&#xff09;、方法調用鏈路追蹤&#xff08;trace&#x…

Jenkins 最佳實踐

1. 在Jenkins中避免調度過載 過載Jenkins以同時運行多個作業可能導致資源競爭、構建速度變慢和系統性能問題。分配作業啟動時間可以防止瓶頸&#xff0c;并確保更順暢的執行。如何實現&#xff1f; 在Cron表達式中使用H&#xff1a;引入抖動&#xff08;jitter&#xff09;&a…

pytest框架 - 第二集 allure報告

一、斷言assert 二、Pytest 結合 allure-pytest 插件生成美觀的 Allure 報告 (1) 安裝 allure 環境 安裝 allure-pytest 插件&#xff1a;pip install allure-pytest在 github 下載 allure 報告文件 地址&#xff1a;Releases allure-framework/allure2 GitHub下載&#x…

人工智能時代:解鎖職業新身份,從“認證師”到“工程師”的進階之路

在人工智能技術浪潮席卷全球的今天,技術的飛速迭代正在重塑職業版圖。從算法優化到倫理決策,從系統測試到應用開發,AI技術不再只是程序員的專屬領域,而是成為各行各業從業者必須掌握的“生存技能”。當企業爭相布局AI賽道,個人如何在這場變革中搶占先機?答案或許藏在兩個…

【帶文檔】網上點餐系統 springboot + vue 全棧項目實戰(源碼+數據庫+萬字說明文檔)

&#x1f4cc; 一、項目概括 本系統共包含三個角色&#xff1a; 管理員&#xff1a;系統運營管理者 用戶&#xff1a;點餐消費用戶 美食店&#xff1a;上傳菜品與處理訂單的店鋪賬號 通過對這三類角色的權限與業務分工設計&#xff0c;系統實現了點餐流程的全鏈路數字化&a…

window nvidia-smi命令 Failed to initialize NVML: Unknown Error

如果驅動目錄下的可以執行&#xff0c;那可能版本原因 "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"復制"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"替換 C:\Windows\System32\nvidia-smi.exe 或者 把C:\Windows\System3…

接觸感知 鉗位電路分析

以下是NG板接觸感知電路的原理圖。兩極分別為P3和P4S&#xff0c;電壓值P4S < P3。 電路結構分兩部分&#xff0c;第一部分對輸入電壓進行分壓鉗位。后級電路使用LM113比較器芯片進行電壓比較&#xff0c;輸出ST接觸感知信號。 鉗位電路輸出特性分析 輸出電壓變化趨勢&a…

70、微服務保姆教程(十三)Docker容器詳細講義

一、關于Docker 1.1為什么要用docker? 隨著開發的項目越來越復雜,軟件越來越多,服務器越來越多,我們在開發和部署的時候會遇到很多問題,比如: 1.不同的應用程序可能會有不同的應用環境,比如Java開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都…

Python 中的 typing.ClassVar 詳解

一、ClassVar 的定義和基本用途 ClassVar 是 typing 模塊中提供的一種特殊類型&#xff0c;用于在類型注解中標記類變量&#xff08;靜態變量&#xff09;。根據官方文檔&#xff0c;使用 ClassVar[…] 注釋的屬性表示該屬性只在類層面使用&#xff0c;不應在實例上賦值 例如&…

架構與UML4+1視圖

簡單對比分析 架構41視圖 架構41視圖是由Philippe Kruchten提出的&#xff0c;用于描述軟件系統的架構。它包括以下五個視圖&#xff1a; 邏輯視圖&#xff1a;描述系統的功能需求&#xff0c;展示系統的靜態結構&#xff0c;通常使用類圖、對象圖等。開發視圖&#xff1a;…

Redis 八股

目錄 數據類型 字符串&#xff1a; List&#xff1a; HASH&#xff1a; Set&#xff1a; Zset&#xff1a; BitMap&#xff1a;&#xff08;這個及以下是后來新增的數據結構&#xff09; HyperLogLog&#xff1a; GEO&#xff1a; Stream&#xff1a; 主要數據結構 …

基于協同過濾的文學推薦系統設計【源碼+文檔+部署】

基于協同過濾的文學推薦系統設計 摘要 隨著信息技術的飛速發展和文學閱讀需求的日益多樣化&#xff0c;構建一個高效、精準的文學推薦系統變得尤為重要。本文采用Spring Boot框架&#xff0c;結合協同過濾算法&#xff0c;設計并實現了一個基于用戶借閱行為和社交論壇互動的文學…

鴻蒙電腦:五年鑄劍開新篇,國產操作系統新引擎

出品 | 何璽 排版 | 葉媛 前不久&#xff0c;璽哥發布的《鴻蒙電腦&#xff0c;刺向壟斷的利刃&#xff0c;將重塑全球PC市場格局》發布后&#xff0c;獲得了讀者朋友的積極反饋&#xff0c;不少都期望鴻蒙電腦早日發布。 如今&#xff0c;它真來了&#xff01; 5月8日&…