Transformer其實是一種集合Set處理器

banq發表於2024-10-18

Transformers的一個常見誤解是認為它們是一個序列處理架構。其實不是,他們是一個“集合處理(set-processing)”架構。Transformers是100%順序不可知的(這是與RNN相比的重大創新)。

Transformer模型在處理序列資料時,引入了一種“集合處理”架構,與傳統的序列處理架構如RNN不同,它不是基於序列的順序進行處理,而是可以同時處理整個序列,這得益於其自注意力機制(Self-Attention):這種機制使得模型能夠捕捉序列中任意兩個位置之間的依賴關係,無論這些位置之間的距離有多遠。

在Transformer中,為了引入序列的順序資訊,通常會在輸入的token嵌入中加入位置編碼(Positional Encoding)。這個位置編碼可以是基於正弦和餘弦函式的固定模式,也可以是可學習的引數。這樣,模型就能夠利用這些位置資訊來理解序列中各個元素的相對或絕對位置。

對於非序列化的資料,如2D網格或3D立方體,Transformer同樣可以處理。這就需要在位置編碼上進行一些創新。例如,可以在token嵌入中加入對應於其在2D網格或3D空間中位置的位置編碼。

  • 對於2D網格,可以透過將每個網格點的座標(i,j)嵌入並進行concatenation來實現2D位置嵌入,從而使Transformer能夠處理這些非序列化資料。
  • 對於3D三維,可以採用類似的方法,透過嵌入三維座標來實現。

2D網格
現在,您有了一個2D位置嵌入,使您的Transformer能夠原生地處理令牌網格!這對ARC-AGI很有用,因為ARC-AGI網格當然是離散令牌的2D網格,而不是序列:

  • 首先,如果有足夠多的例子,你實際上可以訓練一個序列 Transformer 來解決單個 ARC 任務,這表明解決程式的標記化和可表示性並不是問題。
  • 其次,你完全不必使用序列! 你可以使用二維位置嵌入,現在你有了一個原生網格感知Transformer。

3D三維
此外,Transformer模型在3D視覺任務中的應用也越來越廣泛,包括3D目標檢測、分割、點雲補全等任務。這些應用通常涉及到將3D資料轉換為Transformer能夠處理的格式,例如將點雲資料轉換為一系列向量,然後透過自注意力機制來捕捉點之間的複雜關係。

總的來說,Transformer模型的靈活性和強大的表示能力使其不僅在自然語言處理領域,在3D視覺和處理非序列化資料方面也展現出巨大的潛力。透過合理設計位置編碼,Transformer可以被應用於各種不同的資料結構和任務中。

banq注:
Set集合是一種依賴於上下文Context的聚合,這其實來自於DDD領域驅動設計的核心方法,也就是說,Transformer類似人類的領域驅動設計方法,人類是使用從上下文中抽象出聚合模型,然後放入計算機處理,而set集合處理器是直接處理。

上下文是一種離散的資料邊界:無以為用,有以為利,這裡的“利”是利害、利益,代指一種有形狀、有邊界的集合,也就是說,想一個東西有用,必須置於上下文中,這其實已經有很早的神經符號了。

世界上任何東西,只要能置於上下文資料集合中,就可以使用Transformer處理,這個成就遠遠高於諾貝爾獎辛頓的反向傳播和波茲曼機,只是不容易被人們理解而已。
 

相關文章