Speech Notes - Hardware-Centric AutoML, Design Automation for Efficient Deep Learning Computing

2019/01/09 Song Han 教授演講速記

Posted by Jexus on January 9, 2019

Recently by the same author:


美國 EECS 博士班申請經驗分享 (ML/DL/NLP/Speech)

2021 Fall NLP/Speech PhD Application

You may find interesting:


Enabling Artificial Intelligence at The Edge

2018/04/30 intelliGo意騰科技CTO 邊緣運算 - 演講速記


Nicky Lu Speech Notes

2018/03/12 盧超群董事長電子所專題演講 - 演講速記

Hardware-Centric AutoML: Design Automation for Efficient Deep Learning Computing

這筆記很早已前就做了(今天是2019/12/03),現在才想到要放。當天演講很深刻的一點是,講者想要表達,過去我們做電路 IC design,只要寫 RTL code 定義好功能,接下來使用 EDA tools 來優化就好,這樣的分工體系十分有效率。這樣的流程,未來將重現在 Deep Learning 領域,到時候可能只需要定義好 Network 功能大架構及 training data,剩下的交給 AutoML、NAS 生出 network,並且再透過pruning、quantization等優化到晶片上,又小又快,不用再透過大量人工調參達成目的。

前言

  • ImageNet become MNIST
  • moore’s law 放緩

實驗室在做啥

  • video understanding
  • 3d recognition
  • architecture search
  • deep compression
  • sparsity
  • multi-precise

當前work

Pruning(NIPS’15)

  • PhD時期就開始做的
  • 有生物學基礎,如人嬰幼兒時期也會大量pruning自己的神經元
  • pruning到一個程度之後,準確率會下降,不過沒關係,維持該架構重新再train,準確率回復到原本,就這樣持續做幾個iteration,甚至可以刪到剩下90%而準確率幾乎沒有下降,CNN可以,RNN LSTM也可以(一開始訓練,network的冗餘是必要的)
  • 這個東西已經上市了=>在DNNDK裡面(DEEPHi)
  • 對於Object detection task 可以提供 5.7倍的speed up

Trained quantization(ICLR’16) 最小4bit就夠了~

  • 從32bit減到8bit,最基本方法是小的權重就刪掉
  • Pruning + Quantization 這兩步驟成為標準pipeline => 開公司了~深鑒科技
  • 在pruning完之後,再做稀疏化處理矩陣,做儲存所需空間更小,可以稀疏到90%
  • 做馬路上的object detection,要做成real time,還沒壓縮,只能16FPS,很卡,壓縮了90%之後,可以125FPS,超強的。

AutoML for Model Compression (AMC)

  • 太多公司都在做硬體上面放DNN,因此一堆人都需要一樣的技術,害他們公司很忙,如果每個model都需要人來做Pruning + Quantization實在是太累太花人力了。於是他們就想到,人們以前做IC design的時候也是看layout畫得很累,於是想要自動化,就跑出EDA這個領域,現在做Deep Learning壓縮好像遇到一樣的問題,也是可以如法炮製,做一個Hardware-aware AutoML

  • 用RL學習自動決定如何刪除冗餘的網路,reward是錯誤率,想不到跟手動調參壓縮比起來會完勝,而且只花了四個小時,準確率更高了,計算量跟accuracy都上升了。

  • AMC之後發現,3x3的kernel被砍最嚴重,1x1的kernel被砍最少,這是人在手動調參壓縮Model時沒有觀察到的。在object detection的model上可以壓得非常多。

  • sumsung手機使用了此技術,雖然沒有提供sparsity稀疏化矩陣運算,但是直接砍掉一些channel也達成很好的效能提升而不失正確率。

ProxylessNAS

  • 能不能直接設計高效率的model,為不同的硬體直接設計她們適合的model架構呢? GPU跟CPU跟手機晶片適合的架構一定不一樣,於是就有了NAS(neural architecture search)
  • 一樣用RL的方法,硬體延遲latency透過公式建模也是可以微分的,就直接當成reward,把硬體的耗能也當成reward,硬train一發,最後發現estimate的latency跟實際的latency幾乎一樣,而結果準確率上升,latency下降,比人類自己設計的還好。

自動化Quantization(HAQ)

  • 其實蘋果發布會上晶片就有號稱multiprecistion support,也就是支援各種浮點數運算
  • 用actor-critic的方法做,發現機器學習到pointwise need less bits,depthwise need more bits

From 2D conv to 3D conv

  • temporal modeling ,也就是判斷video的連續動作及預測,需要用3D CNN來做才行,但是運算量爆幹大,於是作出TSM video model,讓他可以用2D conv的運算量實現3D conv。throughput 變很短。

AI assisted CAD tools

  • 尤其是類比電路,因為不像數位電路有EDA,沒有自動化工具,特別需要

  • 設計電路參數,現在用seq2seq做,讀了一個電路,輸出個個電晶體所需的W(channel width)、L(channel length)、R(resistor)、C(capacitor),不再需要人來設計電路,而是由機器來調參,這次是電路的參數,以後就不用靠人IC design惹。

  • Design automation for neural networks