熱門的模型跨界,Transformer、GPT做CV任務一文大盤點

2021-03-05 極市平臺

可能大家心裡都有一種錯誤認知,做自然語言處理任務的模型不能夠用來進行計算機視覺任務。其實不然,現階段已出現好多研究,它們通過算法的改進,將在 NLP 領域表現良好的模型,如 Transformer、GPT 等進行改進並應用於視覺任務,不僅實現了模型跨界,而且取得了不錯的性能。

模型跨界效果如何呢?

人工智慧的快速發展已經淋漓盡致地體現在我們的日常生活中,從人臉識別、語音識別到機器翻譯等等,無不展示著 AI 帶來的便利。已經落地的產品層出不窮,其後的算法模型你又了解多少呢?有些模型不僅在自己的領域表現出色,更能跨界出圈。

近幾年,NLP 領域的算法勢如破竹,不斷取得新突破,CV 領域同樣不斷取得創新。新工具、新算法、新算力等不斷迭代更新,在各自領域大放異彩。如果說將 NLP 領域的模型應用到 CV 領域,或反之,那效果該如何呢?模型跨界是否可行?

答案是肯定的。下面我們來盤點一下模型的跨界、破界表現如何?本文介紹的內容包括:

《End-to-End Object Detection with Transformers》:Facebook 將 Transformer 應用於目標檢測任務;

《Generative Pretraining from Pixels》:OpenAI 用 GPT-2 做圖像分類的嘗試;

《LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION》:匿名論文,提出 LambdaNetworks,無需注意力機制進行視覺任務,由其衍生出的 LambdaResNets,極大地改善了圖像分類模型的速度與準確性權衡;

《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》:匿名論文,提出 Vision Transformer,將 Transformer 應用於圖像識別。

《Learning Texture Transformer Network for Image Super-Resolution》:來自上海交大的微軟研究院實習生發表的超解析度領域的圖像,使用 Transformer 來解決超解析度的問題。

《Feature Pyramid Transformer》:南理、南洋理工等聯合發表的論文,提出特徵金字塔 Transformer(FPT),用於視覺識別任務。

論文一:目標檢測新範式,Detection Transformer(DETR)進行目標檢測

由於 Transformer 廣泛應用於序列數據的處理任務,尤其是在語言建模、機器翻譯等任務中表現出良好的性能,那麼在 NLP 領域表現良好的模型是否可以用到視覺領域?來自 Facebook AI 的研究者實現了這一功能。

該研究把 Transformer 用到了目標檢測任務中,還取得了媲美 Faster R-CNN 的效果。該研究推出的 Transformer 視覺版本——Detection Transformer(以下簡稱 DETR),可用於目標檢測和全景分割。與之前的目標檢測系統相比,DETR 的架構有了根本上的改變,也是第一個將 Transformer 成功整合為檢測 pipeline 中心構建塊的目標檢測框架。基於 Transformer 的端到端目標檢測,沒有 NMS 後處理步驟、真正的沒有 anchor,且對標超越 Faster RCNN。

論文連結:https://arxiv.org/pdf/2005.12872v1.pdf

項目地址:https://github.com/facebookresearch/detr

算法實現:處理目標檢測任務的全新架構

DETR 通過將常見的 CNN 與 Transformer 架構相結合,直接(並行)預測最終的檢測結果。在訓練階段,二分匹配將唯一的預測分配給 GT 框。不匹配的預測應產生無對象(∅)類預測。

DETR 的工作流程可以歸為以下步驟:Backbone -> Transformer -> detect header。

將 DETR 的結構具體化,如下圖所示:

DETR 使用常規的 CNN 主幹來學習輸入圖像的 2D 表示。模型將其展平並在將其傳遞到 transformer 編碼器之前進行位置編碼補充。然後,transformer 解碼器將少量固定數量的學得位置嵌入作為輸入,稱為對象查詢,並另外參與編碼器的輸出。將解碼器的每個輸出嵌入傳遞到預測檢測(類和邊界框)或無對象類的共享前饋網絡(FFN)。

更為具體的 DETR 架構如下:

