Google 開源最新 NLP 模型,能處理整本《罪與罰》
Transformer 可謂是近年 NLP 領(lǐng)域關(guān)注度頗高的模型之一。
- 2017 年,Google 發(fā)表題為“Attention Is All You Need”的論文,提出了完全基于注意力機(jī)制(attention mechanism)的網(wǎng)絡(luò)框架 Transformer。
- 2018 年,Google 開源了基于 Transformer 的 BERT 模型,在 NLP 領(lǐng)域大火。
- 2019 年,機(jī)器學(xué)習(xí)領(lǐng)域最大的趨勢之一便是基于 Transformer 的自然語言模型的持續(xù)增長和擴(kuò)散。
- 2020 年,根據(jù)自然語言處理領(lǐng)域數(shù)據(jù)集 GLUE 的排行榜,一些表現(xiàn)最佳的模型——包括 Nvidia 的 Megatron、Google 的 XLNet、微軟的 MT-DNN 和 Facebook 的 Roberta——都基于 Transformer。
近日,Google 又推出了 Transformer 的“升級版”——Reformer。
【 圖片來源:VentureBeat 所有者:VentureBeat 】
比 Transformer 更高效
對人工智能和機(jī)器學(xué)習(xí)模型來說,不管是語言、音樂、語音還是視頻,序列數(shù)據(jù)都不好理解——尤其是在廣泛的環(huán)境中。例如,如果一個(gè)人或一個(gè)物體從視頻中消失很久后才重新出現(xiàn),許多算法就會(huì)忘記它的樣子。
因此,Google 開發(fā)了機(jī)器翻譯模型 Transformer,希望解決這一問題。Transformer 是一個(gè)擴(kuò)展到數(shù)千個(gè)單詞的架構(gòu),極大地提升了在完成作曲、圖像合成、逐句文本翻譯和文檔摘要等任務(wù)時(shí)的性能。
與所有深度神經(jīng)網(wǎng)絡(luò)一樣,Transformer 包含連接層中的神經(jīng)元(數(shù)學(xué)函數(shù)),可傳輸來自輸入數(shù)據(jù)的信號,并緩慢調(diào)整每個(gè)連接的突觸強(qiáng)度(權(quán)重),這是所有人工智能模型提取特征和學(xué)習(xí)預(yù)測的方式,但是 Transformer 能獨(dú)特地注意到每個(gè)輸出元素都與每個(gè)輸入元素相關(guān)聯(lián),它們之間的權(quán)重實(shí)際上是動(dòng)態(tài)計(jì)算的。
不過,Transformer 并不是完美的——將其擴(kuò)展到更大的環(huán)境中就能明顯看出局限性。大窗口應(yīng)用程序的內(nèi)存從千兆字節(jié)到兆兆字節(jié)不等,也就是說模型只能吸收幾段文本或生成一小段音樂。
基于此,Google 推出 Reformer 作為 Transformer 的演進(jìn),Reformer 能夠處理多達(dá) 100 萬字的環(huán)境,僅用 16GB 的存儲器就能在單個(gè) AI 加速器芯片上運(yùn)行。
雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))了解到,相關(guān)論文“Reformer:The Efficient Transformer”已被將于 2020 年 4 月在埃塞俄比亞舉行的自然語言處理頂會(huì) ICLR-2020(International Conference on Learning Representations)接收,當(dāng)前模型也已開源。
根據(jù)論文,Reformer 主要包含以下技術(shù):
- 第一,可逆層在整個(gè)模型中只存儲激活函數(shù)的單個(gè)副本,因此 N 因子消失;
- 第二,在前饋層內(nèi)拆分激活函數(shù),并進(jìn)行分段處理,消除 dff 因子,節(jié)省前饋層內(nèi)存;
- 第三,利用局部敏感哈希(雷鋒網(wǎng)注: LSH,即一種哈希算法,主要運(yùn)用到高維海量數(shù)據(jù)的快速近似查找)。具體來講,哈希函數(shù)即一種將任意大小的數(shù)據(jù)映射到固定大小的值的函數(shù),該函數(shù)匹配相似的向量(即表示機(jī)器學(xué)習(xí)中人類可讀數(shù)據(jù)的代數(shù)構(gòu)造),而不是在所有可能的向量對中搜索。
例如,在翻譯任務(wù)中,來自網(wǎng)絡(luò)第一層的每個(gè)向量表示一個(gè)詞,對應(yīng)于不同語言中相同詞的向量可以獲得相同的哈希值。當(dāng)分配哈希時(shí),序列會(huì)重新排列,接著按元素的哈希值分類,實(shí)現(xiàn)并行處理,這樣降低了長序列的復(fù)雜度,極大地減少了計(jì)算負(fù)荷。
Reformer 可處理整部小說
為驗(yàn)證 Reformer 確實(shí)能夠在單個(gè) GPU 上運(yùn)行,并可在長序列上快速訓(xùn)練,研究人員在 enwik8 和 imagenet64 數(shù)據(jù)集上對 20 層的 Reformer 模型進(jìn)行了訓(xùn)練。實(shí)驗(yàn)表明,Reformer 能達(dá)到與 Transformer 相同的性能,并且內(nèi)存效率更高,在長序列任務(wù)上訓(xùn)練更快。
另外,研究小組還對基于 Reformer 的圖像和文本模型進(jìn)行了實(shí)驗(yàn),用它們生成圖像中缺失的細(xì)節(jié),還處理了小說《罪與罰》(包含約 211591 個(gè)單詞)全文。研究表明,Reformer 能夠逐像素地生成全幀圖像,并且能夠在單輪訓(xùn)練中接收小說長度的文本。
Google 科學(xué)家 Łukasz Kaiser 和加州大學(xué)伯克利分校學(xué)生 Nikita Kitaev 都對這項(xiàng)研究作出了貢獻(xiàn),他們在一篇博客中寫道:
- 由于 Reformer 效率極高,它可以直接應(yīng)用于上下文窗口遠(yuǎn)大于當(dāng)前幾乎所有最先進(jìn)文本域的數(shù)據(jù),Reformer 處理如此龐大數(shù)據(jù)集的能力可能也會(huì)刺激社區(qū)創(chuàng)建數(shù)據(jù)集。
據(jù)悉,論文作者們還會(huì)進(jìn)一步將該其應(yīng)用于更廣闊的領(lǐng)域(如時(shí)間序列預(yù)測及音樂、圖像、視頻生成),并改進(jìn)對位置編碼的處理。Łukasz Kaiser 和 Nikita Kitaev 補(bǔ)充說:
我們相信 Reformer 為將來使用 Transformer 模型對長文本和自然語言處理以外的應(yīng)用也打下了基礎(chǔ)。
2019 年年底,外媒 VentureBeat 曾采訪過 Google 高級副總裁 Jeff Dean,他在采訪中表示:
- Google 仍然希望能建立更多的情境模型,就像現(xiàn)在一樣,BERT 等模型可以處理數(shù)百個(gè)單詞,但不能處理 1 萬個(gè)單詞。所以這會(huì)是 Google 未來主要關(guān)注的方向。
而 Reformer 似乎是朝著這一方向邁出的充滿希望的第一步。
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。