您好,登錄后才能下訂單哦!
Reformer如何分析及應(yīng)用,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
來(lái)自Google AI的最新的進(jìn)展。
理解序列數(shù)據(jù) —— 如語(yǔ)言、音樂(lè)或視頻 —— 是一項(xiàng)具有挑戰(zhàn)性的任務(wù),特別是當(dāng)它依賴于大量的周圍環(huán)境時(shí)。例如,如果一個(gè)人或一個(gè)物體在視頻中消失,很久以后又重新出現(xiàn),許多模型就會(huì)忘記它的樣子。在語(yǔ)言領(lǐng)域,長(zhǎng)短時(shí)記憶(LSTM)神經(jīng)網(wǎng)絡(luò)覆蓋了足夠的上下文來(lái)逐句翻譯。在這種情況下,上下文窗口(在翻譯過(guò)程中需要考慮的數(shù)據(jù)范圍),從幾十個(gè)詞到大約 100 個(gè)詞不等。最新的 Transformer 模型不僅改進(jìn)了逐句翻譯的性能,還可以通過(guò)多文檔摘要生成整個(gè) Wikipedia 的文章。這是可能的,因?yàn)?Transformer 使用的上下文窗口可以擴(kuò)展到數(shù)千個(gè)單詞。有了這樣一個(gè)大的上下文窗口,Transformer 可以用于文本以外的應(yīng)用,包括像素或音符,使其能夠用于生成音樂(lè)和圖像。
但是,將 Transformer 擴(kuò)展到更大的上下文窗口會(huì)遇到限制。Transformer 的能力來(lái)自于注意力,在這個(gè)過(guò)程中,它考慮上下文窗口中所有可能的單詞對(duì),以理解它們之間的聯(lián)系。因此,對(duì)于 100K 個(gè)單詞的文本,這需要評(píng)估 100K x 100K 個(gè)單詞對(duì),或者每一步 100 億對(duì),這是不切實(shí)際的。另一個(gè)問(wèn)題是存儲(chǔ)每個(gè)模型層輸出的標(biāo)準(zhǔn)實(shí)踐。對(duì)于使用大型上下文窗口的應(yīng)用程序,存儲(chǔ)多個(gè)模型層的輸出的內(nèi)存需求很快變得非常大(從只有幾層的 GB 字節(jié)到有數(shù)千層的模型的 TB 字節(jié))。這意味著,使用許多層的實(shí)際的 Transformer 模型只能用于幾段文本或生成簡(jiǎn)短的音樂(lè)片段。
今天,我們將介紹 Reformer,這是一個(gè) Transformer 模型,設(shè)計(jì)用于處理最多 100 萬(wàn)個(gè)單詞的上下文窗口,所有這些都在一個(gè)單一的加速器上,并且只使用了 16GB 的內(nèi)存。它結(jié)合了兩種關(guān)鍵技術(shù)來(lái)解決注意力和內(nèi)存分配問(wèn)題,這些問(wèn)題限制了 Transformer 的應(yīng)用只能使用長(zhǎng)上下文窗口。Reformer 使用位置敏感散列(LSH)來(lái)降低處理過(guò)長(zhǎng)序列和可逆殘差層的復(fù)雜性,從而更有效地使用可用內(nèi)存。
注意力機(jī)制的問(wèn)題
當(dāng)將 Transformer 模型應(yīng)用于非常大的文本序列時(shí),第一個(gè)挑戰(zhàn)是如何處理注意力層。LSH 通過(guò)計(jì)算一個(gè)哈希函數(shù)來(lái)實(shí)現(xiàn)這一點(diǎn),該哈希函數(shù)將類似的向量匹配在一起,而不是搜索所有可能的向量對(duì)。例如,在翻譯任務(wù)中,來(lái)自網(wǎng)絡(luò)第一層的每個(gè)向量表示一個(gè)單詞(在后續(xù)層中甚至有更大的上下文),不同語(yǔ)言中相同單詞對(duì)應(yīng)的向量可能得到相同的散列。在下面的圖中,不同的顏色描繪了不同的哈希,相似的單詞有相同的顏色。當(dāng)哈希值被分配時(shí),序列會(huì)被重新排列,將具有相同哈希值的元素放在一起,并被分成片段(或塊),以支持并行處理。然后將注意力機(jī)制放在這些更短的塊(以及它們的相鄰塊以覆蓋溢出)中,從而大大減少了計(jì)算負(fù)載。
內(nèi)存的問(wèn)題
雖然 LSH 解決了注意力的問(wèn)題,但仍然存在一個(gè)內(nèi)存的問(wèn)題。一個(gè)網(wǎng)絡(luò)的單層通常需要幾 GB 的內(nèi)存,并且通常適用于一個(gè) GPU,所以即使是一個(gè)具有長(zhǎng)序列的模型在只有一層的情況下也是可以執(zhí)行的。但是,當(dāng)訓(xùn)練一個(gè)具有梯度下降的多層模型時(shí),需要保存每一層的激活值,以便在向后傳遞中使用。一個(gè)典型的 Transformer 模型有 12 個(gè)或更多的層,因此,如果用來(lái)緩存來(lái)自每個(gè)層的值,那么內(nèi)存很快就會(huì)用完。
在 Reformer 中實(shí)現(xiàn)的第二個(gè)新方法是在反向傳播期間按需重新計(jì)算每個(gè)層的輸入,而不是將其存儲(chǔ)在內(nèi)存中。這是通過(guò)使用可逆層來(lái)實(shí)現(xiàn)的,其中來(lái)自網(wǎng)絡(luò)的最后一層的激活被用來(lái)恢復(fù)來(lái)自任何中間層的激活,這相當(dāng)于反向運(yùn)行網(wǎng)絡(luò)。在一個(gè)典型的殘差網(wǎng)絡(luò)中,棧中的每一層都不斷地增加通過(guò)網(wǎng)絡(luò)的向量。相反,可逆層對(duì)每個(gè)層有兩組激活。一個(gè)遵循剛才描述的標(biāo)準(zhǔn)過(guò)程,并從一個(gè)層逐步更新到下一個(gè)層,但是另一個(gè)只捕獲對(duì)第一個(gè)層的更改。因此,要反向運(yùn)行網(wǎng)絡(luò),只需減去應(yīng)用于每個(gè)層的激活。
Reformer 的應(yīng)用
在 Reformer 中,這兩種新方法的應(yīng)用使其具有很高的效率,使其能夠僅使用 16GB 內(nèi)存在單個(gè) GPU 上處理長(zhǎng)度高達(dá) 100 萬(wàn)字的文本序列。由于 Reformer 具有如此高的效率,它可以直接應(yīng)用于上下文窗口比幾乎所有當(dāng)前最先進(jìn)的文本域數(shù)據(jù)集大得多的數(shù)據(jù)。也許 Reformer 處理如此大的數(shù)據(jù)集的能力將刺激社區(qū)創(chuàng)建它們。
大上下文數(shù)據(jù)的一個(gè)不足之處是圖像生成,因此我們對(duì)圖像進(jìn)行了 Reformer 的實(shí)驗(yàn)。在這篇文章中,我們將舉例說(shuō)明如何使用 Reformer 來(lái)“完成”部分圖像。從下圖最上面一行的圖像片段開(kāi)始,Reformer 可以逐像素地生成全幀圖像(下面一行)。
雖然 Reformer 在圖像和視頻任務(wù)上的應(yīng)用潛力巨大,但在文本上的應(yīng)用更令人興奮。Reformer 可以一次性在單一的設(shè)備中處理整個(gè)小說(shuō)。將來(lái),當(dāng)有更多的數(shù)據(jù)集需要訓(xùn)練長(zhǎng)文本時(shí),諸如 Reformer 之類的技術(shù)可能會(huì)使生成長(zhǎng)連貫的文本成為可能。
看完上述內(nèi)容,你們掌握Reformer如何分析及應(yīng)用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。