上圖給出了 DETR 中使用 transformer 的詳細說明,並在每個注意力層傳遞了位置編碼。來自 CNN 主幹的圖像特徵通過了 transformer 編碼器,並將空間位置編碼與添加到查詢和鍵處的空間編碼一起傳遞。然後,解碼器接收查詢(最初設置為零),輸出位置編碼(對象查詢)和編碼器內存,並通過多個多頭自注意力和解碼器 - 編碼器注意力來生成最終的一組預測類標籤和邊界框。此外可以跳過第一解碼器層中的第一自注意力層。

論文二:iGPT 做圖像分類,實現 SOTA 性能

在一篇被 ICML 2020 接收的論文中,OpenAI 推出了用於圖像分類的模型 iGPT,在圖像上訓練 GPT-2(這些圖像被分解為長像素序列),結果發現這種模型能夠理解物體外觀和類別等 2D 圖像特徵。該模型生成的特徵在多個分類數據集上( CIFAR-10、CIFAR-100、STL-10 和 ImageNet )實現了 SOTA 性能,並且獲得了良好的圖像補全效果。

論文連結:https://cdn.openai.com/papers/Generative_Pretraining_from_Pixels_V2.pdf

項目地址:https://github.com/openai/image-gpt

算法實現

OpenAI 研究者提出的方法包含兩個階段:預訓練和微調。

在預訓練階段中,研究者探索自回歸目標和 BERT 目標,並使用序列 Transformer 架構來預測像素,而非語言 token。

如下圖所示,該方法首先對原始圖像進行預處理,將其調整為低解析度和 1D 序列;然後在自回歸下一像素預測或掩碼像素預測這兩個預訓練目標中選擇一個;最後,利用 linear probe 或微調,對這些目標學得的表示進行評估。

方法 1:linear probe,即使用訓練好的模型從下遊數據集圖像中提取特徵,然後將 logistic 回歸與標籤進行擬合;

該研究在 ImageNet 上訓練了三個 transformer 模型:iGPT-S、iGPT-M 和 iGPT-L,它們分別包含 76M、455M 和 14 億參數。此外,研究者還基於 ImageNet 和網絡圖片的混合數據訓練了 iGPT-XL,參數量達 68 億。

由於使用密集注意力建模長序列的計算成本較高,因此該研究選擇使用較低的解析度:32x32、48x48 和 64x64。

解析度繼續降低可以進一步減少計算成本,但是之前研究表明在這種情況下,人類的圖像分類能力會急劇下降。因此,該研究受早期顏色顯示調色板(color display palettes)的啟發,創建了 9-bit 顏色調色板來表示像素。使用該調色板可以得到長度僅為標準 (R, G, B) 1/3 的輸入序列,同時還能有效編碼顏色。

iGPT 的局限性

儘管該研究表明 iGPT 能夠學習強大的圖像特徵,但是該方法仍存在很大的局限性。

由於該研究採用的是用於語言任務的 GPT-2 的通用序列 Transformer,所以需要大量計算:iGPT-L 在 V100 上大約需要訓練 2500 天,而性能類似的 MoCo 模型大約只需要訓練 70 天。

此外,該研究用 Transformer 對低解析度輸入建模,而大多數自監督結果採用的是基於卷積的編碼器,這些編碼器可以輕鬆地處理高解析度輸入。可能需要一種新的架構,例如與域無關的多尺度 Transformer,以實現進一步擴展。

考慮到這些局限性,該研究主要是概念證明,證明了基於 Transformer 的大型語言模型在一些新領域中可以學習優秀的無監督表徵,而無需硬編碼領域的知識。但是,訓練這些模型需要大量的資源成本,而基於卷積神經網絡的方法又具有更高的準確率,這讓這些表徵在視覺領域中無法實際應用。

最後,生成模型可能會呈現出偏差,這些偏差是模型訓練所用的數據造成的。這些偏差中有許多都是有用的,例如假設棕色和綠色像素的部分代表葉子上覆蓋的分支,然後用這種偏差繼續生成圖像。

論文三:LambdaNetworks:無需注意力機制,應用於視覺任務

Transformer 功能強大,但由於其注意力機制對內存的需求是輸入圖像的二次方,在圖像識別上會存在計算效率過低的挑戰。不僅如此,圖像的 head 個數也會帶來很大的顯存消耗。針對這一問題,出現了一種新的網絡 LambdaNetworks,無需建立昂貴的注意力即可捕捉長距離交互,為捕獲模型輸入和上下文信息的結構化集合之間的長期交互提供了一個通用框架。由其衍生出的 LambdaResNets,極大地改善了圖像分類模型的速度與準確性權衡。

