PyTorch 2.13:TorchScript 棄用,改用 torch.export 部署模型

作者:默思編輯部 發布:2026-06-25

TorchScript 的時代要結束了

PyTorch 2.13 版本中,官方正式宣布 TorchScript 進入棄用(deprecated)階段,並明確建議開發者將模型部署的工作流程遷移到 torch.export。對於這幾年一直用 TorchScript 做模型序列化與跨語言部署(例如導出到 C++ 執行環境)的團隊,這是一個需要開始規劃遷移時程的訊號。

為什麼要淘汰 TorchScript

TorchScript 長期以來扮演「把動態的 PyTorch 模型轉換成可獨立執行、跨語言部署格式」的角色,但它的追蹤(tracing)與腳本化(scripting)機制對複雜的 Python 控制流程(例如動態分支、迴圈)支援得並不完美,經常需要開發者為了相容 TorchScript 而改寫模型程式碼,增加維護成本。

torch.export 是 PyTorch 團隊近年主推的新一代模型匯出機制,設計目標是用更貼近原生 Python 語意的方式擷取計算圖,減少「為了部署而妥協寫法」的情況,同時更好地跟 PyTorch 整體的編譯器基礎設施(如 torch.compile)整合。

對還在用 TorchScript 的團隊,該怎麼辦

  1. 不用恐慌,但要開始排優先序:棄用不代表立刻無法使用,但代表官方資源會逐漸轉向新方案,長期的錯誤修正與功能支援會愈來愈少。
  2. 盤點現有部署管線對 TorchScript 的依賴程度:哪些服務直接依賴 .pt 格式的 TorchScript 模型?部署環境(行動端、邊緣裝置、C++ 服務)是否已經支援 torch.export 產出的格式?
  3. 小規模試點遷移:先挑一個非核心、風險較低的模型做遷移測試,累積經驗後再逐步擴大範圍,而不是一次性把所有生產環境模型都轉換。
  4. 留意官方遷移指南更新:這類重大架構轉換,官方通常會持續補充遷移工具與常見問題排解文件,值得定期關注。

這對機器學習從業者的啟示

PyTorch 生態系的演進速度很快,模型訓練框架、部署工具鏈幾乎每年都在調整。與其每次都被動應對重大變更,更務實的做法是打好 Python 與底層概念的基礎(張量運算、計算圖、序列化機制),這樣無論框架怎麼演進,你都能更快掌握新工具的設計邏輯,而不是每次都要從頭學起。

默思 Mindset 的 Python 課程 提供扎實的程式基礎,是銜接後續機器學習框架學習的良好起點。