摘要:谷歌也不例外,在大會中介紹了人工智能近期的發(fā)展及其對計算機系統(tǒng)設(shè)計的影響,同時他也對進行了詳細介紹。表示,在谷歌產(chǎn)品中的應(yīng)用已經(jīng)超過了個月,用于搜索神經(jīng)機器翻譯的系統(tǒng)等。此外,學(xué)習(xí)優(yōu)化更新規(guī)則也是自動機器學(xué)習(xí)趨勢中的一個信號。
在剛剛結(jié)束的 2017 年國際高性能微處理器研討會(Hot Chips 2017)上,微軟、百度、英特爾等公司都發(fā)布了一系列硬件方面的新信息,比如微軟的 Project Brainwave、百度的 XPU、英特爾的 14nm FPGA 解決方案等。谷歌也不例外,在大會 keynote 中 Jeff Dean 介紹了人工智能近期的發(fā)展及其對計算機系統(tǒng)設(shè)計的影響,同時他也對 TPU、TensorFlow 進行了詳細介紹。文末提供了該演講資料的下載地址。
在演講中,Jeff Dean 首先介紹了深度學(xué)習(xí)的崛起(及其原因),谷歌在自動駕駛、醫(yī)療健康等領(lǐng)域取得的進展。
Jeff Dean 表示,隨著深度學(xué)習(xí)的發(fā)展,我們需要更多的計算能力,而深度學(xué)習(xí)也正在改變我們設(shè)計計算機的能力。
我們知道,谷歌設(shè)計了 TPU 專門進行神經(jīng)網(wǎng)絡(luò)推斷。Jeff Dean 表示,TPU 在谷歌產(chǎn)品中的應(yīng)用已經(jīng)超過了 30 個月,用于搜索、神經(jīng)機器翻譯、DeepMind 的 AlphaGo 系統(tǒng)等。
但部署人工智能不只是推斷,還有訓(xùn)練階段。TPU 能夠助力推斷,我們又該如何加速訓(xùn)練?訓(xùn)練的加速非常的重要:無論是對產(chǎn)品化還是對解決大量的難題。
為了同時加速神經(jīng)網(wǎng)絡(luò)的推斷與訓(xùn)練,谷歌設(shè)計了 TPU 二代。TPU 二代芯片的性能如下圖所示:
除了上圖所述意外,TPU 二代的特點還有:
每秒的浮點運算是 180 ?teraflops,64 GB 的 HBM 存儲,2400 GB/S 的存儲帶寬
設(shè)計上,TPU 二代可以組合連接成大型配置
下圖是 TPU 組成的大型配置:由 64 塊 TPU 二代組成,每秒 11.5 千萬億次浮點運算,4 太字節(jié)的 HBM 存儲。
在擁有強大的硬件之后,我們需要更強大的深度學(xué)習(xí)框架來支持這些硬件和編程語言,因為快速增長的機器學(xué)習(xí)和深度學(xué)習(xí)需要硬件和軟件都能具備強大的擴展能力。因此,Jeff Dean 還詳細介紹了最開始由谷歌開發(fā)的深度學(xué)習(xí)框架 TensorFlow。
深度學(xué)習(xí)框架 TensorFlow
TensorFlow 是一種采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計算的開源軟件庫。其中 Tensor 代表傳遞的數(shù)據(jù)為張量(多維數(shù)組),F(xiàn)low 代表使用計算圖進行運算。數(shù)據(jù)流圖用「節(jié)點」(nodes)和「邊」(edges)組成的有向圖來描述數(shù)學(xué)運算。
TensorFlow 的目標是建立一個可以表達和分享機器學(xué)習(xí)觀點與系統(tǒng)的公共平臺。該平臺是開源的,所以它不僅是谷歌的平臺,同時是所有機器學(xué)習(xí)開發(fā)者和研究人員的平臺,谷歌和所有機器學(xué)習(xí)開源社區(qū)的研究者都在努力使 TensorFlow 成為研究和產(chǎn)品上較好的機器學(xué)習(xí)平臺。
下面是 TensorFlow 項目近年來在 Github 上的關(guān)注度,我們可以看到 TensorFlow 是所有同類深度學(xué)習(xí)框架中關(guān)注度較大的項目。
TensorFlow:一個充滿活力的開源社區(qū)
TensorFlow 發(fā)展迅速,有很多谷歌外部的開發(fā)人員
超過 800 多位 TensorFlow 開發(fā)人員(非谷歌人員)。
21 個月內(nèi) Github 上有超過 21000 多條貢獻和修改。
許多社區(qū)編寫了 TensorFlow 的教程、模型、翻譯和項目
超過 16000 個 Github 項目在項目名中包含了「TensorFlow」字段
社區(qū)與 TensorFlow 團隊之間的直接聯(lián)合
5000+已回答的 Stack Overflow 問題
80+ 每周解答的社區(qū)提交的 GitHub 問題
通過 TensorFlow 編程
在 TensorFlow 中,一個模型可能只需要一點點修改就能在 CPU、GPU 或 TPU 上運行。前面我們已經(jīng)看到 TPU 的強大之處,Jeff Dean 表明,對于從事開放性機器學(xué)習(xí)研究的科學(xué)家,谷歌可以免費提供 1000 塊云 TPU 來支持他們的研究。Jeff Dean 說:「我們很高興研究者能在更強勁的計算力下進行更杰出的研究」
TensorFlow Research Cloud 申請地址:https://services.google.com/fb/forms/tpusignup/
機器學(xué)習(xí)需要在各種環(huán)境中運行,我們可以在下面看到 TensorFlow 所支持的各種平臺和編程語言。
除此之外,TensorFlow 還支持各種編程語言,如 Python、C++、Java、C#、R、Go 等。
TensorFlow 非常重要的一點就是計算圖,我們一般需要先定義整個模型需要的計算圖,然后再執(zhí)行計算圖進行運算。在計算圖中,「節(jié)點」一般用來表示施加的數(shù)學(xué)操作,但也可以表示數(shù)據(jù)輸入的起點和輸出的終點,或者是讀取/寫入持久變量(persistent variable)的終點。邊表示節(jié)點之間的輸入/輸出關(guān)系。這些數(shù)據(jù)邊可以傳送維度可動態(tài)調(diào)整的多維數(shù)據(jù)數(shù)組,即張量(tensor)。
如下是使用 TensorFlow 和 Python 代碼定義一個計算圖:
在 Tensorflow 中,所有不同的變量和運算都儲存在計算圖。所以在我們構(gòu)建完模型所需要的圖之后,還需要打開一個會話(Session)來運行整個計算圖。在會話中,我們可以將所有計算分配到可用的 CPU 和 GPU 資源中。
如下所示代碼,我們聲明兩個常量 a 和 b,并且定義一個加法運算。但它并不會輸出計算結(jié)果,因為我們只是定義了一張圖,而沒有運行它:
a=tf.constant([1,2],name="a")
b=tf.constant([2,4],name="b")
result = a+b
print(result)
#輸出:Tensor("add:0", shape=(2,), dtype=int32)
下面的代碼才會輸出計算結(jié)果,因為我們需要創(chuàng)建一個會話才能管理 TensorFlow 運行時的所有資源。但計算完畢后需要關(guān)閉會話來幫助系統(tǒng)回收資源,不然就會出現(xiàn)資源泄漏的問題。下面提供了使用會話的兩種方式:
a=tf.constant([1,2,3,4])
b=tf.constant([1,2,3,4])
result=a+b
sess=tf.Session()
print(sess.run(result))
sess.close
#輸出 [2 4 6 8]
with tf.Session() as sess:
? ? a=tf.constant([1,2,3,4])
? ? b=tf.constant([1,2,3,4])
? ? result=a+b
? ? print(sess.run(result))
? ??
#輸出 [2 4 6 8]
TensorFlow + XLA 編譯器
XLA(Accelerated Linear Algebra)是一種特定領(lǐng)域的編譯器,它極好地支持線性代數(shù),所以能很大程度地優(yōu)化 TensorFlow 的計算。使用 XLA 編譯器,TensorFlow 的運算將在速度、內(nèi)存使用和概率計算上得到大幅度提升。
XLA 編譯器詳細介紹: https://www.tensorflow.org/performance/xla/
XLA 編譯器開源代碼: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/compiler
TensorFlow 的優(yōu)勢
高性能機器學(xué)習(xí)模型
對于大型模型來說,模型并行化處理是極其重要的,因為單個模型的訓(xùn)練時間太長以至于我們很難對這些模型進行反復(fù)的修改。因此,在多個計算設(shè)備中處理模型并取得優(yōu)秀的性能就十分重要了。如下所示,我們可以將模型分割為四部分,運行在四個 GPU 上。
高性能強化學(xué)習(xí)模型
通過強化學(xué)習(xí)訓(xùn)練的 Placement 模型將圖(graph)作為輸入,并且將一組設(shè)備、輸出設(shè)備作為圖中的節(jié)點。在 Runtime 中,給定強化學(xué)習(xí)的獎勵信號而度量每一步的時間,然后再更新 Placement。
通過強化學(xué)習(xí)優(yōu)化設(shè)備部署(Device Placement Optimization with Reinforcement Learning,ICML 2017)
論文地址:https://arxiv.org/abs/1706.04972
通過強化學(xué)習(xí)優(yōu)化設(shè)備部署
降低推斷成本
開發(fā)人員最怕的就是「我們有十分優(yōu)秀的模型,但它卻需要太多的計算資源而不能部署到邊緣設(shè)備中!」
Geoffrey Hinton 和 Jeff Dean 等人曾發(fā)表過論文 Distilling the Knowledge in a Neural Network。在該篇論文中,他們詳細探討了將知識壓縮到一個集成的單一模型中,因此能使用不同的壓縮方法將復(fù)雜模型部署到低計算能力的設(shè)備中。他們表示這種方法顯著地提升了商業(yè)聲學(xué)模型部署的性能。
論文地址:https://arxiv.org/abs/1503.02531
這種集成方法實現(xiàn)成一個從輸入到輸出的映射函數(shù)。我們會忽略集成中的模型和參數(shù)化的方式而只關(guān)注于這個函數(shù)。以下是 Jeff Dean 介紹這種集成。
訓(xùn)練模型的幾個趨勢
1. 大型、稀疏激活式模型
之所以想要訓(xùn)練這種模型是想要面向大型數(shù)據(jù)集的大型模型容量,但同時也想要單個樣本只激活大型模型的一小部分。
逐個樣本路徑選擇圖
這里,可參考谷歌 Google Brain ICLR 2017 論文《OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER》。
2. 自動機器學(xué)習(xí)
Jeff Dean 介紹說,目前的解決方式是:機器學(xué)習(xí)專家+數(shù)據(jù)+計算。這種解決方案人力的介入非常大。我們能不能把解決方案變成:數(shù)據(jù)+100 倍的計算。
有多個信號讓我們看到,這種方式是可行的:
基于強化學(xué)習(xí)的架構(gòu)搜索學(xué)習(xí)如何優(yōu)化
如 Google Brain ICLR 2017 論文《Neural Architecture Search with Reinforcement Learning》,其思路是通過強化學(xué)習(xí)訓(xùn)練的模型能夠生成模型。
在此論文中,作者們生成了 10 個模型,對它們進行訓(xùn)練(數(shù)個小時),使用生成模型的損失函數(shù)作為強化學(xué)習(xí)的信號。
在 CIFAR-10 圖像識別任務(wù)上,神經(jīng)架構(gòu)搜索的表現(xiàn)與其他較高級成果的表現(xiàn)對比如上圖所示。
上圖是正常的 LSTM 單元與架構(gòu)搜索所發(fā)現(xiàn)的單元圖。
此外,學(xué)習(xí)優(yōu)化更新規(guī)則也是自動機器學(xué)習(xí)趨勢中的一個信號。通常我們使用的都是手動設(shè)計的優(yōu)化器,如下圖所示。
而 Google Brain 在 ICML 2017 的論文《Neural Optimizer Search with Reinforcement Learning》中,就講到了一種學(xué)習(xí)優(yōu)化更新規(guī)則的技術(shù)。神經(jīng)優(yōu)化器搜索如下圖所示:
總結(jié)
最后,Jeff Dean 總結(jié)說,未來人工智能的發(fā)展可能需要結(jié)合以上介紹的所有思路:需要大型、但稀疏激活的模型;需要解決多種任務(wù)的單個模型;大型模型的動態(tài)學(xué)習(xí)和成長路徑;面向機器學(xué)習(xí)超級計算的特定硬件,以及高效匹配這種硬件的機器學(xué)習(xí)方法。
當然,目前在機器學(xué)習(xí)與系統(tǒng)/計算機架構(gòu)的交叉領(lǐng)域還存在一些開放問題,例如:
極為不同的數(shù)值是否合理(例如,1-2 位的激勵值/參數(shù))?
我們?nèi)绾胃咝У奶幚矸浅討B(tài)的模型(每個輸入樣本都有不同的圖)?特別是在特大型機器上。
有沒有方法能夠幫助我們解決當 batch size 更大時,回報變小的難題?
接下來 3-4 年中,重要的機器學(xué)習(xí)算法、方法是什么?
如今,神經(jīng)網(wǎng)絡(luò)與其他方法隨數(shù)據(jù)、模型大小變化的準確率對比圖如下:
未來,可能又是一番境況。
演講PPT地址:http://pan.baidu.com/s/1kVyxeB1
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價值的辦法,實際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4590.html
摘要:今年月,谷歌發(fā)布了。在谷歌內(nèi)部被稱為的方法中,一個控制器神經(jīng)網(wǎng)絡(luò)可以提出一個子模型架構(gòu),然后可以在特定任務(wù)中對其進行訓(xùn)練和評估質(zhì)量。對于整個領(lǐng)域來說,一定是下一個時代發(fā)展重點,并且極有可能是機器學(xué)習(xí)的大殺器。 為什么我們需要 AutoML?在談?wù)撨@個問題之前,我們需要先弄清楚機器學(xué)習(xí)的一般步驟。其實,不論是圖像識別、語音識別還是其他的機器學(xué)習(xí)項目,其結(jié)構(gòu)差別是很小的,一個效果好的模型需要大量...
摘要:三人造神經(jīng)元工作原理及電路實現(xiàn)人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò),縮寫,簡稱神經(jīng)網(wǎng)絡(luò),縮寫,是一種模仿生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能的數(shù)學(xué)模型或計算模型。神經(jīng)網(wǎng)絡(luò)是一種運算模型,由大量的節(jié)點或稱神經(jīng)元,或單元和之間相互聯(lián)接構(gòu)成。 一、與傳統(tǒng)計算機的區(qū)別1946年美籍匈牙利科學(xué)家馮·諾依曼提出存儲程序原理,把程序本身當作數(shù)據(jù)來對待。此后的半個多世紀以來,計算機的發(fā)展取得了巨大的進步,但馮·諾依曼架構(gòu)中信息存儲...
摘要:在與李世石比賽期間,谷歌天才工程師在漢城校區(qū)做了一次關(guān)于智能計算機系統(tǒng)的大規(guī)模深度學(xué)習(xí)的演講。而這些任務(wù)完成后,谷歌已經(jīng)開始進行下一項挑戰(zhàn)了。谷歌深度神經(jīng)網(wǎng)絡(luò)小歷史谷歌大腦計劃于年啟動,聚焦于真正推動神經(jīng)網(wǎng)絡(luò)科學(xué)能達到的較先進的技術(shù)。 在AlphaGo與李世石比賽期間,谷歌天才工程師Jeff Dean在Google Campus漢城校區(qū)做了一次關(guān)于智能計算機系統(tǒng)的大規(guī)模深度學(xué)習(xí)(Large-...
摘要:深度學(xué)習(xí)現(xiàn)在被視為能夠超越那些更加直接的機器學(xué)習(xí)的關(guān)鍵一步。的加入只是谷歌那一季一系列重大聘任之一。當下谷歌醉心于深度學(xué)習(xí),顯然是認為這將引發(fā)下一代搜索的重大突破。移動計算的出現(xiàn)已經(jīng)迫使谷歌改變搜索引擎的本質(zhì)特征。 Geoffrey Hiton說:我需要了解一下你的背景,你有理科學(xué)位嗎?Hiton站在位于加利福尼亞山景城谷歌園區(qū)辦公室的一塊白板前,2013年他以杰出研究者身份加入這家公司。H...
摘要:我的核心觀點是盡管我提出了這么多問題,但我不認為我們需要放棄深度學(xué)習(xí)。對于層級特征,深度學(xué)習(xí)是非常好,也許是有史以來效果較好的。認為有問題的是監(jiān)督學(xué)習(xí),并非深度學(xué)習(xí)。但是,其他監(jiān)督學(xué)習(xí)技術(shù)同病相連,無法真正幫助深度學(xué)習(xí)。 所有真理必經(jīng)過三個階段:第一,被嘲笑;第二,被激烈反對;第三,被不證自明地接受?!灞救A(德國哲學(xué)家,1788-1860)在上篇文章中(參見:打響新年第一炮,Gary M...
閱讀 841·2023-04-25 22:13
閱讀 2351·2019-08-30 15:56
閱讀 2234·2019-08-30 11:21
閱讀 661·2019-08-30 11:13
閱讀 2029·2019-08-26 14:06
閱讀 1966·2019-08-26 12:11
閱讀 2297·2019-08-23 16:55
閱讀 546·2019-08-23 15:30