PyTorch 2.15 更新重點:NCCL 預設改了,AI 團隊升級前要看什麼?
PyTorch 2.15 更換 NCCL 預設後端,加入低精度與 Apple GPU 更新。整理回復方式、Python 與 macOS 條件,以及效能數字適用範圍,幫助團隊規劃升級。
PyTorch 2.15 上線後,同一份 AI 訓練程式即使沒有改模型,執行環境也可能不同。多張 GPU 怎麼交換資料、精度如何保留,都會影響工作能否穩定完成。
因此,升級 PyTorch 不能只看「更快」兩個字。對已經能跑的專案而言,先知道哪些預設被改動,通常比先開啟所有新功能更重要。
PyTorch 於 2026 年 10 月 28 日發布 2.15,涵蓋分散式訓練、推論核心、Apple GPU 與安裝套件等更新。
其中,新 NCCL 通訊後端成為預設,是既有 NVIDIA 多 GPU 工作最直接需要注意的變更。官方也提供退回舊後端的方法。
另一方面,部分加速針對特定硬體、資料精度與運算形態,不能直接套成每一種 AI 都會變快的承諾。
當多張 GPU 必須一起工作,通訊後端改動便可能先於模型程式影響結果。這也是升級時最值得先釐清的部分。
PyTorch 2.15:多張 GPU 現在換了預設通訊方式
PyTorch 是用來建立、訓練與執行模型的框架。當模型或資料分給多張 GPU,這些處理器仍需要交換結果,才能接續下一輪工作。NCCL 就是 NVIDIA GPU 常用的通訊程式庫。
可以把它想成多個人分頭計算,最後需要把各自的數字合併。如果有人沒交出資料,其他人也可能停在等待。通訊後端因此不只是速度配角,也直接影響整個工作能否順利完成。
在 2.15,新 NCCL 後端由原先需要選用,改成預設使用。對既有多 GPU 專案來說,即使沒有改模型本身,也可能開始走不同的通訊實作。
官方保留回復方式:可設定 TORCH_DIST_USE_NCCL2=0,或使用 nccl-legacy。這能協助團隊在遇到相容性問題時,區分是新後端造成,還是其他升級項目影響。
退回舊後端不等於找到原因。若原本能完成的工作改版後卡住,還要記錄發生在哪個操作、哪個節點,以及同樣環境退回後是否消失,才能讓除錯集中在有證據的差異。
這次也更新了用於追查通訊卡住的紀錄工具。官方介紹的 flight recorder,會保留相關操作紀錄,幫助開發者理解集體通訊為何沒有完成,而不是只看到整個訓練一直等待。
有了紀錄,團隊才比較容易分清楚,問題出在某個工作沒走到同一步,還是通訊本身遇到錯誤。這比單純把等待時間拉長,更有助於決定下一步要改哪裡。
部分進階能力另有底層程式庫版本要求,不能因框架升到 2.15,就認為環境已包含所有條件。官方公告列出的功能狀態,也仍需要逐項閱讀。
通訊問題還有一個容易混淆的地方:所有處理器都很忙,不代表它們都在做有效計算。若某些處理器停在等其他節點,單看整體使用率可能無法說明原因,追查操作順序才有機會找出等待點。
官方提供新舊後端選擇,對既有團隊的價值正在這裡。它讓升級不必立刻變成不可拆解的整包變動,而能先用相同程式比較通訊路徑,再決定是否繼續調整其他功能。