LambdaNetworks 通過將可用上下文轉換為線性函數(lambda 函數),並將這些線性函數分別應用於每個輸入來捕獲此類交互。用 Lambda 層來替代注意力機制。注意力機制在輸入和上下文元素之間定義了一個相似核,而 Lambda 層則是將上下文信息總結為一個固定大小的線性函數,從而繞過了需要大量記憶的注意映射。

在 ImageNet 分類、COCO 目標檢測和實例分割三方面的對照實驗表明,LambdaNetwork 顯著優於基於卷積和注意力的同類方法,並且計算效率更高、運行速度更快。

最後,提出了 LambdaResNets,它顯著改善了圖像分類模型的速度——準確性權衡。LambdaResNets 在實現 SOTA ImageNet 準確性的同時,運行速度是 EfficientNets 的 4.5 倍左右。

論文連結:https://openreview.net/pdf?id=xTJEN-ggl1b

GitHub 連結:https://github.com/lucidrains/lambda-networks

算法實現

Lambda 層與注意力機制對比如下圖所示:

研究者證明了 lambda 層的通用性,展示了它們的實現可以被用來捕獲全局、局部或掩模上下文中基於內容和位置的交互。利用 lambda 生成的神經網絡 LambdaNetworks 計算效率很高,能夠以很小的內存成本建模長程依賴,因而可用於高解析度圖像等大型結構化輸入。由此產生的神經網絡體系架構 LambdaNetworks 具有高效的計算能力,並且可以通過直接調用現代神經網絡庫中可用的操作來輕鬆實現。

下表 1 給出了 lambda 層的超參數、參數等:

LAMBDA 層將上下文轉換為線性函數需要以下四步:

1. 生成上下文 lambda 函數:Lambda Layer 將上下文轉換為線性函數,生成 Contextual Lambda Function。lambda 層首先通過線性映射上下文來計算鍵和值,並且通過 softmax 操作跨上下文位置對鍵進行標準化,進而得到生成標準化的鍵 K^-。它的實現可以被看作是一種函數傳遞形式,每個上下文元素貢獻一個內容函數  和一個位置函數。函數是通過加和 context 得到的:

式中 content lambda 為λ^c ,position lambda 為λ_n^p ;λ^c 是對上下文元素的排列不變性,在所有查詢位置 n 之間共享,並編碼如何僅基於上下文內容對 q_n 進行轉換;對比之下,λ_n^p 編碼如何基於內容 c_m 和位置 (n,m) 轉換查詢內容 q_n ,從而支持對此類圖像進行結構化的建模輸入。

2. 將 lambda 應用於查詢,將輸入 x_n 轉換為查詢 ,得到 lambda 層的輸出為:

3. lambda 解釋,λ_n∈R^|k|x|v | 矩陣的列可以看作是 | k|x|v | 維的上下文特徵的固定大小集合。這些上下文特徵是根據上下文的內容和結構匯總得出的。利用 lambda 線性函數動態分配這些上下文特徵,以產生 輸出。這個過程用來捕捉密集的內容和基於位置的遠距離互動,而不產生 Attention Map。

4. 歸一化,該研究的實驗表明,在計算查詢和值之後應用批歸一化是很有用的。

論文四:Vision Transformer(ViT),將 Transformer 應用於圖像識別

在計算機視覺中,卷積仍然佔主導地位。受到 NLP 領域中 Transformer 縮放成功的啟發,該研究嘗試將標準 Transformer 直接應用於圖像,並儘可能減少修改。為此,將圖像分割成多個圖像塊(patch),並將這些圖像塊的線性嵌入序列作為 Transformer 的輸入。然後用 NLP 領域中處理 token 的方式處理圖像塊,並以監督的方式訓練圖像分類模型。

研究表明:處理圖像時,對 CNN 的依賴不是必需的,當直接應用於圖像塊序列時,transformer 也能很好地執行圖像分類任務。該研究基於大量數據進行模型預訓練,並遷移至多個圖像識別基準數據集(ImageNet、CIFAR-100、VTAB 等),結果表明 Vision Transformer(ViT)模型可以獲得與當前最優卷積網絡相媲美的結果,而其訓練所需的計算資源大大減少。

該研究提出的 Vision Transformer 在 JFT-300M 數據集上進行預訓練,在多個圖像識別基準上接近或超過了 SOTA 水平,在 ImageNet 上達到了 88.36% 的準確率,在 ImageNet ReaL 上達到了 90.77% 的準確率,在 CIFAR-100 上達到了 94.55% 的準確率,在 VTAB 基準 19 個任務中達到了 77.16% 的準確率。

論文連結:https://openreview.net/pdf?id=YicbFdNTTy

算法實現

Vision Transformer 模型的設計儘可能的遵循 Transformer 原始設計。如下為模型架構圖:

標準 Transformer 接收 1D 序列的 token 嵌入為輸入。為了處理 2D 圖像,研究者將圖像 x ∈ R^H×W×C 變形為一系列的扁平化 2D patch x_p ∈ R^N×(P^2 ·C),其中 (H, W) 表示原始圖像的解析度,(P, P) 表示每個圖像 patch 的解析度。然後,N = HW/P^2 成為 Vision Transformer 的有效序列長度。

Vision Transformer 在所有層使用相同的寬度,所以一個可訓練的線性投影將每個向量化 patch 映射到模型維度 D 上(公式 1),相應的輸出被稱為 patch 嵌入。

與 BERT 的 [class] token 類似,研究者在一系列嵌入 patch (z_0^0 = x_class)之前預先添加了一個可學習嵌入,它在 Transformer 編碼器(z_0^L )輸出中的狀態可以作為圖像表示 y(公式 4)。在預訓練和微調階段,分類頭(head)依附於 z_L^0。

位置嵌入被添加到 patch 嵌入中以保留位置信息。研究者嘗試了位置嵌入的不同 2D 感知變體,但與標準 1D 位置嵌入相比並沒有顯著的增益。所以,編碼器以聯合嵌入為輸入。

Transformer 編碼器由多個交互層的多頭自注意力(MSA)和 MLP 塊組成(公式 2、3)。每個塊之前應用 Layernorm(LN),而殘差連接在每個塊之後應用。MLP 包含兩個呈現 GELU 非線性的層。

作為將圖像分割成 patch 的一種替代方案,輸出序列可以通過 ResNet 的中間特徵圖來形成。在這個混合模型中,patch 嵌入投影(公式 1)被早期階段的 ResNet 取代。ResNet 的其中一個中間 2D 特徵圖被扁平化處理成一個序列,映射到 Transformer 維度,然後饋入並作為 Transformer 的輸入序列。最後,如上文所述,將分類輸入嵌入和位置嵌入添加到 Transformer 輸入中。

Vision Transformer(ViT)模型局限性

在中等規模的數據集(如 ImageNet)上訓練時,模型產生的結果並不理想,準確率比同等大小的 ResNet 低幾個百分點。但這個結果是可以預料的:Transformer 缺少一些 CNN 固有的歸納偏置,例如平移同變性和局部性,因此在數據量不足的情況下進行訓練後,Transformer 不能很好地泛化。

論文五:紋理 Transformer(TTSR),用 Transformer 來實現端到端的超解析度任務

該研究為圖像超解析度(SR)領域,旨在從低解析度(LR)圖像中恢復真實的紋理。具體而言,該研究提出了一種新穎的用於圖像超解析度的紋理 Transformer 網絡(TTSR:Texture Transformer Network for ImageSuper-Resolution ),其中低解析度 LR 和參考 Ref 圖像分別表示為 Transformer 中的查詢和關鍵字。

TTSR 有四個模塊組成:DNN 的可學習紋理提取器;相關性嵌入模塊;用於紋理傳遞的硬注意力模塊;用於紋理合成的軟注意力模塊。所提出的紋理 Transformer 以跨尺度的方式進一步堆疊,從不同級別(例如從 1x 倍到 4x 倍放大率)恢復紋理。大量的實驗表明,在定量和定性評估方面,TTSR 都較最新技術有了顯著改善。

論文連結:

https://openaccess.thecvf.com/content_CVPR_2020/papers/Yang_Learning_Texture_Transformer_Network_for_Image_Super-Resolution_CVPR_2020_paper.pdf

算法介紹

紋理 Transformer 架構如下:LR,LR↑和 Ref 分別代表輸入圖像,4 倍 bicubic-upsampled 的輸入圖像和參考圖像。依次對 Ref 應用具有相同 4 倍因子的 bicubic 下採樣和上採樣,以獲得與 LR↑domain-consistent 的 Ref↓↑。紋理 Transformer 將 Ref、Ref↓↑、LR↑和主幹產生的 LR 特徵作為輸入,並輸出同樣大小的特徵圖,該特徵圖將進一步用於生成 HR 預測。

紋理 Transformer 包含四個部分:可學習的紋理提取器(LTE)、相關性嵌入模塊(RE)、用於功能轉移的硬注意模塊(HA)和用於特徵合成的軟注意模塊(SA)。

跨尺度特徵集成:跨尺度特徵集成模塊(CSFI)以跨尺度方式堆疊多個紋理 Transformer 的體系結構。RB 表示一組殘餘塊。

堆疊的紋理 Transformer 輸出三個解析度級別(1×,2× 和 4×)的合成特徵,以便將不同尺度的紋理特徵融合到 LR 圖像中。而跨尺度特徵集成模塊(CSFI),以在不同尺度的特徵之間交換信息。每次將 LR 功能上採樣到下一個比例時,都會應用 CSFI 模塊。CSFI 模塊通過上 / 下採樣來接收來自其他級別的交換特徵,隨後是通道尺寸中的級聯操作。然後,卷積層會將要素映射到原始數量的通道中。

在這樣的設計中,從堆疊的紋理 Transformer 傳遞來的紋理特徵可以跨每個比例進行交換,從而獲得更強大的特徵表示。

論文六:特徵金字塔 Transformer(FPT),用於視覺識別任務

將 Transformer 應用於對特徵金字塔 FPN 的改進上,本文提出了一種在空間和尺度上完全活躍的特徵交互,稱為特徵金字塔 Transformer(FPT)。它通過使用三個專門設計的 Transformer:Self-Transformer(ST)、Grounding Transformer(GT)和 Rendering Transformer(RT),以自上而下和自下而上的交互方式,將任何一個特徵金字塔變換成另一個同樣大小但具有更豐富上下文的特徵金字塔。

FPT 作為一個通用的視覺框架,具有合理的計算開銷。最後,本文在實例級(即目標檢測和實例分割)和像素級分割任務中進行了實驗,使用不同的主幹和頭部網絡,並觀察到比所有基準方法和最先進的方法一致的改進。

大量的實驗表明,FPT 可以極大地改善傳統的檢測 / 分割網絡:1)在 MS-COCO test-dev 數據集上,用於框檢測的百分比增益為 8.5%,用於遮罩實例的 mask AP 值增益為 6.0%;2)對於語義分割,分別在 Cityscapes 和 PASCAL VOC 2012 測試集上的增益分別為 1.6%和 1.2%mIoU;在 ADE20K 和 LIP 驗證集上的增益分別為 1.7%和 2.0%mIoU。

論文連結:https://arxiv.org/pdf/2007.09451.pdf

項目地址:https://github.com/ZHANGDONG-NJUST/FPT

算法介紹

FPT 的輸入是一個特徵金字塔,而輸出是一個變換的金字塔,其中每個 level 都是一個更豐富的特徵圖,它編碼了跨空間和尺度的非局部 non-local 交互作用。然後,可以將特徵金字塔附加到任何特定任務的頭部網絡。FPT 中特徵之間的交互採用了 transformer-style。具有整潔的查詢 query、鍵 key 和值 value 操作,在選擇遠程信息進行交互時非常有效,以適當的規模進行非局部 non-local 交互。另外,就如其他 transformer 模型一樣,使用 TPU 減輕計算開銷。

上圖為 FPT 網絡的總體架構。不同的紋理圖案表示不同的特徵 transformer,不同的顏色表示不同比例的特徵圖。Conv 表示輸出尺寸為 256 的 3×3 卷積。每個層次的轉換特徵圖(紅色、藍色和綠色)被重新排列到相應的地圖大小,然後與原始 map 連接,最後再輸入到卷積層,將它們調整到原始厚度。

參考連結:

