最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Pathways 論文精讀【論文精讀】

2022-05-06 14:37 作者:如果我是泡橘子  | 我要投稿

Pathways: Asynchronous Distributed Dataflow for ML


  • Pathways 語言模型由 Google 發(fā)布,該模型的一大亮點是做到了 5400 億個可學(xué)習(xí)的參數(shù)



作者在博客(https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html)中解釋了一下為什么要使用這么大的模型




  • 上面 3 張圖展示了當(dāng)參數(shù)從 8 億開始的時候能做幾個簡單的任務(wù),但是隨著模型大小的增加,能做的任務(wù)就會變得越來越多



本視頻主要是基于 Pathways 整個模型背后的系統(tǒng)進行講解,原因如下

1、博客中所闡述的性能非常厲害的。整個模型用了 4096 塊 TPU v3 的芯片,達到了 57.8% 的應(yīng)用使用率

  • 對于芯片來講有一個非常重要的指標(biāo):每秒鐘所能計算的浮點運算的數(shù)量,現(xiàn)在通常是幾百 T (但是也不用特別迷信這個數(shù)字,因為從硬件制造的角度來說,這個數(shù)字可以通過硬件的堆積將這個數(shù)字增加到很高的程度,所以更加重要的是在實際任務(wù)中所能真正達到的計算的峰值)
  • 這里的 57.8% 意味著能達到理論峰值的一倍以上。作為對比,在 GPU 上目前做的比較好的大概能達到 60% 或者稍微多一點。所以如果不考慮在 GPU 和 TPU 上計算利用率的細微差別的話,57.8% 這個數(shù)字已經(jīng)是非常高了

2、這篇文章匯聚了 Google 的兩位技術(shù)大神 Jeff 和 Sanjay





標(biāo)題


“Pathways:”

  • 系統(tǒng)文章取名最常見的方法,使用系統(tǒng)名字加冒號來告訴讀者是個什么樣的系統(tǒng)



Asynchronous Distributed Dataflow for ML

  • 針對機器學(xué)習(xí)的異步的分布式的數(shù)據(jù)流





作者


Jeff Dean

  • lead of Google AI
  • 出名的工作包括:Bigtable,MapReduce 以及 TensorFlow 等



Sanjay Ghemawat





背景介紹


Introducing Pathways: A next-generation AI architecture


  • 這篇博客由 Jeff 寫于 2021 年10月



標(biāo)題


介紹一下 pathways ,下一代的 AI 架構(gòu)



核心思想



這個 AI 系統(tǒng)能夠處理非常多的任務(wù)(multimodality)


但是有一點區(qū)別是系統(tǒng)中其實有非常多的模型,當(dāng)接到一個任務(wù)之后可以通過稀疏調(diào)用來調(diào)用這些模型(就像是人的大腦一樣有很多不同的區(qū)塊,每個區(qū)塊可能是一個比較大的深度學(xué)習(xí)模型,在接到一個任務(wù)的時候觸發(fā)不同的模型,在更新的時候也可以根據(jù)特定的數(shù)據(jù)更新特定的模型,或者使用大批的數(shù)據(jù)對模型進行更新)


和現(xiàn)在主要關(guān)心的深度學(xué)習(xí)的模型區(qū)別主要有兩點:

1、系統(tǒng)中可以有非常大和非常多的模型

  • 整個模型的參數(shù)可以達到萬億級別或者更大的規(guī)模
  • 每個模型可能處理不一樣的數(shù)據(jù)


2、系統(tǒng)中模型的連接是比較稀疏的

  • 現(xiàn)在一般的模型在接到一個任務(wù)之后所有的神經(jīng)元都會觸發(fā),而 Pathways 系統(tǒng)只會觸發(fā)特定的神經(jīng)元



這是 Jeff 的一個早期的暢想,也可能是這個項目最終的目標(biāo),本視頻所講解的系統(tǒng)也叫做 Pathways 但是跟博客中所描述的還是有一定的區(qū)別





摘要


