蘋(píng)果「一呼百應(yīng)」的號(hào)召力在機(jī)器學(xué)習(xí)領(lǐng)域似乎也不例外。新版 Mac 推出還不到兩周,谷歌就把專(zhuān)為 Mac 優(yōu)化的 TensorFlow 版本做好了,訓(xùn)練速度最高提升到原來(lái)的 7 倍。
對(duì)于開(kāi)發(fā)者、工程師、科研工作者來(lái)說(shuō),Mac 一直是非常受歡迎的平臺(tái),也有人用 Mac 訓(xùn)練神經(jīng)網(wǎng)絡(luò),但訓(xùn)練速度一直是一個(gè)令人頭疼的問(wèn)題。
上周,蘋(píng)果發(fā)布了搭載 Arm 架構(gòu) M1 芯片的三款新 Mac,于是就有人想問(wèn):用它們訓(xùn)練神經(jīng)網(wǎng)絡(luò)能快一點(diǎn)嗎?
今天,主流機(jī)器學(xué)習(xí)框架 TensorFlow 發(fā)文表示:我們專(zhuān)門(mén)做了一版為 Mac 用戶優(yōu)化的 TensorFlow 2.4 框架,M1 版 Mac 和英特爾版 Mac 都能用。這一舉動(dòng)有望大幅降低模型訓(xùn)練和部署的門(mén)檻。
此前,在 Mac 上,TensorFlow 僅支持將 CPU 用于訓(xùn)練,但新的 tensorflow_macos 分支利用蘋(píng)果的 ML Compute,能讓 GPU 也被利用起來(lái)。蘋(píng)果在博客中介紹說(shuō):「我們使用了更高級(jí)別的優(yōu)化方法,比如熔合層,選擇合適的設(shè)備類(lèi)型,將圖作為原語(yǔ)編譯、執(zhí)行并由 CPU 上的 BNNS 和 GPU 上的 Metal Performance Shader 加速?!?/p>
ML Compute 是蘋(píng)果公司今年推出的新框架,可用于在 Mac 上進(jìn)行 TensorFlow 模型的訓(xùn)練?,F(xiàn)在,無(wú)論新的 M1 版 Mac 還是舊的英特爾版 Mac,其 CPU 和 GPU 都能用來(lái)加快訓(xùn)練速度。
M1 芯片包含新的 8 核 CPU 和最多 8 核的 GPU,并針對(duì) Mac 的機(jī)器學(xué)習(xí)訓(xùn)練任務(wù)進(jìn)行了優(yōu)化。下面兩張圖表分別展示了針對(duì) Mac 優(yōu)化后的 TensorFlow 2.4 在不同模型訓(xùn)練中的性能提升:
上圖展示了使用 ML Compute 分別在搭載 M1 和英特爾芯片的 13 英寸 MacBook Pro 上進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練的情況。柱形的高度代表單批次的訓(xùn)練時(shí)長(zhǎng)??梢钥闯?,優(yōu)化后的 Mac 版 TensorFlow 2.4 的訓(xùn)練速度得到了明顯提升。在換成 M1 版的新 MacBook Pro 之后,提升就更為明顯了,訓(xùn)練速度最高提升了 7 倍。
同樣使用 ML Compute,在搭載英特爾芯片的 2019 Mac Pro 上進(jìn)行常見(jiàn)模型的訓(xùn)練,性能提升也相當(dāng)明顯。
TensorFlow 官方表示,用戶不需要對(duì)現(xiàn)有的 TensorFlow 腳本做任何更改,就可以使用 ML Compute 作為 TensorFlow 和 TensorFlow 插件的后端。
Mac 版 TensorFlow 2.4 的詳細(xì)入門(mén)指南可以參見(jiàn):https://github.com/apple/tensorflow_macos
M1 版 Mac 對(duì)機(jī)器學(xué)習(xí)用戶的影響
蘋(píng)果曾在發(fā)布會(huì)上介紹說(shuō),M1 芯片將蘋(píng)果的神經(jīng)網(wǎng)絡(luò)引擎引入了 Mac,實(shí)現(xiàn)了 15 倍的機(jī)器學(xué)習(xí)任務(wù)加速。該神經(jīng)網(wǎng)絡(luò)引擎有 16 個(gè)核心,每秒運(yùn)算速度可達(dá) 11 萬(wàn)億次。除此之外,配置了 ML 加速器的 CPU 和強(qiáng)大 GPU(稱霸集顯,媲美部分獨(dú)顯)也使得整個(gè) M1 芯片的機(jī)器學(xué)習(xí)能力得到巨大提升。
圖源:https://medium.com/disruptive-nerd/how-is-the-apple-m1-going-to-affect-machine-learning-2d9da1beef86
性能的提升毋庸置疑,但軟件兼容也是一個(gè)很大的問(wèn)題。在 M1 版 Mac 發(fā)布之后,不少開(kāi)發(fā)者都在問(wèn):我的 VS Code/Docker/Juypter Notebook…… 還能在新 Mac 上用嗎?
VSCode:最快月底就能做出來(lái)
在蘋(píng)果發(fā)布會(huì)之后不久,微軟 VS Code 團(tuán)隊(duì)就發(fā)文表示,「VS Code 將支持 ARM 版 Mac,11 月底可能推出首個(gè)預(yù)覽版。」
Mac/ARM64 試驗(yàn)版地址 https://code.visualstudio.com/insiders/#osx
此外,微軟還宣布將發(fā)布一款新的通用版 Mac Office 2019,支持新版蘋(píng)果處理器。
Docker:在安排,但還沒(méi)準(zhǔn)備好
在 11 月 16 日的一篇博客中,Docker 的開(kāi)發(fā)者表示,他們還沒(méi)有準(zhǔn)備好讓 Docker 在 M1 版 Mac 上運(yùn)行,在這之前還需要做很多準(zhǔn)備。
Docker 表示,「我們 Docker 的目標(biāo)是在新的 Mac 上提供與今天在 Docker Desktop for Mac 上同樣出色的體驗(yàn),并使這種過(guò)渡盡可能地?zé)o縫?!埂笧槲覀兊目蛻舸蛟旌线m的體驗(yàn)意味著在我們推送一個(gè)版本之前,要把不少事情做好。雖然蘋(píng)果已經(jīng)發(fā)布了 Rosetta 2 轉(zhuǎn)譯器,以幫助將應(yīng)用程序轉(zhuǎn)移到新的 M1 芯片上,但這并不能讓我們與 Docker Desktop 一路同行?!?/p>
至于 Juypter Notebook 等軟件,目前還沒(méi)有官方消息放出。不過(guò),隨著蘋(píng)果不斷將生態(tài)打通,正在有越來(lái)越多的軟件開(kāi)發(fā)商表示將開(kāi)發(fā)適配 M1 版 Mac 的新產(chǎn)品。