近年來(lái), transformers 已成為一種強(qiáng)大的深度神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),已被證明在許多應(yīng)用領(lǐng)域,如 自然語(yǔ)言處理 ( NLP )和 computer vision ,都超過(guò)了最先進(jìn)的水平。
這篇文章揭示了在微調(diào)變壓器時(shí),如何以最快的訓(xùn)練時(shí)間獲得最大的精度。我們展示了 RAPIDS Machine Learning 庫(kù)中的 cuML 支持向量機(jī)( SVM )算法如何顯著加快這一過(guò)程。 GPU 上的 CuML SVM 比基于 CPU 的實(shí)現(xiàn)快 500 倍。 這種方法使用支持向量機(jī)磁頭,而不是傳統(tǒng)的 多層感知器( MLP )頭 ,因此可以精確輕松地進(jìn)行微調(diào)。
什么是微調(diào)?為什么需要微調(diào)?
transformer 是一個(gè) deep learning 模型,由許多多頭、自我關(guān)注和前饋完全連接的層組成。它主要用于序列到序列任務(wù),包括 NLP 任務(wù),如機(jī)器翻譯和問(wèn)答,以及計(jì)算機(jī)視覺(jué)任務(wù),如目標(biāo)檢測(cè)等。
從頭開(kāi)始訓(xùn)練 transformer 是一個(gè)計(jì)算密集型過(guò)程,通常需要幾天甚至幾周的時(shí)間。在實(shí)踐中,微調(diào)是將預(yù)訓(xùn)練的變壓器應(yīng)用于新任務(wù)的最有效方法,從而減少培訓(xùn)時(shí)間。
用于微調(diào)變壓器的 MLP 磁頭
如圖 1 所示,變壓器有兩個(gè)不同的組件:
主干,包含多個(gè)自我注意塊和前饋層。
頭部,對(duì)分類(lèi)或回歸任務(wù)進(jìn)行最終預(yù)測(cè)。
在微調(diào)過(guò)程中, transformer 的主干網(wǎng)絡(luò)被凍結(jié),而只有輕型頭部模塊接受新任務(wù)的培訓(xùn)。 head 模塊最常見(jiàn)的選擇是 multi-layer perceptron ( MLP ),用于分類(lèi)和回歸任務(wù)。
圖 1 。以 cuML-SVM 為磁頭加速變壓器的微調(diào)
事實(shí)證明,實(shí)現(xiàn)和調(diào)整 MLP 可能比看起來(lái)要困難得多。為什么?
有多個(gè)超參數(shù)需要調(diào)整: 層數(shù)、輟率、學(xué)習(xí)率、正則化、優(yōu)化器類(lèi)型等。選擇要調(diào)整的超參數(shù)取決于您試圖解決的問(wèn)題。例如,輟 和 batchnorm 等標(biāo)準(zhǔn)技術(shù)可能會(huì)導(dǎo)致 回歸問(wèn)題的性能退化 。
必須采取更多措施防止過(guò)度安裝。 變壓器的輸出通常是一個(gè)長(zhǎng)的嵌入向量,長(zhǎng)度從數(shù)百到數(shù)千不等。當(dāng)訓(xùn)練數(shù)據(jù)大小不夠大時(shí),過(guò)度擬合很常見(jiàn)。
執(zhí)行時(shí)間方面的性能通常不會(huì)得到優(yōu)化。 用戶必須為數(shù)據(jù)處理和培訓(xùn)編寫(xiě)樣板代碼。批量生成和從 CPU 到 GPU 的數(shù)據(jù)移動(dòng)也可能成為性能瓶頸。
SVM 磁頭用于變壓器微調(diào)的優(yōu)勢(shì)
支持向量機(jī) (支持向量機(jī))是最受歡迎的監(jiān)督學(xué)習(xí)方法之一,當(dāng)存在有意義的預(yù)測(cè)性特征時(shí),支持向量機(jī)是最有效的。由于 SVM 對(duì)過(guò)度擬合的魯棒性,對(duì)于高維數(shù)據(jù)尤其如此。
然而,出于以下幾個(gè)原因,數(shù)據(jù)科學(xué)家有時(shí)不愿嘗試支持向量機(jī):
它需要手工特征工程,這可能很難實(shí)現(xiàn)。
傳統(tǒng)上,支持向量機(jī)速度較慢。
RAPIDS cuML 通過(guò)提供 在 GPU 上的加速比高達(dá) 500 倍 重新喚起了人們對(duì)重溫這一經(jīng)典模型的興趣。有了 RAPIDS cuML ,支持向量機(jī)在數(shù)據(jù)科學(xué)界再次流行起來(lái)。
例如, RAPIDS cuML SVM 筆記本電腦已在多個(gè) Kaggle 比賽中頻繁使用:
TReNDS Neuroimaging by Ahmet Erdem
CommonLit Readability by Chris Deotte
PetFinder by Chris Deotte
由于 transformers 已經(jīng)學(xué)會(huì)了以長(zhǎng)嵌入向量的形式提取有意義的表示, cuML SVM 是頭部分類(lèi)器或回歸器的理想候選。
與 MLP 頭相比, cuML SVM 具有以下優(yōu)勢(shì):
容易調(diào)整。 在實(shí)踐中,我們發(fā)現(xiàn)在大多數(shù)情況下,僅調(diào)整一個(gè)參數(shù) C 就足以支持 SVM。
速度 。在 GPU 上處理之前, cuML 將所有數(shù)據(jù)一次性移動(dòng)到 GPU 。
多樣化 。支持向量機(jī)的預(yù)測(cè)與 MLP 預(yù)測(cè)在統(tǒng)計(jì)上不同,這使得它在集合中非常有用。
Simple API. cuML SVM API 提供 scikit-learn 風(fēng)格的擬合和預(yù)測(cè)功能。
案例研究: PetFinder 。我的掌門(mén)人競(jìng)賽
提出的帶有 SVM 磁頭的微調(diào)方法適用于 NLP 和 計(jì)算機(jī)視覺(jué)任務(wù) 。為了證明這一點(diǎn),我們研究了 寵物搜尋者。我的掌門(mén)人競(jìng)賽 ,這是一個(gè) Kaggle 數(shù)據(jù)科學(xué)競(jìng)賽,它根據(jù)寵物的照片預(yù)測(cè)了它們的受歡迎程度。
該項(xiàng)目使用的數(shù)據(jù)集由 10000 張手動(dòng)標(biāo)記的圖像組成,每個(gè)圖像都有一個(gè)我們想要預(yù)測(cè)的目標(biāo) pawpularity 。當(dāng) pawpularity 值在 0 到 100 之間時(shí),我們使用回歸來(lái)解決這個(gè)問(wèn)題。
由于只有 10000 個(gè)標(biāo)記圖像,因此訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)以從零開(kāi)始獲得高精度是不切實(shí)際的。相反,我們通過(guò)使用預(yù)訓(xùn)練的 swin transformer 主干,然后用標(biāo)記的 pet 圖像對(duì)其進(jìn)行微調(diào)來(lái)實(shí)現(xiàn)這一點(diǎn)。
圖 2 。如何使用 cuML SVM 頭進(jìn)行微調(diào)。
如圖 2 所示,我們的方法需要三個(gè)步驟:
首先,將使用 MLP 的回歸頭添加到主干 swin 變壓器,并對(duì)主干和回歸頭進(jìn)行微調(diào)。一個(gè)有趣的發(fā)現(xiàn)是,二進(jìn)制交叉熵?fù)p失優(yōu)于常見(jiàn)的均方誤差損失( MSE ) 由于目標(biāo)的分布 。
接下來(lái),主干被凍結(jié), MLP 頭被替換為 cuML SVM 頭。然后用常規(guī)的 MSE 損失對(duì) SVM 頭進(jìn)行訓(xùn)練。
為了獲得最佳預(yù)測(cè)精度,我們對(duì) MLP 頭和 SVM 頭進(jìn)行了平均。求值度量根意味著平方誤差從 18 優(yōu)化到 17.8 ,這對(duì)該數(shù)據(jù)集非常重要。
值得注意的是,第 1 步和第 3 步是可選的,在這里實(shí)施的目的是優(yōu)化模型在本次比賽中的得分。僅步驟 2 是微調(diào)最常見(jiàn)的場(chǎng)景。因此,我們?cè)诓襟E 2 測(cè)量了運(yùn)行時(shí)間,并比較了三個(gè)選項(xiàng): cuML SVM ( GPU )、 sklearn SVM ( CPU )和 PyTorchMLP ( GPU )。結(jié)果如圖 3 所示。
圖 3 。運(yùn)行時(shí)比較
使用 sklearn SVM 對(duì)運(yùn)行時(shí)間進(jìn)行歸一化, cuML SVM 實(shí)現(xiàn)了 15 倍的訓(xùn)練加速比和 28.18 倍的推理加速比。值得注意的是,由于 GPU 利用率高, cuML SVM 比 PyTorch MLP 更快。 筆記本可以在 Kaggle 上找到。
Transformer 微調(diào)的關(guān)鍵要點(diǎn)
Transformer 是革命性的深度學(xué)習(xí)模式,但培訓(xùn)它們很耗時(shí)。 GPU 上變壓器的快速微調(diào)可以通過(guò)提供顯著的加速而使許多應(yīng)用受益。 RAPIDS cuML SVM 也可以作為經(jīng)典 MLP 頭的替代品,因?yàn)樗俣雀臁⒕雀摺?/p>
GPU 加速為 SVM 等經(jīng)典 ML 模型注入了新的能量。使用 RAPIDS ,可以將兩個(gè)世界中最好的結(jié)合起來(lái):經(jīng)典的機(jī)器學(xué)習(xí)( ML )模型和尖端的深度學(xué)習(xí)( DL )模型。在里面 RAPIDS cuML ,你會(huì)發(fā)現(xiàn)更多閃電般快速且易于使用的型號(hào)。
后記
在撰寫(xiě)和編輯本文時(shí), PetFinder.my 掌門(mén)人競(jìng)賽 得出結(jié)論。 NVIDIA KGMON Gilberto Titericz 通過(guò)使用 RAPIDS 支持向量機(jī)獲得第一名。他成功的解決方案是集中變壓器和其他深層 CNN 的嵌入,并使用 RAPIDS SVM 作為回歸頭。
關(guān)于作者
Jiwei Liu 是 NVIDIA 的數(shù)據(jù)科學(xué)家,致力于 NVIDIA 人工智能基礎(chǔ)設(shè)施,包括 RAPIDS 數(shù)據(jù)科學(xué)框架。
Chris Deotte 是 NVIDIA 的高級(jí)數(shù)據(jù)科學(xué)家。克里斯有博士學(xué)位。在計(jì)算科學(xué)和數(shù)學(xué)中,有一篇關(guān)于優(yōu)化并行處理的論文。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5059瀏覽量
103407 -
gpu
+關(guān)注
關(guān)注
28文章
4762瀏覽量
129149 -
人工智能
+關(guān)注
關(guān)注
1793文章
47532瀏覽量
239292
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論