論文所講述的是針對加速器使用的一個新的大規(guī)模的編排層的設(shè)計

  • 編排層:在語音上有很多服務(wù),當(dāng)接到服務(wù)的計算任務(wù)后怎樣將它映射到下面的計算資源進行調(diào)度和管理



Pathways 是被設(shè)計用來使得探索新的系統(tǒng)和機器學(xué)習(xí)研究中新的想法變得更加方便,同時也能達到很好的性能





導(dǎo)言


近年來,整個機器學(xué)習(xí)的模型是跟硬件和背后的系統(tǒng)一起演進的

  • 算法必須要適合當(dāng)前的系統(tǒng)和當(dāng)前的硬件,如果不適用的話,就處理不了很大的數(shù)據(jù),做不出什么效果
  • 同理,硬件也要隨著模型的變更來產(chǎn)生變革,比如說內(nèi)存、帶寬、計算量等
  • 軟件系統(tǒng)是將任務(wù)和硬件融合在一起,需要與兩者適配,所以隨著硬件的進步和模型的進步,每隔幾年軟件系統(tǒng)也需要進行更新
  • 做系統(tǒng)方向一般不用擔(dān)心失業(yè),因為硬件和任務(wù)總是不斷變化的。具體來講就是,現(xiàn)在的軟件系統(tǒng)可能與當(dāng)前的這些任務(wù)過度優(yōu)化,但是不能很好地適用于未來的需求(任何硬件或者軟件系統(tǒng)的升級都是因為這個原因)



現(xiàn)在的機器學(xué)習(xí)任務(wù)都是用的單程序多數(shù)據(jù)(SPMD)模型,這個模型來自于 MPI

1、假設(shè)要在一臺機器上跑 pytorch 模型,通常情況下,將程序所需要的包在這臺機器上安裝完成之后,再將代碼(.py 文件)復(fù)制到這臺機器上,然后再啟動一個進程來運行代碼,這樣就完成了

2、假設(shè)這臺機器上有 GPU ,而且代碼確實需要使用 GPU 做運算的話,當(dāng) CPU 在運行的時候看到一個 python 的函數(shù)需要調(diào)用 GPU 來進行計算的話,CPU 就會將這個指令發(fā)送給 GPU ( PCIE 連接),等到 GPU 運算完成之后再將結(jié)果返回回來繼續(xù)往下計算

3、分布式:假設(shè)要在兩臺機器上同時計算一個模型。其實跟在一臺機器上計算沒有太大的區(qū)別,在第二臺機器上同時將所要的包都安裝好,而且需要保證兩臺機器上所安裝的包的版本相同,同時將運算的文件(.py 文件)也都復(fù)制一份到第二臺機器上而且需要保證在每臺機器上的代碼是一樣的。運行時,在每臺機器上分別啟動自己的進程來運行代碼。

  • 最簡單的情況下,兩臺機器各自單獨進行訓(xùn)練,要完成分布式的話需要做數(shù)據(jù)的交換。
  • 上一期參數(shù)服務(wù)器中講過一個最簡單的分布式----數(shù)據(jù)并行,就是每個機器拿到各自的,然后在每個小批量中計算好梯度之后將每個機器中所計算得到的梯度全部加起來就完成了
  • 這些梯度是當(dāng)時每臺機器自己的數(shù)據(jù)上運行的,需要將將這兩臺機器的計算結(jié)果全部相加,然后分別告訴所有的機器,從邏輯上來講,就是將兩臺機器運算的結(jié)果放到另外的一個地方進行相加,然后將相加之后的結(jié)果分別返回給兩臺機器,這個操作在 MPI 中叫做 AllReduce ,對應(yīng)的是 MPI 中的函數(shù)調(diào)用:目標(biāo)是高效地將不同機器中的數(shù)據(jù)整合(reduce)之后再把結(jié)果分發(fā)給各個機器
  • 當(dāng)要將一個單機的代碼拓展到分布式的時候,唯一需要做的就是在每一次梯度計算完成(backward)之后,調(diào)用 AllReduce 函數(shù)將每個機器計算的梯度在各個機器之間進行相加,完成這項操作之后就能夠繼續(xù)向下進行運算了,所以和單機的區(qū)別不是很大,只是分布式上面多加了幾個函數(shù)
  • 核心是每臺機器上都有同樣的代碼,這些代碼中插入了所需要的 MPI 的函數(shù),啟動時,每臺機器啟動各自的進程,在計算到中間的時候,所有的機器停下來做一次數(shù)據(jù)的同步,然后再各自繼續(xù)進行運算,這個也叫做 BSP 模型
  • 這比上一期參數(shù)服務(wù)器中所講的要簡單一些,因為深度學(xué)習(xí)早期的 CNN 甚至是早期的 Transformer 中,整個模型相對來說不是特別大,只是計算比較復(fù)雜,計算的時候比較耗時間



