跳轉到主要內容
部落格

PyTorch Wheel 變體,Python 打包的前沿

作者: 2025 年 8 月 13 日暫無評論

charliemarsh 的 推文uv 的建立者

PyTorch 是領先的機器學習框架,用於開發和部署全球最大的一些 AI 產品。然而,每當你與大多數 PyTorch 使用者交流時,都會有一個主要的痛點:打包。

現在,這並不是一個新問題。Python 打包出了名的困難,隨著包的編譯/專用元件的出現,打包生態系統需要一個解決方案來改善體驗。(如果你有興趣瞭解更多關於這些困難的資訊,我強烈建議閱讀 pypackaging native。)

考慮到這一點,我們已經在 PyTorch 2.8 中推出了對 wheel 變體的實驗性支援。要安裝它們,你可以使用以下命令:

Linux x86 和 aarch64,MacOS

curl -LsSf https://astral.sh/uv/install.sh |
INSTALLER_DOWNLOAD_URL=https://wheelnext.astral.sh sh

uv pip install torch

Windows x86

powershell -ExecutionPolicy Bypass -c 
“$env:INSTALLER_DOWNLOAD_URL=‘https://wheelnext.astral.sh’; irm 
https://astral.sh/uv/install.ps1 | iex”

uv pip install torch

這篇文章將重點關注 wheel 變體試圖解決的問題,以及它們如何影響 PyTorch 打包(以及整個 Python 打包)生態系統的未來。

有關提案和安裝說明的更多詳細資訊,請參閱以下資源

存在哪些問題?

目前,安裝 PyTorch 的矩陣在 PyTorch 網站上表現為一個模態視窗,看起來像

這個模態視窗有 10 多個按鈕,專門用於安裝為專用硬體編譯的不同版本的 PyTorch,其中大多數途徑都會導致看起來像這樣的安裝命令

pip install torch torchvision --
index-url https://download.pytorch.org/whl/cu129

雖然命令本身看起來並不糟糕,但要達到這個目的需要很多步驟,包括

  • 瞭解您正在使用的加速器
  • 瞭解您正在使用的加速器版本
  • 知道哪個 URL 對映到您正在使用的哪個加速器 + 加速器版本
    • 其中命名約定可能不標準

這導致 PyTorch 使用者感到沮喪,更糟糕的是,對於需要在自己的專案中支援多個加速器的 PyTorch 開發人員來說,導致了流失(參見 示例)。

PyTorch 打包的未來

這就是 PyTorch 打包的未來。是的,真的,就是這樣

更嚴肅地說,我們與來自 WheelNext 社群的工程師合作,提供了實驗性二進位制檔案,這些檔案:

  • 自動識別您正在使用的加速器和加速器版本(例如,CUDA 12.8)
  • 根據這些軟體和硬體引數自動安裝最適合的 PyTorch 變體

注意:此特定功能是實驗性的,基於 wheel 變體提案。(PEP 待定)

PyTorch 團隊認為 wheel 變體是 Python 包確保它們可以標記特定包以支援專用硬體和軟體的一種有前途的方式,並將支援其在 PEP 流程中的開發/提案。

我們期待您的反饋!

在我們開拓 Python 打包前沿的同時,我們很樂意聽到您如何利用 PyTorch 的 wheel 變體,更重要的是,如果您有任何反饋,我們邀請您將它們釋出到我們的 問題跟蹤器 pytorch/pytorch 上。