換晶片唔使再改一套,AWS 推 TorchNeuron
一直想將自家 AI 模型轉到 AWS 自家晶片 Trainium 行,但聽到要連編譯同執行方式一齊改就頭都大? AWS 今次推出 AI 開發框架 PyTorch 嘅擴充套件 TorchNeuron,就係為咗呢個痛點。
簡單講,TorchNeuron 係一層擴充,令 PyTorch(開發 AI 模型常用嘅框架,模型由大量資料學習,或用訓練好嘅模型產生文字、語音等結果)可以直接「認得」Trainium,唔使再另搞一套執行方式。開發者通常只須喺程式入面調整指定邊塊晶片負責運算,原有嘅訓練同推論流程照行,大幅減少換晶片時嘅修改工作。目前 TorchNeuron 已出公開測試版,支援 Trainium2 同 Trainium3。
以前點做?
過去 AWS 其實都有俾方法俾 PyTorch 模型行喺 Trainium,但要配合特定嘅編譯及執行方式改程式,原本用喺其他晶片嘅工作流程唔一定搞得直接搬。呢次改用 PyTorch 既有嘅硬體支援機制,令用户可以直接指定 Trainium 負責運算,唔使再學一套新嘅模型執行方法。AWS 亦同時同 PyTorch 社群合作,調整框架入面同特定晶片綁定嘅程式碼,令不同硬體可以透過較一致嘅方式執行模型。
做乜得,做乜唔得
可以繼續用 PyTorch 原有嘅測試同除錯工具;規模大嘅模型更可以用到既有嘅分散式訓練工具(將訓練工作分配到多顆晶片處理嘅機制),拆開分配到多顆 Trainium 行。
執行方面提供兩種模式。逐項執行(eager)喺程式運行時逐項編譯運算,方便開發者檢查中間結果,但逐項編譯、啟動或會增加額外時間;另外可以用 PyTorch 嘅 torch.compile,首次將多項運算編譯成 Trainium 可執行程式,之後相同條件就唔使再編譯。兩者可以搭配,只針對需要加快嘅部分編譯。
不過要留意,TorchNeuron 仍喺公開測試階段,未支援所有 PyTorch 功能。逐項執行時未支援嘅運算可能轉由 CPU 處理,編譯模式下則可能導致編譯失敗;輸入資料大小或每次處理筆數改變,有時又要重新編譯。原本用 Trainium 舊版專用介面嘅程式,改用時仍須調整,唔係個個都搞得直接轉。
模姐驗嚇貨
呢步明顯係 AWS 將自家晶片 Trainium「接」入最流行嘅開源框架,將遷移成本壓低,同時拉高自家晶片喺開發者工作流程嘅滲透率。大公司將自家硬件接入主流開源生態,本身就係一場拉鋸。對開發者而家最有價值嘅,係清楚知道自己嘅模型、功能喺受支援範圍唔喺入面,以及邊啲功能會回落到 CPU 或搞編譯失敗——公開測試階段,呢啲都要自己先核實,唔好見到「只須改裝置」就以為個個模型都可以即插即用。
模姐|深度調教