在通訊不多的情況下,簡單的操作其實也是挺好的。但是作者說現(xiàn)在這些簡單的 BSP 模型在新的任務(wù)上會有新的問題

1、現(xiàn)在的語言模型變得越來越大,參數(shù)規(guī)模都是上百億、千億了,可能導(dǎo)致整個模型在一個加速器上放不下,這是純粹的數(shù)據(jù)并行就不行了,就需要使用一個叫做 pipelining 的方式來進行任務(wù)的切割

2、現(xiàn)在有的模型在進行稀疏性的探索,整個模型里面不是一個全連接,而是一個稀疏連接的過程,所以導(dǎo)致在通訊和任務(wù)調(diào)度上會有不同



MPI 假設(shè)的是時的一個數(shù)的通訊,一次性將所有的東西都發(fā)出去,所以 8 年前當(dāng)深度學(xué)習(xí)崛起的時候,它相比于分布式來說確實是比較簡單的,因為模型足夠小,而且沒有稀疏性,所以導(dǎo)致 8 年前在參數(shù)服務(wù)器上所做的各種優(yōu)化其實對于深度學(xué)習(xí)來講沒有必要。但是現(xiàn)在模型已經(jīng)足夠大了,一塊加速卡已經(jīng)放不下了,而且在模型具有稀疏性的時候,又需要重新考慮這兩點



本視頻中可能會經(jīng)常提到上一期所講的參數(shù)服務(wù)器做對比,主要有兩個原因

1、假設(shè)已經(jīng)看過上一期,再次提及可以加深理解

2、在系統(tǒng)中,沒有什么東西是完全新的,對于一個新的硬件、一個新的任務(wù)將其中的困難點進行拆解之后,可能跟之前所做過的東西是一樣的。之所以不斷地引用之前參數(shù)服務(wù)器中所講的東西,并不是說這些東西在之前的系統(tǒng)已經(jīng)被做過了,這篇文章只是將舊的東西重新拿來炒一炒,這篇文章處理的是一個新的任務(wù)、新的硬件環(huán)境,然后提出了一些解決方案,也許和前面的系統(tǒng)有類似的東西,并不是因為延用了之前文章中的一些概念,而是說這些方法是在這個特定的場景之下解決這些問題最適合的方法


先去補上一期,補完再回來接著更新








----to be continued----

其他參考:

1、Pathways: Asynchronous Distributed Dataflow for ML:https://arxiv.org/abs/2203.12533

2、Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance:https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html

3、Introducing Pathways: A next-generation AI architecture:https://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/

Pathways 論文精讀【論文精讀】的評論 (共 條)

分享到微博請遵守國家法律
沁源县| 凌云县| 常熟市| 龙川县| 济宁市| 区。| 珠海市| 中西区| 临武县| 阿拉善右旗| 临洮县| 定日县| 谷城县| 高陵县| 临海市| 北海市| 买车| 泰来县| 沂水县| 察隅县| 兰坪| 崇信县| 友谊县| 杨浦区| 丹阳市| 连城县| 邵武市| 沛县| 方城县| 社会| 伽师县| 宾川县| 武安市| 开远市| 阿拉善右旗| 庆城县| 高雄县| 迁西县| 大英县| 垦利县| 比如县|