<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GPT迭代成本「近乎荒謬」,Karpathy 300行代碼帶你玩轉(zhuǎn)迷你版

          共 2509字,需瀏覽 6分鐘

           ·

          2020-08-26 03:09



          ??新智元報(bào)道??

          來(lái)源:reddit

          編輯:小智

          【新智元導(dǎo)讀】最近,特斯拉AI總監(jiān)Karpathy開源了一個(gè)名為minGPT的項(xiàng)目,用300行代碼實(shí)現(xiàn)了GPT的訓(xùn)練。沒(méi)有OpenAI的超級(jí)算力,該如何調(diào)整GPT這類語(yǔ)言模型的各種超參數(shù)?

          上周 Andrej Karpathy 發(fā)布了一個(gè)最小 GPT 實(shí)現(xiàn)的項(xiàng)目 ,短短一周就收獲了4200星。
          ?? ? ? ?? ? ? ?
          從代碼來(lái)看,他的minGPT實(shí)現(xiàn)確實(shí)精簡(jiǎn)到了極致,利用Karpathy的代碼,你只需要實(shí)例化一個(gè)GPT模型,定好訓(xùn)練計(jì)劃就可以開始了,整個(gè)實(shí)現(xiàn)只有300行PyTorch代碼。
          ?? ? ? ?? ? ? ?
          但是最有趣的部分是300行代碼背后的故事。特別是在說(shuō)明文檔末尾,他解構(gòu)了GPT-3的各種參數(shù):
          ?? ? ??? ? ? ?
          GPT-3:96層,96個(gè)頭,d _ 模型12,288(175B 參數(shù))。
          ?
          GPT-1-like: 12層,12個(gè)頭,d _ 模型768(125M參數(shù))
          ?
          GPT-3使用與 GPT-2相同的模型和架構(gòu),包括修改后的初始化方法等。

          在transformer層使用交替密集和局部稀疏注意力,類似于稀疏 Transformer。前饋層是瓶頸層的四倍,即 dff = 4 * dmodel。

          所有模型都使用 nctx = 2048 token的上下文窗口。
          ?
          Adam 的參數(shù) β1 = 0.9, β2 = 0.95, eps = 10^?8。
          ?
          前3.75億token用線性 LR 預(yù)熱,剩下的2600億token用余弦衰減法將學(xué)習(xí)率降至其值的10%。

          「近乎荒謬」的迭代成本讓GPT調(diào)參陷困境
          ?
          GPT-3的工程師們是如何確定學(xué)習(xí)速率的,以及其他的7個(gè)超參數(shù) + 架構(gòu)?
          ?
          GPT-3迭代成本相當(dāng)高(一次訓(xùn)練可能需要幾天到一周)。選擇正確的超參數(shù)對(duì)于算法的成功至關(guān)重要,如果夠幸運(yùn),模型的復(fù)雜度不高,可以使用超參數(shù)搜索方法。
          ?? ? ??
          超參數(shù)的搜索
          ? ? ? ?
          事實(shí)上,許多研究人員都注意到,其實(shí)可以將其他問(wèn)題中「窮舉搜索」到的許多參數(shù)保持在凍結(jié)狀態(tài),并將搜索的復(fù)雜性降低到一些關(guān)鍵參數(shù),如學(xué)習(xí)速率。
          ?
          另一方面,考慮到 GPT-3的龐大規(guī)模和訓(xùn)練成本,顯然 OpenAI 的研究人員不可能通過(guò)超參數(shù)搜索來(lái)獲得結(jié)果,單次訓(xùn)練可能花費(fèi)數(shù)百萬(wàn)美元
          ?
          那么,在這種「近乎荒謬」的迭代成本范式中,研究人員如何確定最終確定這些參數(shù)呢?
          ?
          ? ? ? ? ? ? ?
          ?
          在訓(xùn)練過(guò)程中是否有干擾,比如在檢查點(diǎn)重新設(shè)置并重新開始?是否會(huì)用過(guò)超參數(shù)搜索越來(lái)越大的模型,然后猜測(cè)超參數(shù)的大致范圍?
          ?
          當(dāng)真正的迭代不可能時(shí),如何繼續(xù)AI模型的訓(xùn)練?相信很多人工智能的研究者有類似的疑問(wèn),很多訓(xùn)練調(diào)參還是要靠「直覺」。
          ?
          但是GPT-3這種大規(guī)模模型的成功,是不是用了什么更科學(xué)的方法?
          ?
          算力無(wú)限時(shí),模型性能不再「嚴(yán)重依賴」超參數(shù)

          OpenAI其實(shí)發(fā)表過(guò)一篇論文,探討了如何更好地訓(xùn)練GPT這類語(yǔ)言模型。
          ?
          隨著模型大小,數(shù)據(jù)集集大小和用于訓(xùn)練的計(jì)算資源增加,語(yǔ)言模型的性能總是平穩(wěn)提高的,為了獲得最佳性能,必須同時(shí)放大所有三個(gè)因素。當(dāng)另外兩個(gè)因素沒(méi)有限制時(shí),模型性能與每個(gè)因素都有冪律關(guān)系。
          ?? ? ??? ? ? ?
          GPT3的工程師們用非常小的模型做了大量的測(cè)試,找到了相關(guān)的縮放曲線來(lái)決定如何分配計(jì)算/數(shù)據(jù)/模型大小,以便在給定的預(yù)算下獲得最佳性能,他們檢查了以前在transformer上的超參數(shù)設(shè)置和架構(gòu)選擇 ,發(fā)現(xiàn) GPT 對(duì)前者相對(duì)不敏感,應(yīng)該擴(kuò)大數(shù)據(jù)范圍,以飽和 GPU 的吞吐量。
          ?
          模型性能依賴于規(guī)模,它由三個(gè)因素組成:模型參數(shù)N的數(shù)量(不包括嵌入),數(shù)據(jù)集D的大小以及訓(xùn)練所用計(jì)算資源C。
          ?
          結(jié)果顯示,在合理的范圍內(nèi),性能模型的體系結(jié)構(gòu)參數(shù)依賴較小,例如模型的深度與寬度。
          ?
          只要同時(shí)擴(kuò)大N和D的規(guī)模,性能就會(huì)顯著地提高,但是如果N或D保持不變而另一個(gè)因素在變,則進(jìn)入性能收益遞減的狀態(tài)性能損失大致取決于N^0.74 / D的比率,這意味著每次我們將模型大小增加8倍時(shí),我們只需將數(shù)據(jù)增加大約5倍即可避免損失。
          ?? ? ??? ? ??
          當(dāng)固定計(jì)算資源C,但對(duì)模型大小N或可用數(shù)據(jù)D沒(méi)有任何其他限制時(shí),可以通過(guò)訓(xùn)練非常大的模型并及時(shí)停止來(lái)獲得最佳性能。
          ?
          因此,最大程度地提高計(jì)算效率將比基于訓(xùn)練小型模型進(jìn)行收斂所期望的收益高得多,訓(xùn)練數(shù)據(jù)的需求量和計(jì)算資源遵循D?C^0.27,可以看到數(shù)據(jù)需求增長(zhǎng)十分緩慢。
          ?
          如果有更多的計(jì)算資源可用,可以選擇分配更多資源來(lái)訓(xùn)練更大的模型,使用更大的批次以及訓(xùn)練更多的步數(shù)。
          ?
          比如將來(lái)算力增長(zhǎng)了十億倍,為了獲得最佳的結(jié)果,大部分精力應(yīng)該用于增加模型大小。數(shù)據(jù)的增加可以通過(guò)增加批處理量來(lái)提高并行度,只需要很少的時(shí)間。
          ?
          The End

          我們沒(méi)有過(guò)多討論超參數(shù)的具體調(diào)整方法,在計(jì)算資源有限的情況下,確實(shí)需要一些技巧,來(lái)提升計(jì)算效率,或者說(shuō)模型的性能,當(dāng)未來(lái)算力足夠時(shí),我們就不會(huì)這么依賴超參數(shù)了。
          ?
          對(duì)神經(jīng)網(wǎng)絡(luò)的探索方法,也應(yīng)該有新的思路。
          ?
          「如果你真的在做研究,那么通常情況下,你研究的問(wèn)題越小越簡(jiǎn)單,研究貢獻(xiàn)越大」。
          ?
          任何人都可以通過(guò)使問(wèn)題更難,神經(jīng)網(wǎng)絡(luò)更大來(lái)顯示改進(jìn),但是如果你可以用一個(gè)新的小而簡(jiǎn)單的設(shè)計(jì)來(lái)產(chǎn)生更好的性能,那么就會(huì)進(jìn)一步提高理解能力。
          ?
          如果你能在一個(gè)簡(jiǎn)單的toy case上演示一些神經(jīng)網(wǎng)絡(luò)的bug或者其他有趣的特性,就會(huì)更加理解它是如何發(fā)生的,何時(shí)發(fā)生的,以及為什么會(huì)發(fā)生。

          參考鏈接:
          https://arxiv.org/pdf/2001.08361.pdf
          https://www.reddit.com/r/MachineLearning/comments/ibrlvt/d_how_do_ml_researchers_make_progress_when/



          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠人妻久久久久久综合99浪潮 | 苏畅md一区二区三区在线观看 | 精品无码产区一区二 | A片免费看视频 | 久久青草视频 |