特斯拉前AI總監(jiān)Karpathy瘋狂點(diǎn)贊:單張A100,10秒訓(xùn)練CIFAR-10,破世界紀(jì)錄!
刷新世界紀(jì)錄!
用600行代碼,在單張A100上,不到10秒,就完成了CIFAR-10數(shù)據(jù)集的訓(xùn)練,并且精度高達(dá)94%。
特斯拉前AI總監(jiān)Andrej Karpathy連發(fā)3條推特,瘋狂點(diǎn)贊。

Karpathy之所以如此激動,是因?yàn)?2年前,他試過手動對CIFAR-10進(jìn)行分類,得到的也是94%!而當(dāng)時(shí)的SOTA只有80%。
項(xiàng)目介紹

項(xiàng)目地址:https://github.com/tysam-code/hlb-CIFAR10
這段代碼可以在Colab上直接使用,事實(shí)上——其中大部分是在Colab中開發(fā)的。
這位叫Tysam的小哥,給自己定下的目標(biāo)是——
- 簡單
 - 初學(xué)者友好
 - 只需torch和python的常用代碼
 - 幾乎不用外部依賴(目前只有torch和torchvision)
 - 破世界紀(jì)錄的單GPU訓(xùn)練時(shí)間(此前在A100上的世界紀(jì)錄是18.1秒,而Tysam打破了世界紀(jì)錄——小于10秒)
 - 在2年內(nèi)讓訓(xùn)練時(shí)間小于2秒
 
為了達(dá)成快速訓(xùn)練的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),Tysam參考了David Page在CIFAR-10圖像分類數(shù)據(jù)集上有效訓(xùn)練殘差網(wǎng)絡(luò)的代碼,但幾乎是從頭編寫的。

這種做法的好處是,Tysam code現(xiàn)在保持著CIFAR-10上單GPU訓(xùn)練速度的世界紀(jì)錄——在A100上不到10秒!
在David Page代碼的基礎(chǔ)上,Tysam做了如下改動:
- 壓縮和激勵(lì)層(squeeze and excite layers)
 - 非常多的超參數(shù)調(diào)整
 - 復(fù)雜架構(gòu)修剪(miscellaneous architecture trimmings)
 - 更改內(nèi)存格式,更好地使用張量核心等
 - 其他
 
與原始代碼相比,Tysam的代碼全部都在一個(gè)文件中,而且非常扁平flat。
此外,所有的管線也都已經(jīng)公開,有興趣的朋友可以在里面快速探索自己的想法。
至于為什么會選擇ConvNet,而不是現(xiàn)在最流行的Transformer呢?
在Tysam看來,雖然Transformer是新事物,但信息從訓(xùn)練集中壓縮到神經(jīng)網(wǎng)絡(luò)中的方式,實(shí)際上始終都遵循著同樣的一套基本數(shù)學(xué)原理。
Tysam希望,在一兩年內(nèi)讓這個(gè)代碼庫在2秒內(nèi)完成訓(xùn)練,在四到五年內(nèi)在1秒內(nèi)完成訓(xùn)練。
Karpathy瘋狂點(diǎn)贊
對于Tysam的代碼,Karpathy贊嘆不已,他絲毫不吝嗇自己的溢美之辭——
「我喜歡這種極簡的設(shè)計(jì)美學(xué),它讓閱讀代碼不再是精疲力竭的尋寶過程。你不需要把代碼散布在復(fù)雜的嵌套目錄結(jié)構(gòu)之中,然后用各種指令把事情搞得過于復(fù)雜。」

隨后,Karpathy還表示,這讓他想起了自己在12年前做的測試:
12年前,「肉眼」分類實(shí)現(xiàn)了94%的準(zhǔn)確率,用時(shí)未知。
12年后,600行代碼實(shí)現(xiàn)了94%的準(zhǔn)確率,用時(shí)不到10秒。

當(dāng)時(shí)的過程大概是:
在一個(gè)平平無奇的周末,Karpathy突然想看看人類在這個(gè)數(shù)據(jù)集上能達(dá)到什么樣的精度。
于是就快速地手搓了一段MATLAB代碼用于測試。
界面長這個(gè)樣子:

在測試過程中,程序首先會一張一張圖片地展示,然后Karpathy會按下0-9(10個(gè)鍵),對應(yīng)這張圖他所認(rèn)為的類別(10個(gè)分類)。
在經(jīng)過了不知道多長時(shí)間之后,Karpathy終于完成了400張圖片的分類,準(zhǔn)確率為94%左右。
那么,為什么不是100%呢?
Karpathy:「因?yàn)橛行﹫D像真的太扯了!」
比如下面這幾個(gè):

也難怪Karpathy當(dāng)年預(yù)測AI所能達(dá)到的極限是85-90%(笑)。
當(dāng)然,后來的結(jié)果大家也都知道了,CIFAR-10分類的準(zhǔn)確率早就被刷到了99.5%。

著名的CIFAR-10
眾所周知,CIFAR-10是由Geoffrey Hinton和他的學(xué)生Alex Krizhevsky和Ilya Sutskever整理的一個(gè)用于識別普適物體的小型數(shù)據(jù)集,也是如今機(jī)器學(xué)習(xí)研究中最廣泛使用的數(shù)據(jù)集之一。
CIFAR-10數(shù)據(jù)集由10類32x32的彩色圖片組成,總共包含60000張圖片,其中50000張圖片作為訓(xùn)練集,10000張圖片作為測試集。
這10個(gè)類別為:飛機(jī)( airplane )、汽車( automobile )、鳥類( bird )、貓( cat )、鹿( deer )、狗( dog )、蛙類( frog )、馬( horse )、船( ship )和卡車( truck )。

?參考資料:https://github.com/tysam-code/hlb-CIFAR10
















 
 
 











 
 
 
 