Google發表新API,支持訓練更小、更快的AI模型
包永剛 / 何渝婷編譯
2020-04-09 09:50

Google今天發布了 Quantification Aware Training(QAT)API,使開發人員可以利用量化的優勢來訓練和部署模型AI模型。通過這個API,可以將輸入值從大集合映射到較小集合的輸出,同時,保持接近原始狀態的準確性。

新的API的目標,是支持開發更小、更快、更高效的機器學習(ML)模型,這些模型非常適合在現有的設備上運行,例如那些運算資源非常寶貴的中小型企業環境中的設備。

通常,從較高精度到較低精度的過程有很多噪聲。因為量化把小範圍的浮點數,壓縮為固定數量的資訊儲存區中,這導致資訊損失,類似於將小數值表示為整數時的捨入誤差(例如,在範圍[2.0,2.3]中的所有值都可以在相同的儲存中表示。)。問題在於,當在多個計算中使用有損數時,精度損失就會累積,這就需要為下一次計算重新標度。

谷歌新發布的QAT API,通過在AI模型訓練過程中模擬低精度計算來解決此問題。在整個訓練過程中,將量化誤差作為噪聲引入,QAT API的算法會嘗試將誤差最小化,以便它學習這個過程中的變量,讓量化有更強的魯棒性(Robustness)。

訓練圖是利用了將浮點對象轉換為低精度值,然後再將低精度值轉換回浮點的操作,從而確保了在運算中引入了量化損失,並確保了進一步的計算也可以模擬低精度。

谷歌在報告中給出的測試結果顯示,在開源Imagenet數據集的圖像分類模型(MobilenetV1 224)上進行測試,結果顯示未經量化的精度為71.03%,量化後的精度達到了71.06%。

針對相同數據集測試的另一種分類模型(Nasnet-Mobile)中測試,在量化後僅有1%的精度損失(74%至73%)。

除了模擬精度降低的運算外,QAT API還負責記錄必要的統計資訊,以量化訓練整個模型或模型的一部分。比如,這可以使開發人員能夠通過調用模型訓練API,將模型轉換為量化的TensorFlow Lite模型。或者,開發人員可以在模擬量化如何影響不同硬體後端的準確性的同時,嘗試各種量化策略。

Google表示,在默認情況下,作為TensorFlow模型優化工具包一部分的QAT API,配置為與TensorFlow Lite中提供的量化執行支持一起使用,TensorFlow Lite是Google的工具集,旨在將其TensorFlow機器學習框架上建構的模型,能夠適應於行動設備,嵌入式和物聯網設備。

「我們很高興看到QAT API如何進一步使TensorFlow用戶在其支持TensorFlow Lite的產品中,突破有效執行的界線,以及它如何為研究新的量化算法,和進一步開發具有不同精度特性的新硬體平台打開大門」,Google在部落格中寫道。

QAT API的正式發布,是在TensorFlow Dev Summit上。谷歌也在會議的過程中,預覽了QAT API。

本文為雷鋒網授權刊登,原文標題為「Google發佈新API,支持訓練更小、更快的AI模型