在這項工作中,我們探索了提高機器學習系統各方面效率的理論和算法。首先,我們研究了在ML中實現高效機器不學習的算法原理。我們提出了兩種無監督學習算法,它們在在線數據刪除方面實現了超過100倍的改進,同時產生了統計質量與標準k-means++基線相當的集群。
其次,我們探索混合維嵌入,這是一種嵌入層架構,其中特定嵌入向量的維數隨其查詢頻率的變化而變化。通過理論分析和系統實驗,我們證明了使用混合維可以大大減少內存使用,同時保持甚至提高預測性能。使用Criteo Kaggle數據集上一半的參數或使用16倍的參數進行點擊率預測,混合維層將精度提高0.1%。他們在GPU上的訓練速度也超過2倍。
最后,我們提出了一種用于ML部署監控的新方法MLDemon。MLDemon集成了未標記數據和少量按需標簽,從而對給定數據流上部署的模型當前的準確性進行實時估計。受預算限制,MLDemon決定何時獲得額外的、可能昂貴的、專家監督標簽來驗證模型。在基準測試中,MLDemon優于之前的方法。我們還提供了理論分析,表明MLDemon對于廣泛的一類分布漂移是極小極大速率最優的。
摘要
神經網絡(NNs)的準確性已經在廣泛的問題中得到了顯著的提高,通常是通過高度過參數化的模型實現的。盡管這些最先進的模型具有準確性,但它們的龐大規模使其無法部署到許多資源受限的應用程序中,如實時智能醫療保健監測、自動駕駛、音頻分析和語音識別。這就給實現普適深度學習帶來了一個問題,它需要低能耗、高精度的實時推理和有限的計算資源。
要實現能實現實時約束和最佳精度的高效NN,需要1)NN架構設計、2)模型壓縮方法和3)硬件引擎設計的協同優化。以前追求高效深度學習的工作更多地關注于優化代理指標,如內存大小和FLOPs,而硬件規格實際上在決定整體性能方面起著重要作用。此外,由于設計空間非常大,在以往的文獻中,上述三個方面往往是單獨的、經驗的優化,使整個設計過程耗時且次優。
本文首先系統地研究了一種廣泛應用的標準模型壓縮技術——量化方法。我們沒有使用啟發式設計或昂貴的搜索,而是利用Hessian信息來解決混合精度量化問題,我們提出的Hessian- aware量化(HAWQ)方法在不同的網絡和數據集上實現了最先進的性能。我們進一步使整個管道全自動(HAWQV2),并探索了不同任務(QBERT)上量化(ZeroQ)的不同方面。
基于我們的系統量化方法,我們將硬件規格和部署納入設計空間(HAWQV3)。該神經結構被納入協同設計(CoDeNet),并被自動搜索(HAO)。最后,通過引入基于教師的分段蒸餾餾(ETA),提高了HW-SW自動化協同設計管道的整體效率。總之,我們在本文中的工作展示了從傳統的神經網絡設計到硬件感知的高效深度學習的進化步驟。我們相信,這將進一步加速在資源有限的設備和現實應用中部署先進的神經網絡。
引言
隨著最先進的深度學習模型的參數大小和計算量急劇增長,在不同的硬件平臺上高效部署這些模型變得越來越重要。在特定的硬件資源和約束條件下,1) 模型壓縮,2) 神經結構設計/搜索,3) 硬件優化是獲得可行解的主流方法。模型壓縮包括量化、修剪、知識蒸餾和因式分解等方法,其目的是對預先訓練好的模型進行壓縮,包括模型大小和計算量。隨著當前硬件對低精度計算的支持,量化已經成為解決這些挑戰的流行過程。從另一個角度來看,NAS算法試圖尋找一個有效的神經結構,然后從零開始訓練它。相比之下,硬件優化總是在神經結構和模型壓縮方法固定之后進行。盡管有這些優點,但為了充分利用該系統,實現硬件感知的高效深度學習,在本文中我們試圖解決的問題有三個。
首先,我們要注意的是,實現高效深度學習的三個組成部分并不相互正交。如圖1.1所示,特定神經體系結構的性能實際上與模型壓縮方法和硬件規格高度相關。例如,在具有適當配置的FPGA板上,具有4位量化的ResNet50可以比具有8位量化的ResNet50運行得更快。但是在只支持8位整數的GPU上,8位量化ResNet50可以達到與4位ResNet50相同的速度,同時能夠獲得更高的精度。在本文中,我們的目標是實現硬件感知的高效深度學習,我們綜合考慮了這三個方面,并試圖在它們之間的權衡中獲得最佳點。
其次,之前的工作試圖優化代理指標,如模型大小和神經網絡模型的FLOPs,假設這些理論指標與實際有效指標(如延遲、吞吐量和能耗)高度相關。然而,有人指出,代理指標在特定情況下可能具有誤導性。為了避免次優解的出現,本文利用已開發的硬件引擎或模擬器直接優化實際指標。
最后,綜合考慮神經網絡架構、模型壓縮和硬件設計,可以形成一個非常大的搜索空間。以關節空間的一小部分為例,混合精度量化允許神經網絡的每一層選擇特定的量化位寬,這導致位寬配置的搜索空間呈指數級大。考慮到搜索空間的大小,以前的方法通常是啟發式的,這需要領域知識和人工努力,或者是耗時的,這需要強大的計算資源來執行搜索過程。
在本文中,我們通過應用Hessian分析和整數優化等優化方法,以及基于學習的技術,如延遲和精度模擬器,以及塊知識蒸餾,使我們的方法自動化和高效。本文提出的方法能夠在解決上述問題的同時取得良好的性能。例如,通過我們的混合精度量化,我們在各種模型上實現了10倍的壓縮比,只有大約1%的精度下降(請參閱第6章和第7章)。此外,作為我們使用HW-SW聯合設計的一個例子,我們的4位/8位混合精度模型在Pascal VOC上得到67.1 AP50,只有2.9 MB大小,比Tiny-YOLO小21倍,但精度更高10%(如第12章)。
在本文中,我們首先介紹了在第二章中我們用來定義硬件感知的高效深度學習的指標。在第三章中,我們展示了應用硬件感知的高效深度學習的動機。然后我們將我們的工作分為兩行,第一行展示了我們在系統量化方面的進展,第二行描述了我們在圖1.1中自動和共同探索三個設計空間的技術。具體來說,第四章介紹了量化的概念和相關工作,第五章到第八章介紹了我們的工作HAWQ, HAWQV2, Q-BERT, ZeroQ,第九章給出了結論。第十章介紹了軟硬件協同設計的研究方向和已有的研究成果。我們在第11章到第14章展示了我們的作品HAWQV3, CoDeNet, HAO和ETA,并以第15章作為結論。最后,在第16章中,我們回顧了我們工作的重要性,并討論了未來可能的方向。
模型必須能夠自我調整,以適應新環境。深度網絡在過去十年取得了巨大成功,特別是當訓練和測試數據來自相同的分布時。不幸的是,當訓練(源)與測試(目標)數據不同時,性能會受到影響,這種情況稱為域移位。模型需要自我更新以應對這些意外的自然干擾和對抗性擾動,如天氣變化、傳感器退化、對抗性攻擊等。如果我們有一些標記的目標數據,可以使用一些遷移學習方法,如微調和少樣本學習,以有監督的方式優化模型。然而,對目標標簽的要求對于大多數現實場景是不實際的。**本文專注于無監督學習方法,以將模型泛化到目標域。
本文研究了完全測試時自適應的設置,在不獲取目標標簽和源數據的情況下,將模型更新到不可控的目標數據分布。換句話說,模型在這個設置中只有它的參數和未標記的目標數據。其核心思想是利用測試時間優化目標,熵最小化,作為可學習模型的反饋機制,在測試時間內關閉循環。我們通過在線或離線的方式優化模型,以測量輸出熵的置信度。這種簡單有效的方法可以降低自然破壞和對抗性擾動圖像分類的泛化誤差。此外,語義分割模型的自適應特性可用于處理場景理解的動態尺度推理。通過對比學習和擴散模型,我們可以學習目標域特征并生成源風格的圖像,進一步提高動態環境下的識別性能。
//www2.eecs.berkeley.edu/Pubs/TechRpts/2022/EECS-2022-229.html
自主決策系統正變得越來越普遍,我們越來越依賴這些系統為我們執行行動。以前,我們主要使用算法來完成簡單的預測任務。目前,我們遇到它們在順序決策場景中導航,在這些場景中,它們被精心設計來選擇導致理想狀態下最大預期性能的行動序列。隨著數據的廣泛可用性、計算能力的提高和學習算法的進步,機器學習正在成為傳統專家精心設計的解決方案的可行替代方案。機器能夠從數據中學習,并建立世界的表示來指導它們的行動。近年來,人工神經網絡已成為非常流行的函數逼近方法。從自動語言翻譯到自動駕駛汽車,計算機智能的許多驚人成就都是基于神經網絡的。特別是,它們與強化學習(RL)的結合使機器能夠學習復雜順序問題的解決方案。 與傳統軟件不同的是,人類幾乎不可能理解神經網絡實現的邏輯,這使得它們成為不透明的模型,并可能阻止它們在安全或關鍵任務應用中使用。在很多情況下,僅僅運行模擬還不足以讓人們對它們建立信心,因為一個故障就可能導致災難性的后果。本文的工作解決了在具有神經網絡組件的機器學習系統中建立信任的挑戰。我們首先介紹神經網絡驗證,這是一種驗證網絡是否具有所需屬性的過程。我們介紹了神經網絡驗證的最新進展,包括我們自己的貢獻,并表明,盡管取得了進展,驗證仍然是一個非常具有挑戰性的問題,目前的算法難以擴展到大型網絡。然后,我們提出了一種可選的方法,該方法將驗證需求合并到模型的設計中。更簡單的模型更容易驗證,我們證明了一些問題可以用二值化神經網絡(BNNs)解決,明顯更簡單的模型,參數可以用1位表示,具有與全精度模型相似的性能。我們提出并演示了一種簡單的混合整數規劃方法來驗證它們,并表明該方法具有良好的可擴展性。最后,我們提出了一種深度強化學習算法,類似于使用BNN作為函數逼近器的深度Q學習算法。我們再次表明,這種方法能夠犧牲少量性能,并獲得可擴展的驗證。
快速增長的現實世界網絡,擁有數十億個頂點,需要可擴展的、快速的和高效的圖算法。幸運的是,商業化的多核、多處理器和多機環境可以處理如此大量的數據。不幸的是,盡管有這樣的資源,許多目前的圖算法并沒有充分利用這些并行和分布式環境,或者有非最佳的理論保證,在實踐中轉化為更慢和更不有效的算法。本論文的目的是在理論上改進現代機器中以前的圖算法。我們通過實驗證明,這種理論上的改進也會轉化為實際的收益。
為了實現這一目標,本論文采取了雙管齊下的方法。首先,我們在模仿大規模數據處理環境的計算模型中制定算法。這種模型中的算法利用了機器集群和一個機器的多個核和處理器的優勢。第二,我們在設計算法時使用了現實世界網絡的特殊屬性。退化就是這樣一個特性;雖然一個網絡可能有數十億個頂點,但其退化可能只有幾百個。
本論文由三部分組成。
第一部分介紹了靜態圖算法。我們首先介紹了一套新的編輯算法,該框架通過將圖編輯成所需的結構化類別,針對難以解決的優化問題來逼近其解決方案。然后,我們提出了新的小子圖計數算法,在大規模并行計算模型中具有更好的理論空間和回合保證;我們的實驗證實了我們的理論成果,并顯示在現實世界的圖中,與以前的最先進的算法相比,回合數和近似系數都有所改善。在這一部分的最后,我們提出了一個近乎線性的時間調度算法,用于在具有通信延遲的相同機器上進行調度,其中優先權受限的工作被建模為有向無環圖。
第二部分主要討論動態圖算法。我們首先展示了一個??(1)的攤銷時間,高概率的(?+1)-頂點著色的動態算法。然后,我們為批量動態更新下的??核分解問題提供了一個新的并行級數據結構(其中動態邊緣更新是分批進行的)。我們表明,我們的數據結構可以證明對每個頂點的核心性提供了(2+??)的近似值,改進了以前已知的(4+??)的最佳約束。最后,我們提出了新的三角形和團計數的并行、高效批處理動態算法。我們對批處理動態算法的廣泛實驗,結果表明,在現實世界的網絡中,我們的性能比以前最好的多核算法實現了數量級的提高。
最后一部分是關于下限的結論。我們通過硬實例展示了在外部存儲器模型中,在有向無環計算圖上獲得最優計算時間表的困難性。然后,我們證明這種圖可以用來構建靜態-內存-硬哈希函數,使用磁盤內存來阻止大規模密碼破解攻擊。
在本文中,我們研究了生成模型的幾個重要標準,并引入評價指標來解決每個問題,同時討論了生成模型評價中的上述問題。特別是,我們研究了測量生成輸出的感知現實主義的挑戰,并引入了一個人在循環中的評估系統,利用心理物理學理論,以人類知覺文獻和眾包技術為基礎,構建一個高效、可靠、并采用一致的方法比較不同的模型。除此之外,我們還分析了解纏性(Disentanglement),這是評估已學習表示的一個日益重要的特性,通過使用持久同調測量生成模型數據流形的內在特性。
在生態學、流行病學和天文學等許多應用領域中,仿真模型被用來研究發生在自然界中的復雜現象。通常,這些模型的似然函數的分析形式要么是不可用的,要么是太昂貴而無法評估,從而使統計推斷復雜化。無概率推理(LFI)方法,如近似貝葉斯計算(ABC),基于用模型的正演模擬代替難以處理的似然評估,已成為對仿真模型進行推理的一種流行方法。然而,當前的LFI方法在計算和統計方面存在一些挑戰。特別是,標準的ABC算法需要大量的仿真,這使得它們在前向仿真代價昂貴的情況下不可行。
本文討論了計算代價高的模型的無概率推理。主要貢獻是基于高斯過程代理模型的LFI一致性框架。GP模型允許對仿真模型輸出的平滑假設進行編碼,以減少所需的仿真量。此外,由于模擬預算有限,所產生的基于模型的后驗逼近的不確定性可以被量化。我們提出貝葉斯實驗設計策略來選擇評估地點,以使計算成本最小化。順序設計(每次選擇一個模擬)和批處理策略(允許利用并行計算)都是推導出來的。除了LFI場景外,本文提出的方法也適用于可能性可以評估但代價昂貴的情況。
本質上,所提出的框架可以被視為概率數值方法的LFI對等物,如貝葉斯優化,用于優化昂貴的目標函數,貝葉斯求積,用于計算昂貴函數的積分。我們通過大量的經驗模擬證明了所提出的LFI方法的優點。文中還對所提算法進行了理論分析,并討論了它們與其他GP代理方法的關系。
過去的十年見證了深度學習(DL)應用數據量的巨大增長。因此,深度神經網絡(DNNs)的訓練時間過長已經成為機器學習(ML)開發者和研究者的瓶頸。例如,在8個P100 gpu上完成90-epoch ImageNet/ResNet-50的訓練需要29個小時。在16個v3 TPU芯片上完成BERT預訓練需要81小時。本文主要研究的是快速準確的ML訓練。盡管生產團隊希望充分利用超級計算機來加速訓練過程,但傳統的優化器無法擴展到數千個處理器。在本論文中,我們設計了一系列基本的優化算法來提高DL系統的并行度。我們的算法為谷歌、英特爾、騰訊、英偉達等最先進的分布式系統提供支持。本文的重點是彌合高性能計算(HPC)和ML之間的差距。
在2017年HPC和ML之間有很大的差距。一方面,我們擁有強大的超級計算機,每秒可以執行2x10^17個浮點運算。另一方面,我們甚至不能充分利用1%的計算能力來訓練一個最先進的機器學習模型。原因是超級計算機需要極高的并行度才能達到其峰值性能。然而,高并行性導致ML優化器的收斂性很差。為了解決這個問題,我和我的合著者提出了LARS優化器、LAMB優化器和CA-SVM框架。這些新方法使ML訓練擴展到數千個處理器而不會失去準確性。在過去的三年里,我們觀察到ResNet-50的訓練時間從29小時下降到67.1秒。事實上,自2017年12月以來,所有最先進的ImageNet訓練速度記錄都是由LARS創造的。LARS在MLPerf v0.6中成為行業指標。此外,即使沒有超級計算機,我們的方法也比現有的求解器要快。如果我們固定訓練預算(例如1個GPU 1小時),我們的優化器可以達到一個更高的精度比最先進的基線。