2026年初,有一群清華的研究者算了一筆賬,算完之後他們自己都愣住了。
如果想復現SmolLM3-3B
這個開源模型的訓練過程,需要花多少錢?答案是71.9萬美元。如果想復現Llama-3.2-3B
呢?答案是150萬美元。這些數字聽起來像是某個大公司的年度預算,但事實上,這只是"從零開始訓練一個30億參數模型"這一件事的成本。
這就是問題所在。
開源社區一直標榜自己"開放",模型權重可以下載,訓練代碼可以查看,數據配方可以復現。但當復現一次訓練需要花掉一套房子的首付時,這種"開放"對絕大多數實驗室來說,和從來沒開放過沒有區別。研究者們把這類實驗室稱為窮實驗室
——不是說他們窮,而是說他們沒有數據中心級別的算力預算,卻依然想搞清楚大模型訓練背後的科學問題。
於是,這篇論文的作者們決定做一件聽起來有點瘋狂的事:他們要用遊戲顯卡,也就是那種普通人在電商網站上就能買到的RTX 5090
,訓練一個20億參數、消耗1.4萬億token的語言模型,總花費控制在6900美元以內。這個數字,甚至不到一台高端伺服器一個月的租金。
最終,他們做到了。而且訓出來的模型,性能追平了阿里的Qwen2.5-1.5B
,超過了Qwen2-1.5B
,超過了谷歌的Gemma-2-2B
。
這篇論文要講的,就是他們怎麼做到的。
為什麼大模型訓練這麼貴
在講具體方法之前,得先弄明白一件事:大模型訓練的錢到底花在哪兒了。
答案很簡單,也很粗暴:算力。訓練一個大模型,本質上是讓GPU反覆做矩陣乘法,這個過程需要的浮點運算次數(FLOPs*:浮點運算次數,衡量計算量的基本單位,可以理解為"電腦做了多少次加減乘除")和模型參數量、訓練數據量成正比。參數越多、數據越多,需要的運算次數就越多,需要的GPU時間就越長,賬單就越貴。
行業里通常的做法是租用數據中心級別的GPU,比如英偉達
的H200
或者H100。這些顯卡確實性能強悍,但價格也確實感人:H200的市場租金大約是每小時4美元,而且這還只是賬面價格,實際使用中還要考慮網路、儲存等各種附加成本。
這篇論文的作者們盯上了一個價格窪地:RTX 5090,一張定位遊戲發燒友的消費級顯卡。
這裡要先解釋一個概念。
TFLOPS
*:每秒萬億次浮點運算,衡量GPU算力的單位,數字越大代表單位時間能做的計算越多。
論文裡列了一張對比表,看完這張表你會理解他們為什麼這麼選擇。H200在BF16精度下的算力是989.5 TFLOPS,單價每小時4美元;而RTX 5090隻有209.5 TFLOPS,但單價只要0.31美元每小時。算一筆性價比賬:H200每美元能買到0.89 EFLOP的BF16算力,RTX 5090能買到2.43 EFLOP,是H200的2.7倍。
這就好比你要搬一大堆磚,有兩個選擇。一個是雇一個大力士,一天工錢800塊,一小時能搬200塊磚。另一個是雇十個普通工人,一天工錢一共只要80塊,加起來一小時能搬500塊磚,雖然每個人搬得慢,力氣也沒那麼大,但算總賬,花更少的錢搬了更多的磚。如果只看"誰力氣大",你肯定選大力士;但如果你算的是每一塊錢能搬多少磚,答案完全不同。
當然,RTX 5090不是沒有代價的。它內存只有32GB,遠小於H200的141GB,而且沒有NVLink(一種GPU之間高速互聯的技術),這意味著多張顯卡協同工作時,通信效率會大打折扣。這些限制會帶來一系列連鎖的工程難題,後面會詳細講。
但作者們通過一系列硬體層面的魔改,硬是把這些限制的影響壓到了最低。他們修改了英偉達的開源驅動,繞過了消費級顯卡上被人為禁用的PCIe P2P通信功能(一種讓GPU之間直接傳輸數據、不用繞道CPU內存的技術),把單向頻寬從31.5 GB/s提升到56 GB/s。他們甚至研究了如何在消費級顯卡上啟用GPUDirect RDMA(一種讓不同伺服器上的GPU直接通過網卡交換數據的技術),把8卡集群的通信頻寬從8.87 GB/s提升到19.93 GB/s。
這些操作聽起來很硬核,但本質上是在做同一件事:把一堆"性價比高但天生有短板"的硬體,通過精細的工程手段,逼出接近專業設備的表現。最終,他們在這套RTX 5090集群上跑出了73%的等效MFU(模型算力利用率,衡量實際算力發揮了理論峰值的百分之多少),這個數字對於消費級硬體來說相當亮眼。
如果不做這些底層優化會怎樣?答案很直接:通信效率會成為瓶頸,多卡訓練的加速效果會大打折扣,最終省下來的硬體成本會被浪費的時間重新吃掉。
省錢的第二招:讓每一次計算都更"輕"
選對了便宜的硬體只是第一步,第二步是讓每一次計算本身變得更省錢。這裡用到的核心武器叫做FP8混合精度訓練。
FP8*:一種8位浮點數格式,用更少的比特位表示一個數字,計算速度更快、顯存占用更少,但精度也更低。
一般訓練大模型用的是BF16(16位浮點數),精度夠用,訓練穩定。但FP8隻用一半的位數儲存數字,理論上可以讓計算速度翻倍,前提是不能讓精度損失太大,導致模型學不好。
這就像用簡筆畫代替精細素描來畫一張臉。簡筆畫畫得快,但如果畫得太粗糙,可能連眼睛鼻子的位置都對不上。FP8訓練的挑戰正在於此:怎麼在"畫得快"和"畫得准"之間找到平衡。
作者們借鑑了DeepSeek-V3提出的分塊量化方案,把一整塊權重矩陣切成128×128的小塊,每個小塊單獨計算一個縮放係數,而不是整個矩陣共用一個係數。這樣即便矩陣里存在個別數值特別大或特別小的"異常點",也不會拖累整體的精度表現。
實驗數據顯示,這套FP8方案在五個不同規模的模型(從1.7億到17億參數)上進行測試,驗證損失(衡量模型預測準確度的指標,數值越低越好)只比BF16高出0.0031到0.0039,幾乎可以忽略不計。但換來的是什麼?在17億參數規模上,訓練吞吐量提升了1.36倍。綜合精度損失和速度提升,最終淨收益是1.34倍,相當於在同等模型質量下節省了25.2%的GPU時間。
如果不用FP8而是老老實實用BF16會怎樣?訓練時間會拉長三成左右,對於一個總預算只有6900美元的項目來說,這三成的差距可能就是"能不能追上Qwen2.5"和"只能勉強超過Qwen2"之間的分水嶺。
省錢的第三招:讓每一步優化都用在刀刃上
如果說前兩招是在"硬體"和"計算精度"上省錢,第三招則是在"優化算法"本身上摳效率,這一部分的核心工具叫MuonH(Muon加超球體約束)。
要理解MuonH,得先說說Muon優化器。
優化器*:訓練神經網路時用來更新參數的算法,決定了每一步參數往哪個方向調整、調整多大幅度。
傳統的AdamW優化器是目前最流行的選擇,但Muon是最近幾年冒出來的一個新選擇,在某些場景下表現更好。而MuonH,是在Muon基礎上加了一個約束:讓某些權重矩陣在每次更新後都被投影回一個固定半徑的球面上。
這個"固定半徑球面"的設計到底有什麼用?論文裡給出了一個很精妙的解釋角度,叫做有效學習率。
有效學習率*:不是優化器配置里設定的那個學習率數字,而是參數更新幅度相對於參數本身大小的比例,反映了"這一步實際改變了多少"。
普通Muon優化器的問題在於,權重矩陣的大小(數學上叫"範數")會隨著訓練不斷變化,更新量的大小也會變化,兩者一除,得到的有效學習率其實是"隱式"的,很難精確控制,它會隨著訓練自然演化,往往在訓練早期迅速衰減到接近於零。而MuonH通過把權重矩陣固定在一個球面上,讓有效學習率變成了一個可以直接設定的"顯式"量。
這就像開車。普通Muon是那種老式手動擋汽車,你踩油門的力度和車速的關係隨著路況、載重不斷變化,你很難精確控制"現在到底跑多快"。而MuonH相當於裝了定速巡航,你設定"以80碼行駛",車子就真的穩定在80碼,不受外部因素干擾。
論文裡做了一個很直接的對比實驗:在一個1.7億參數的模型上,同時跑三組訓練。第一組是MuonH,遵循預先設定好的線性衰減有效學習率曲線;第二組是普通Muon,用同樣的基礎學習率調度,但不做任何補償;第三組是"對齊有效學習率"的Muon,人為動態調整學習率係數,讓它的有效學習率軌跡和MuonH完全一致。
結果很有意思。普通Muon組的有效學習率在訓練早期迅速衰減,幾乎在訓練還沒過半時就接近於零了,這導致它前期收斂得比另外兩組都快,但後期動力不足,最終驗證損失停在3.073。而MuonH和"對齊"組都遵循更平緩的線性衰減,前期看起來慢,但後勁十足,最終損失分別是3.029和3.030,明顯更低。
這個實驗說明了一件重要的事:優化器的效果好壞,很大程度上取決於它的有效學習率是怎麼隨時間變化的,而不是取決於優化器本身用了什麼花哨的數學技巧。如果不做這層分析,可能會誤以為是"MuonH這個算法天生更強",但實際上核心因素是"有效學習率的調度方式更合理"。
在完整的規模對比實驗中(跨越5個不同大小的模型),MuonH相比調優過的Muon基線,實現了1.19倍的計算等效乘數,也就是說在達到同樣驗證損失的情況下,MuonH能省下16.1%的理論計算量。這在2000億token、20億參數的規模上,意味著少燒大約1600億次浮點運算——不是一個小數目。
省錢的第四招:讓數據出場的順序也講究起來
前面三招都是在"怎麼算得更快、更省"上做文章,第四招則完全不同,它討論的是"數據應該按什麼順序餵給模型",這個方法叫課程模型平均(Curriculum Model Averaging,簡稱CMA)。
這個想法的起點是一個很樸素的觀察:很多開源數據集會給每條樣本打一個質量分數,分數越高說明這條數據質量越好。一個自然的想法是,讓模型先學差一點的數據,再學好一點的數據,就像人先學基礎知識再學高階內容。
但這裡有一個隱藏的矛盾。訓練末期,學習率通常會衰減到很低,這意味著即便你把最優質的數據放在訓練末尾,此時模型對參數的更新幅度已經很小了,好數據沒能充分發揮作用。
這就好比你精心準備了一頓大餐的壓軸菜,但客人這時候已經吃飽了,胃口所剩無幾,再好的菜也發揮不出應有的效果。
CMA的解決辦法是:把課程排序和訓練末期的優化策略結合起來設計。具體做法是,先按照正常的學習率曲線訓練一段時間,然後從某個後期的檢查點恢復,把學習率固定在一個較低但非零的常數上繼續訓練一段,最後把這段"恆定學習率"階段里保存的多個檢查點做參數平均,作為最終發布的模型。
這裡有一個術語需要解釋一下。
檢查點*:訓練過程中某個時間點保存下來的模型參數快照,可以用來恢復訓練或者直接拿來評估、發布。
具體到這篇論文裡,他們把Phase 2(訓練的第二階段)的數據劃分成376個"課程桶",每個桶大約包含2.5億個token(這裡應為25億,原文表述為約2.5B token)
,每個數據源內部按分數從低到高排列,再把不同數據源相同進度的部分對齊組合。整個課程走完之後,從第218000步這個檢查點開始,固定學習率繼續訓練,最後對最後6個檢查點(間隔大約100步一個)做簡單平均。
效果如何?論文裡做了一個六組對照實驗,結果顯示:單純把數據順序從隨機打亂換成課程排序,性能提升1.18個百分點;單獨做模型平均,效果反而略有下降;但把課程排序、恆定學習率續訓、檢查點平均這三件事結合在一起,最終效果達到57.81分,比單純的均勻數據排序高出接近2個百分點。
換算成錢是什麼概念?論文擬合了一條成本-性能曲線(後面會詳細講),根據這條曲線反推,採用課程/CMA配方達到的效果,如果換成不用課程的均勻數據配方去實現,大約需要花費1.65倍的錢,也就是1.14萬美元左右,而實際只花了6890美元。
如果不做這套課程設計會怎樣?意味著同樣的錢只能訓出一個性能弱1到2個百分點的模型,或者反過來說,想達到同樣的性能,需要多花65%到140%的預算。這在動輒十幾萬甚至幾十萬美元的訓練成本背景下,是一筆相當可觀的差額。
普羅成本縮放定律:用一條曲線告訴你,多少錢能追上Qwen2
前面講的都是"怎麼省錢",現在講一個更有意思的結果:作者們發現,性能和成本之間存在一條清晰的可預測曲線,他們把這條曲線命名為普羅成本縮放定律(Puro Cost Scaling Law)。
具體做法是,固定住Phase 1(訓練第一階段)的檢查點不變,只改變Phase 2投入的token預算,訓練出多個不同規模的模型,然後把它們的最終評測分數和對應的花費畫在一張圖上。擬合出的曲線形式是:
性能 = 截距 + 斜率 × log2(成本 - Phase1固定成本)
這條曲線最有意思的地方在於,它給出了一個具體可驗證的預測:只要花4400美元,就能讓訓出的模型平均性能超過Qwen2-1.5B(Qwen2-1.5B的基準分數是55.14)。而實際訓練結果驗證了這一點,花費4400美元訓出的均勻數據版本模型,最終得分確實超過了這個基準線。
這個曲線的意義不只是"驗證了預測準確",更重要的是它給整個社區提供了一個參照系:如果你手頭只有2000美元的預算,大概能訓到什麼水平;如果你有1萬美元,又能達到什麼水平。這種可預測性,恰恰是窮實驗室最需要的東西。因為對預算有限的團隊來說,最痛苦的不是"錢不夠",而是"不知道錢夠不夠,投進去了才發現打了水漂"。
數據配方:沒有標註員,靠代理實驗挑數據
前面講的都是"怎麼訓得快、訓得省",但還有一個問題沒講:用什麼數據訓練?
大模型訓練的數據配方,通常需要設計一個跨領域通用的質量評分標準,然後用這個標準篩選海量數據。但問題是,怎麼給一篇維基百科文章和一段Python代碼評分,讓兩者的分數具有可比性?這幾乎是不可能完成的任務,不同領域的"好",標準完全不同。
作者們的解決方案是代理基準測試(proxy benchmarking)。
代理基準測試*:不直接判斷數據"好不好",而是拿一個小模型在候選數據上繼續訓練一小段,然後看這個小模型在標準測試集上的表現,用這個表現來間接反映數據的價值。
具體流程是這樣的:先用一個Qwen3-0.6B規模的小模型,在基礎混合數據集上訓練86億token作為起點,然後針對每個候選數據源或者數據切片,繼續訓練大約84億token,訓練過程中候選數據的占比從0逐漸爬升到80%,最後評估這個小模型在15個基準測試上的表現,得到一個能力向量。
這個方法的巧妙之處在於,它把"這份數據好不好"這個抽象問題,轉化成了"用了這份數據後,模型在數學題、代碼題、常識題上分別考多少分"這個可以直接測量的問題。
作者們還做了一個主成分分析(PCA*:一種降維分析方法,用來找出多個變量之間隱藏的主要變化方向)來審視這些代理實驗結果,發現"通用能力"這個維度和"代碼能力"存在此消彼長的關係,而"數學能力"和"通用能力"基本不衝突。這個發現直接影響了配方設計:既然數學和通用能力可以兼得,那就可以放心地把更多預算投向數學數據,而不用擔心拖累整體表現。
最終確定的配方里,Phase 1階段英語占比73.2%,保持廣泛覆蓋;到了Phase 2,數學占比提升到18.3%,因為這是團隊特意想強化的能力方向,而且有研究表明數學數據的訓練效果能夠外溢到更廣泛的推理能力上。
如果不做這套代理實驗,直接憑經驗或者簡單規則去篩選數據會怎樣?很可能會把預算浪費在看起來"高大上"但實際訓練效果不佳的數據源上,尤其是在預算極其有限的情況下,每一個百分點的數據配比失誤都可能被放大成最終評測分數上明顯的差距。
最終成績單:花6900美元能買到什麼
說了這麼多方法,最終結果到底怎麼樣?
論文給出了詳細的評測表格,覆蓋數學、代碼、推理、知識四大類共15個基準測試。在數學和代碼這四項(GSM8K、MATH、MBPP、HumanEval)上,普羅2B的平均分是43.50,比Qwen2-1.5B高3.21分,距離Qwen2.5-1.5B只差4.02分。
在推理和知識這11項測試上,普羅2B平均分是63.02,比Qwen2-1.5B高2.48分,距離Qwen2.5-1.5B只差2.51分。
這裡要特別提一下橫向對比。同樣屬於"開源配方"陣營的模型里,Instella-3B用了128張MI300X顯卡,SmolLM3-3B用了384張H100顯卡訓練了11萬億token,YuLan-Mini-2.4B用了48張A800顯卡。普羅2B用的是消費級RTX 5090集群,參數量只有20億,訓練量只有1.4萬億token,卻在整體表現上追平甚至超過了這些用重型硬體訓出來的對手。
後訓練實驗:一個訓練配方的差異,能不能撐過微調這一關
論文裡還做了一個很有價值的追問:Phase 2用課程配方還是均勻配方訓出來的模型,這個差異在經過監督微調(SFT*:Supervised Fine-Tuning,用人工標註或整理好的數據對預訓練模型進行針對性調整的過程)之後,還會不會存在?
這個問題之所以重要,是因為很多人可能會想:反正後面還要做SFT,預訓練階段的這些細微差異,會不會在微調過程中被"抹平"?
作者設計了三組遞進的實驗來回答這個問題。第一組是聚焦數學的SFT,專門用GSM8K相關數據微調,不摻雜任何預訓練重放數據。結果顯示,課程配方初始化的模型準確率是68.66%,均勻配方是66.89%,差了1.77個百分點,而且三次重複實驗方向完全一致。
第二組是擴大規模的數學SFT,用了更大的混合數據集和更長的訓練預算。結果課程配方達到76.12%,均勻配方是74.10%,差距擴大到2.02個百分點。
第三組是更廣泛的通用指令微調,用Tulu-3數據集,測試範圍覆蓋知識、推理、代碼、指令遵循等多個方向。15項任務的宏觀平均分上,課程配方是56.58%,均勻配方是54.99%,差1.59個百分點,而且在15項里有13項都是課程配方勝出。
這個結果說明,預訓練階段數據順序設計帶來的差異,並不會被後續的監督微調抹平,它會一路延續下去,影響到最終交付給用戶的模型質量。這也從側面證明,普羅團隊開源整個訓練流程的意義所在:如果只發布模型權重,根本無法做這種"預訓練配方A和配方B誰更好"的對照實驗,只有掌握了從數據到訓練全流程的控制權,才能提出並回答這類問題。
寫在後面
讀完這篇論文,最觸動我的其實不是那些具體的技術細節,而是一個更樸素的事實:這個團隊沒有去追求"更大更強",而是花了大量精力去回答"能不能更便宜"這個問題。這在整個大模型競賽充滿了"越大越好"的敘事裡,顯得挺特別的。
有一個細節值得單獨拿出來說。論文裡提到,他們為了在消費級顯卡上啟用GPUDirect RDMA,需要對CUDA用戶態驅動做一個"最小化的二進制修改",但由於英偉達EULA(最終用戶許可協議)的限制,他們沒辦法在論文裡公開具體細節。這種"技術上做到了,但法律上不能說"的處境,某種程度上折射出硬體廠商對消費級和數據中心級產品之間人為劃出的那道界限,有多麼根深蒂固。這條界限的存在本身,恰恰說明了這篇論文的價值:它證明了這道界限並非不可繞過。
另一個讓我反覆琢磨的地方是"有效學習率"這個概念。論文裡那個簡單的對比實驗,普通Muon和有效學習率對齊後的Muon,最後只差0.001的驗證損失,幾乎完全一致。這說明很多時候我們以為某個優化算法"天生更強",其實背後起決定作用的可能只是一個更容易被忽略的調度細節。這個發現放在更大的語境裡想,其實挺讓人警醒的:在機器學習這個領域,很多被吹得神乎其神的"新方法",拆開來看,核心創新點可能只是把一個原本隱式存在的量,變成了可以直接控制的顯式量。
論文裡還留了一個沒有完全解決的問題:這套RTX 5090的配方能不能擴展到更大的模型?作者自己在"局限性"部分坦誠地寫道,這條成本縮放定律是針對固定20億參數規模的下探曲線,而不是模型規模的上探曲線。如果想訓練更大的模型,消費級顯卡32GB的顯存容量很可能會成為一道過不去的坎。這個問題,恐怕要留給下一篇論文來回答了。
Q&A
Q1:普羅2B是什麼?
A:普羅2B(PuRo-2B)是清華大學團隊訓練的一個20億參數語言模型,特點是完全用消費級RTX 5090顯卡從零訓練,總花費不到6900美元,性能追平了阿里的Qwen2.5-1.5B並超過Qwen2-1.5B。
Q2:用遊戲顯卡訓練大模型可靠嗎?
A:論文證明是可行的。通過修改驅動啟用PCIe P2P和GPUDirect RDMA、採用FP8混合精度訓練、使用MuonH優化器和課程數據排序等一系列組合優化,團隊在RTX 5090集群上實現了73%的等效算力利用率,最終花費不到7000美元就訓出了達到主流開源模型水平的成果。
Q3:普羅成本縮放定律說了什麼?
A:這條定律描述了訓練成本和模型性能之間的關係,預測只需要花費4400美元就能訓出超過Qwen2-1.5B平均分(55.14分)的模型,實際訓練結果也驗證了這一預測,為預算有限的團隊提供了可參照的成本效果曲線。