精度能細分,但敏感的地方仍要保留
AI 計算常以降低數字表示精度來節省記憶體與運算。數字用較少位元保存,通常能降低部分負擔,但也可能丟掉對結果重要的細節。
2.15 在 FSDP2 的精度控制上提供更細的安排。FSDP2 是把模型訓練負擔分散到不同處理器的一種方式。這次的更新讓團隊能針對模型不同部分,選擇不同精度。
官方舉出的用途包括讓路由器與正規化等敏感部分保留 32 位元浮點數精度,其他部分則使用較低精度。這不是把整個模型都壓低,而是讓可能受誤差影響的地方獲得不同處理。
例如,負責決定資料送往哪個專家的路由器,一旦數值變化影響選擇,後面的計算路徑也可能跟著改變。因此,精度安排需要對應模型結構,不能只以記憶體占用最低為目標。
對既有訓練,還應留意梯度相關預設是否影響原有設定。梯度是模型更新參數時使用的方向資訊,精度改變可能不會立刻造成錯誤訊息,卻可能影響訓練過程。
比較時除了看一次工作能不能跑完,也要看原本用來判斷模型品質的指標。運算速度、記憶體使用與訓練結果是不同項目,只有前兩項改善,還不足以證明升級適合保留。
這也是精度功能值得細讀的原因:框架提供更多選項,讓團隊有機會針對瓶頸調整。但哪個部分適合降低精度,仍需要自己的模型與任務證據。
Blackwell 與 Apple MPS 的加速,各有前提
2.15 的推論更新包含針對 NVIDIA Blackwell 的低精度運算支援。官方介紹的 NVFP4 路線,涉及特定解碼運算核心,不能改寫成任何模型只要裝新版就會全面加速。
解碼是模型逐步產生後續內容的階段。運算核心則是底層真正執行某項計算的程式。若自己的模型沒有走到對應核心,或主要時間花在其他地方,這項更新就未必是主要改善來源。
較低精度也需要和模型品質一起看。輸出仍要符合任務,且運算路徑真的使用相應硬體能力,官方介紹的效益才有機會轉成實際可用的改善。
Apple GPU 方面,更新包含 MPS 的 FP8 支援,以及適合部分專家混合模型解碼的分組矩陣運算。MPS 是 PyTorch 使用 Apple GPU 的其中一條執行路徑。
官方在 M3 Ultra 的指定工作中,報告約 1.32 至 1.34 倍加速。這是特定硬體與運算的結果,不代表每台 Mac、每個模型,或整支應用都會得到相同比例。
如果應用同時要讀檔、整理輸入、執行模型與輸出結果,單一核心的改善只涵蓋其中一段。團隊需要先知道大部分等待發生在哪裡,才能判斷這項數字是否切中自己的問題。
上述效能資料來自 PyTorch 官方公告,本站沒有重新執行相同測試。對一般使用者而言,比較實用的資訊是適用條件:使用哪個平台、哪類計算,以及有沒有相符的硬體。
因此,這次不是替所有人提供同一個「升級就更快」的答案,而是讓不同硬體的開發者,多了幾條可以驗證的改善方向。
分組矩陣運算也提醒我們,模型名稱相同不一定代表執行方式相同。不同批次大小、一次啟用的專家與資料安排,可能讓運算呈現不同形狀。因此,應選擇接近實際使用狀態的工作來比較。
如果只拿一個與正式服務差很遠的小範例計時,得到的改善可能是真的,卻未必能解釋服務等待。把官方結果當成選擇測試方向的線索,比直接套一個加速百分比更有用。
安裝前,先對齊 Python、作業系統與 GPU 套件
框架版本只是環境的一部分。2.15 的相容條件包含 Python 與 GPU 相關套件,若只更新主程式,其他部分沒有對上,可能在執行模型前就遇到問題。
Python 方面,官方列出 3.11 到 3.15 的支援範圍,並移除 3.10。原本仍停在舊版的專案,可能需要先處理程式與相依套件的遷移,而不是直接覆蓋安裝。
自由執行緒等 Python 變體,也不能只看主版本號相同就認定所有行為一致。若團隊使用這類環境,應回到官方相容說明,確認套件與自己的需求是否對應。
使用 Apple MPS 的人則要留意,2.15 起需要 macOS 15 以上。電腦硬體符合,並不代表作業系統版本也已符合。兩者都需要在升級前查清楚。
CUDA 套件的預設版本調整為 13.2,並提供 13.4 套件。公告提到的實驗性狀態,是 Rubin 的支援,不能把整個 CUDA 13.4 套件都寫成只提供實驗版本。
AMD 路線的 ROCm 套件也有更新,包含透過 TheRock 安排的套件相依關係。這代表環境紀錄不應只寫一行 PyTorch 版本,還要保留底層工具鏈與安裝來源。
模型檢查點同樣需要注意。它不只是權重檔,也可能帶有框架讀取時需要的資料結構與資訊。因此,若有跨版本讀取需求,我建議另存副本並實際試讀,不只確認它來自同一款模型。
對需要回到舊環境的團隊,較穩妥的做法是保留原環境與原始檢查點,讓新版本另存成果。這樣若新版檔案無法被舊工具讀取,仍有可回到已知狀態的起點。
讓一次升級回答一個具體問題
假設團隊的訓練偶爾在多 GPU 同步時停住,這次評估就可以先鎖定通訊紀錄與後端變化。若主要問題是 Apple GPU 上某種解碼速度,則應挑真正會走到該運算的工作。
這些是評估思路,並非本站實測紀錄。目的在於讓升級有一個可回答的問題,避免同時更換模型、資料與多個套件後,只得到一個難以解釋的總時間。
先保留原版本的代表性工作、輸入與結果,再於新環境執行相同內容。訓練工作要保留品質判斷,推論工作則要確認輸出要求沒有因調整而被省略。
若測的是通訊問題,就把卡住或失敗紀錄和執行時間分開。一次成功完成可能只是偶然沒有遇到原問題,不足以證明故障已排除。相反地,新的除錯資訊即使沒有變快,也可能很有價值。
若測的是加速,還要分開模型載入與實際計算。第一次載入、編譯或準備資料造成的等待,可能掩蓋核心改善。把不同階段拆開,才知道新版究竟改到哪一段。
保留可回復環境,也讓評估比較容易往下推進。團隊能在確認問題時回到舊版,而不是因整個工作環境已被覆蓋,只能一邊處理故障一邊猜原本設定。
等到代表性工作能完成、品質可接受,且改善確實對應升級目標,再擴大到其他工作。這樣留下的會是一個能解釋的版本選擇,而不只是「大家都裝新版」的習慣。
對需要多人維護的專案,這些環境資訊也應留給接手者。除了版本號,還包括選用哪個通訊後端、是否改了精度,以及哪個功能仍採實驗性支援,避免下一次除錯時失去比較基準。
升級後若只保存最後成功的畫面,團隊很難知道它和舊版是否真的等價。保留輸入、輸出與相關操作紀錄,才能讓其他人重新檢查,並確認改善不是來自剛好跳過某個必要步驟。
如果原本的工作需要整夜執行,還要保留足以代表正式工作的長度。短暫啟動成功只證明程式能開始,不能替長時間訓練中的同步與資料處理背書。這也讓除錯紀錄比單次完成時間更有意義。
常見問題
PyTorch 2.15 發布,代表每個新功能都已穩定嗎?
正式版本包含不同成熟度的功能。官方仍會對特定能力標示測試或實驗性狀態。選擇是否使用時,應看該功能本身的說明,不能把框架正式發布當成全部功能相同保證。
只有一張 GPU,也一定受到 NCCL 預設改動影響嗎?
NCCL 主要涉及多 GPU 通訊。是否會走到這條路徑,取決於自己的工作設定。如果沒有使用相應的分散式通訊,就不應把這項變更當成所有速度差異的原因。
M3 Ultra 的數字可以套在自己的 Mac 嗎?
不能直接套用。硬體、模型與實際運算都要相符,也要先滿足作業系統條件。官方選定運算的加速,不代表從開啟程式到交出結果的每個階段都同樣改善。
現在就應該把所有專案升上去嗎?
若新版解決了明確的通訊、精度或硬體需求,可以先做範圍清楚的比較。對目前穩定、沒有對應需求的工作,先確認環境與相容條件,通常比急著一次搬完更容易判斷收益。
PyTorch 2.15 提供了更多效能與除錯能力,也改變部分開發者原本習慣的預設。把變更放回自己的瓶頸,並保留原有品質與回復方式,才能讓框架升級成為可持續使用的改善。
延伸閱讀
原始資料來源
免費訂閱 AI 郵報,掌握 AI 框架、開發工具與硬體更新的實際條件。