Transformer 模型具有強大的計算能力,但其龐大的運算需求使得在 物聯網(IoT)設備 上進行推理變得極具挑戰性。此外,大多數 AI 框架並不完全支援 IoT 設備,因此,要針對 IoT 設備客製化神經網絡模型,需要考量其特定硬體屬性來進行優化,這將帶來 高昂的開發成本。本研究提出了一種 高效的 Transformer 推理方法,適用於 資源受限的 IoT 設備,特別是針對現有 AI 框架無法支援的 Transformer 模型長推理時間進行優化。這種方法可 降低開發成本並擴大 Transformer 模型的應用範圍。
MobileBERT 曾被提出作為 輕量級 Transformer 模型,適用於 IoT 設備【2】,但在 Pixel 4 手機上仍有 62ms 的推理延遲。儘管 TF-Lite 可讓模型在 裸機設備(bare-metal devices) 上執行,但 僅支援有限的運算操作。此外,PyTorch 框架完全不支援裸機設備,開發者需要手動 追蹤網絡運行時(runtime),以根據 特定硬體特性(如向量處理單元 VPU) 進行模型優化。總結來說,在裸機設備上部署 Transformer 模型需要大量的模型優化,而這些 重複性的優化工作將帶來極大的開發負擔。
本研究的貢獻如 圖 1 所示,並可總結如下:
只有對應的 運行時(runtime) 才能正確解釋模型並執行推理操作。例如,PyTorch 模型無法直接在 TensorFlow 的運行時執行。幸運的是,模型格式與文本類似,可透過現有工具進行轉換。例如,將 PyTorch 模型轉換為 TensorFlow 格式,即可使用 TensorFlow 運行時 來執行推理。
導出的模型 包含 模型流程描述 及 對應的參數。在推理過程中,運行時會 將參數輸入對應的函數,從而完成整個推理過程。
不同的 深度學習框架(如 PyTorch、TensorFlow)實現了相似的功能,例如 線性層(linear layer)和卷積層(convolution layer),但其 具體實作方式可能不同。例如:
這些差異導致即使執行 相同的模型,不同框架的性能可能會有顯著差異。
TVM 是一個 編譯器,可解析來自不同框架的模型,並將其轉換為 TVM 運行時(TVM runtime)可理解的內部表示。這使得來自 各種神經網絡框架的模型 能夠在 TVM 運行時執行。
在模型轉換過程中,TVM 提供 內建優化機制,可進一步提升執行效率【5-9】。這使得開發者能夠在 不同框架之間執行模型,而 無需進行大量的修改 以適配特定的運行時。
此外,TVM 支援 多種後端環境,包括: