這是一本正在寫作的新書,目前前四章已經放出了草稿。過去幾年,GPT-3 等幾個大模型展示了大數據、大算力的力量,它們的效果毋庸置疑,但在現實世界中訓練和部署這些模型是非常昂貴的,這阻礙了大模型在現實世界中的廣泛應用,比如很多效果很好的大模型根本無法在手機上運行。因此,我們需要想辦法把模型做得更加高效(在儘量不損失性能的前提下把模型做得更小)。為了解答這個問題,谷歌機器學習工程師 Gaurav Menghani 和獨立研究者 Naresh Singh 正在撰寫一本新書。這本書將涵蓋谷歌研究院、Facebook AI 研究院(FAIR,現 Meta AI)及其他著名人工智能實驗室的研究員和工程師在各種設備(從大型服務器到小型控制器)上訓練和部署模型時所使用的算法和技術,如量化、剪枝、蒸餾等。
新書鏈接:https://efficientdlbook.com/
代碼鏈接:https://github.com/EfficientDL/book/tree/main/codelabs
第一章是對全書內容的整體概括。作者首先概述了深度學習的現狀、應用和快速增長,然後探討了提高模型效率的動機及相關核心技術,包括壓縮技術、學習技術、自動化、高效模型 & 層、基礎設施等。

第二章圍繞壓縮技術展開。壓縮技術旨在減少模型占用空間(大小、延遲、內存等)。我們可以通過減少可訓練參數的數量來減少模型的占用。然而,這種方法有兩個缺點。首先,我們很難確定在不顯著影響性能的情況下可以刪除哪些參數或層。如果可能的話,我們需要進行許多試驗和評估才能得到一個更小的模型。其次,這種方法不能很好地泛化,因為模型設計是針對具體問題的主觀設計。在這一章,作者介紹了能夠解決上述兩個問題的模型壓縮技術 —— 量化。首先,他們介紹了壓縮的概念,然後是量化的細節及其在深度學習中的應用,最後是代碼實現細節以及實踐項目。
模型質量是評價深度學習模型性能的重要基準。例如,使用低質量模型的語言翻譯應用將很難被用戶接受,因為它無法幫助用戶與說不同語言的人有效交流。第三章的重點將放在能夠幫我們實現質量目標的技術上。在移動和邊緣設備等空間受限的環境中,高質量模型具有額外的優勢,它們可以靈活地犧牲一些質量來減少空間占用。在第一章,作者簡要介紹了能夠提高質量的學習技術,如正則化、dropout、數據增強和蒸餾。這些技術可以提高準確度、精確度和召回率等指標,這些都是我們在考慮質量問題時重點關心的指標。在第三章,作者選擇了上述技術中的兩種進行介紹,即數據增強和蒸餾。這是因為,首先,正則化和 dropout 在任何現代深度學習框架中都是相當直接的;其次,數據增強和蒸餾可以在訓練階段帶來顯著的效率增益,這是本章的重點。
截止到第三章,作者已經討論了與模型架構無關的通用技術。這些技術可以應用於自然語言處理、視覺、語音或其他領域。然而,由於其增量性質,它們提供的收益非常有限。此時,嘗試另一種更適合該任務的架構收穫可能更大。打個比方,在改善房子採光的時候,你可以把牆壁重新刷成鮮艷的顏色,或者升級到更強的燈具。然而,如果在結構上做些改變,比如增加幾扇窗戶和一個陽台,採光效果會很好。類似地,為了在占用空間或質量方面獲得數量級的增益,我們應該考慮採用合適的高效架構。深度學習的進展是架構上的突破所驅動的,這些突破可以降本增效。多層感知機的發展是神經網絡領域最大的架構突破之一。它引入了堆疊層來學習複雜關係。卷積神經網絡是另一個重要的突破,它能夠在輸入中學習空間特徵。循環神經網絡有利於從序列和時間數據中學習。這些突破促成了越來越大的模型。雖然它們提高了解決方案的質量,但是更大的模型帶來了部署挑戰。一個不能在實際應用中部署的模型用途是有限的。高效的架構旨在通過提出新的方法來減少模型空間占用並提高推理效率,同時保留大模型的問題解決能力,從而提高模型的可部署性。在第一章,作者簡要介紹了 depthwise 可分離卷積、注意力機制和 hashing trick 等架構。在第四章中,作者將深入研究它們的架構,並使用它們將大型複雜模型轉換為能夠在移動和邊緣設備上運行的小型高效模型。他們還使用這些高效的層和架構建立了幾個編程項目,以獲得實際的模型優化體驗。
至於第四章之後的內容,我們目前只能看到目錄,相信作者也會很快上傳 PDF 草稿,大家可以持續關注該書官網。



©THE END
轉載請聯繫本公眾號獲得授權
投稿或尋求報道:content@jiqizhixin.com