https://blog.csdn.net/weixin_42137700/article/details/106487743https://www.thepaper.cn/newsDetail_forward_9621937https://zhuanlan.zhihu.com/p/149186888?utm_source=wechat_sessionhttps://blog.csdn.net/sinat_17456165/article/details/106678740https://yongqi.blog.csdn.net/article/details/107873296

相關焦點

  • 不得已而為之---CPU下使用gpt2-large模型進行微調訓練
    GPT2系列共有 5個模型:distilgpt2-small,gpt2(gpt2-small),gpt2-medium,gpt2-large和gpt2-xl。目前我們只使用gpt2和gpt2-large這兩個模型。GPT2需要佔用500MB的存儲空間來存儲其所有參數,而GPT2-large是GPT2的13倍,佔用超過6.5GB的存儲空間。
  • 完全圖解GPT-2:看完這篇就夠了(一)
    本文將帶你一起探索取得優異性能的 GPT-2 模型架構,重點闡釋其中關鍵的自注意力(self-attention)層,並且看一看 GPT-2 採用的只有解碼器的 transformer 架構在語言建模之外的應用。
  • 解析Transformer模型
    前言Google於2017年提出了《Attention is all you need》,拋棄了傳統的RNN結構,「設計了一種Attention機制,通過堆疊Encoder-Decoder結構」,得到了一個Transformer模型,在機器翻譯任務中「取得了BLEU值的新高」。
  • GPT-3誕生,Finetune也不再必要了!NLP領域又一核彈!
    最初的GPT只是一個12層單向的Transformer,通過預訓練+精調的方式進行訓練,BERT一出來就被比下去了。之後2019年初的GPT-2提出了meta-learning,把所有NLP任務的輸入輸出進行了整合,全部用文字來表示,比如對於翻譯任務的輸入是「英翻法:This is life」,輸出是「C'est la vie」。
  • Transformer 模型的 PyTorch 實現
    Transformer架構首先看一下transformer的結構圖:解釋一下這個結構圖。首先,Transformer模型也是使用經典的encoer-decoder架構,由encoder和decoder兩部分組成。上圖的左半邊用Nx框出來的,就是我們的encoder的一層。
  • 用Transformer實現OCR字符識別!
    在CV領域中,transformer除了分類還能做什麼?本文將採用一個單詞識別任務數據集,講解如何使用transformer實現一個簡單的OCR文字識別任務,並從中體會transformer是如何應用到除分類以外更複雜的CV任務中的。
  • 有人做出了中文版GPT-2,可用於寫小說、詩歌、新聞等;15億參數版GPT-2被兩名研究生復現
    問世之後橫掃各大語言建模任務,引發了大量關注以及研究者跟進研究。之後,圍繞著GPT-2產生了各種實用性應用:比如能夠自動補全代碼的Deep TabNine;高中生開源輕量級GPT-2「客戶端」等等。現在,又有兩個圍繞這一語言AI模型的成果出現。中文版GPT-2GPT-2發布以來,雖然關注甚多,但在中文語境中的應用非常少。
  • DETR詳解:NLP裡面的Transformer也能做目標檢測?
    我們的方法簡化了檢測流程,有效地消除了對許多手工設計的組件的需求,例如非最大抑制程序或錨點生成,這些組件明確編碼了我們對任務的先驗知識。新框架的主要成分稱為DEtection TRANSformer或DETR,是基於集合的全局損耗,它通過二分匹配和變壓器編碼器-解碼器體系結構來強制進行唯一的預測。
  • ACL 2020 | MobileBERT:一種與任務無關的模型壓縮方法
    目前很多預訓練模型的壓縮方法都是和下遊任務相關的,一般做法都是把 pre-train 的模型在下遊任務上 fine-tune 之後,進行縮小操作(蒸餾,裁剪等等)。要做一個預訓練的小模型,用蒸餾?MobileBERT 採用的和 BERT-large 一樣深的層數,在每一層中的 transformer 中加入了 bottleneck 機制使得每一層 transformer 變得更窄,但是並沒有丟失其與 self-attention 和 Feed-Forward 之間的平衡。
  • 淺談Transformer模型中的位置表示
    相距較遠的為PER,指的是創立者這一實體,而相距較近的為ORG,指的是組織(公司)這一實體。可見,單詞之間的相對位置在 NER 任務中是十分重要(敏感)的。需要注意的是,相對位置是具有方向性的,即 Inc.
  • 按照時間線幫你梳理10種預訓練模型
    ELMO  2018.03    華盛頓大學   GPT     2018.06    OpenAI  BERT   2018.10    Google XLNet  2019.6    CMU+googleERNIE    2019.4     百度  BERT-wwm  2019.6   哈工大+訊飛  RoBERTa
  • Transformer 在計算機視覺領域瘋狂「內卷」
    用一種新的注意力近似算法進一步解決它對輸入大小的二次依賴問題,大大降低了內存要求,而內存是 transformer 模型的最大瓶頸。由此,在多個基準數據集上獲得新的 SOTA。為了實現上述目標,作者將所提出模型對 Video Transformer 中使用的全時空注意力做了兩個 approximations:將時間注意力限制在一個局部的時間窗口,並利用Transformer 的深度來獲得視頻序列的全時間覆蓋;使用有效的時空混合來共同關注空間和時間位置,而不會在僅有的空間注意模型上引起任何額外的成本。
  • Transformer在目標檢測領域的開山之作DETR模型
    不同任務人工設計不同的非極大值抑制(NMS)閾值、生成新的錨點(Anchor)?是不是直接戳中了各位開發者的痛點!莫慌,今天小編就為萬千開發者破局~這個破局點就是:基於transform的目標檢測算法DETR,簡潔的pipeline,去除NMS、Anchor設計,且在COCO數據集上的指標與Faster RCNN相當。本項目將為大家詳細介紹DETR算法。
  • Transformer及其變種
    作者:哈工大SCIR 蔣潤宇簡介近年來NLP領域最讓人印象深刻的成果,無疑是以谷歌提出的Bert為代表的預訓練模型了。它們不斷地刷新記錄(無論是任務指標上,還是算力需求上),在很多任務上已經能超越人類平均水平,還具有非常良好的可遷移性,以及一定程度的可解釋性。
  • transformer快速入門
    在我們的例子中,第一個元素是Bert模型最後一層的隱藏狀態 encoded_layers = outputs[0]# 我們已將輸入序列編碼為形狀(批量大小、序列長度、模型隱藏維度)的FloatTensorassert tuple(encoded_layers.shape) == (1, len(indexed_tokens), model.config.hidden_size
  • 深入解讀首個萬億級語言模型Switch Transformer
    在計算資源相同的情況下,Switch Transformer 的訓練速度可以達到 T5 模型的 4-7 倍。本文將從「為什麼選擇MoE」、「如何設計高效的網絡結構」、「訓練技巧」和「一些重要的討論」4 個方面進行解讀。
  • 「攻略」7月30日武器跨界石到手,盤點當前版本最值得跨界的10把武器,都是哪些你知道嗎?
    ,需要注意的是此跨界石是無法跨界1~95級武器的。昨日,花雨在公眾號後臺收到了許多小夥伴的留言表示不知道跨界什麼武器比較好,在這裡花雨給大家的建議是「喜歡哪個職業,就給哪個職業跨界」,撿滑鼠開網吧並不值得。
  • 我用GPT-2創造了3000個寵物小精靈,完美復刻《神奇寶貝》!
    https://github.com/MatthewRayfield/pokemon-gpt-2需要說明的是,上述Rayfield用GPT-2語言模型來學習圖像表徵的方法,早已被OpenAI驗證。無監督和自監督的學習,或沒有人為標記的數據的學習,在自然語言處理領域取得了令人矚目的成功,因為像BERT、GPT-2、RoBERTa、T5 等 Transformer 模型,在廣泛的語言任務中取得了最佳成績,但同類的模型在圖像分類任務中,不能生成較為有用的特徵。
  • 只需幾個小操作,就能讓transformer模型推理速度加3.5倍
    你在用 PyTorch 寫 transformer 嗎?請關注下這個項目。
  • 圖解GPT-2(完整版)!
    我希望這種可視化的方式能夠更加容易解釋基於 Transformer 的模型內部原理和進化。一、GPT2 和語言模型首先,我們來看看什麼是語言模型。我們將在下一節中研究這種差異。但它們之間的一個重要差異是,GPT-2 和傳統的語言模型一樣,一次輸出一個  token。例如,讓一個訓練好的 GPT-2 背誦機器人第一定律: