從頭開始構(gòu)建,DeepMind新論文用偽代碼詳解Transformer
與滾動(dòng) 1000 行源代碼相比,偽代碼更濃縮,思路更清晰。
2017 年 Transformer 橫空出世,由谷歌在論文《Attention is all you need》中引入。這篇論文拋棄了以往深度學(xué)習(xí)任務(wù)里面使用到的 CNN 和 RNN。這一開創(chuàng)性的研究顛覆了以往序列建模和 RNN 劃等號(hào)的思路,如今被廣泛用于 NLP。大熱的 GPT、BERT 等都是基于 Transformer 構(gòu)建的。
Transformer 自推出以來(lái),研究者已經(jīng)提出了許多變體。但大家對(duì) Transformer 的描述似乎都是以口頭形式、圖形解釋等方式介紹該架構(gòu)。關(guān)于 Transformer 的偽代碼描述可參考的資料很少。
正如下面這段話所表達(dá)的:一位 AI 領(lǐng)域非常出名的研究者,曾向一位著名的復(fù)雜性理論家發(fā)送了一篇自認(rèn)為寫得非常好的論文。而理論家的回答是:我在論文中找不到任何定理,我不知道這篇論文是關(guān)于什么的。
對(duì)于從業(yè)者來(lái)說(shuō),論文可能足夠詳細(xì),但理論家需要的精度通常更高。由于某些原因,DL 社區(qū)似乎不愿為他們的神經(jīng)網(wǎng)絡(luò)模型提供偽代碼。
目前看來(lái),DL 社區(qū)存在以下問(wèn)題:
DL 出版物缺乏科學(xué)的準(zhǔn)確性和細(xì)節(jié)。深度學(xué)習(xí)在過(guò)去 5 到 10 年間取得了巨大的成功,每年發(fā)表的論文數(shù)以千計(jì)。許多研究者只是非正式地描述了他們?nèi)绾胃淖円郧暗哪P?,大約 100 多頁(yè)的論文只包含幾行非正式地模型描述。充其量是一些高級(jí)圖表,沒(méi)有偽代碼,沒(méi)有方程式,沒(méi)有提到對(duì)模型的精確解釋。甚至沒(méi)有人為著名的 Transformer 及其編碼器 / ****變體提供偽代碼。
源代碼與偽代碼。開源源代碼非常有用,但與數(shù)千行的真實(shí)源代碼相比,精心設(shè)計(jì)的偽代碼通常不到一頁(yè),并且基本上仍然是完整的。這似乎是一項(xiàng)沒(méi)有人愿意做的苦工作。
解釋訓(xùn)練過(guò)程同樣重要,但有時(shí)論文中甚至沒(méi)有提到模型的輸入和輸出以及潛在的副作用是什么。論文中的實(shí)驗(yàn)部分通常不會(huì)解釋輸入算法的內(nèi)容以及如何輸入。如果方法部分有一些解釋,通常與實(shí)驗(yàn)部分中描述的內(nèi)容脫節(jié),可能是由于不同的作者編寫了不同的部分造成的。
有人會(huì)問(wèn):真的需要偽代碼嗎? 偽代碼有什么用?
來(lái)自 DeepMind 的研究者認(rèn)為提供偽代碼有很多用途,與閱讀文章或滾動(dòng) 1000 行實(shí)際代碼相比,偽代碼將所有重要的內(nèi)容濃縮在一頁(yè)紙上,更容易開發(fā)新的變體。為此,他們最近發(fā)表的一篇論文《 Formal Algorithms for Transformers 》,文章以完備的、數(shù)學(xué)上精確的方式來(lái)描述 Transformer 架構(gòu)。
論文簡(jiǎn)介
本文涵蓋了什么是 Transformer、Transformer 如何訓(xùn)練、Transformer 被用來(lái)做什么、Transformer 關(guān)鍵架構(gòu)組件以及比較出名的模型預(yù)覽。
論文地址:https://arxiv.org/pdf/2207.09238.pdf
不過(guò),閱讀本文,讀者需熟悉基礎(chǔ) ML 術(shù)語(yǔ)和簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)體系架構(gòu) (如 MLPs)。對(duì)于讀者而言,在理解了文中的內(nèi)容后,將會(huì)扎實(shí)的掌握 Transformer,并可能會(huì)使用偽代碼實(shí)現(xiàn)自己的 Transformer 變體。
這篇論文的主體部分是第 3-8 章,分別介紹了 Transformer 及其典型任務(wù)、tokenization、Transformer 的架構(gòu)組成、Transformer 的訓(xùn)練和推理、實(shí)際應(yīng)用。
論文中基本完整的偽代碼大約有 50 行,而實(shí)際的真實(shí)源代碼則有數(shù)千行。論文中表述算法的偽代碼適用于需要緊湊、完整和精確公式的理論研究者、從頭實(shí)現(xiàn) Transformer 的實(shí)驗(yàn)研究人員,同時(shí)對(duì)使用形式 Transformer 算法擴(kuò)充論文或教科書也大有裨益。
論文中偽代碼示例
對(duì)于熟悉基本的 ML 術(shù)語(yǔ)和簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)架構(gòu)(例如 MLP)的初學(xué)者來(lái)說(shuō),這篇論文將幫你掌握扎實(shí)的 Transformer 基礎(chǔ),并用偽代碼模板實(shí)現(xiàn)自己的 Transformer 模型。
作者介紹
這篇論文的第一作者是今年 3 月正式入職 DeepMind 的研究員 Mary Phuong。她博士畢業(yè)于奧地利科學(xué)技術(shù)研究所,主要從事機(jī)器學(xué)習(xí)的理論研究。
論文的另一位作者是 DeepMind 的資深研究員 Marcus Hutter,也是澳大利亞國(guó)立大學(xué) (ANU) 計(jì)算機(jī)科學(xué)研究院 (RSCS) 的名譽(yù)教授。
Marcus Hutter 多年來(lái)一直從事人工智能數(shù)學(xué)理論的研究。這一研究領(lǐng)域基于若干數(shù)學(xué)和計(jì)算科學(xué)概念,涉及強(qiáng)化學(xué)習(xí)、概率論、算法信息理論、優(yōu)化、搜索和計(jì)算理論等。他的書《通用人工智能:基于算法概率的順序決策》于 2005 年出版,這是一本技術(shù)性和數(shù)學(xué)性都很強(qiáng)的書。
2002 年,Marcus Hutter 與 Jürgen Schmidhuber 和 Shane Legg 一起提出了基于理想化智能體和獎(jiǎng)勵(lì)強(qiáng)化學(xué)習(xí)的人工智能數(shù)學(xué)理論 AIXI。2009 年,Marcus Hutter 又提出了特征強(qiáng)化學(xué)習(xí)理論。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。