以下是我在RWKV播客中的一些想法摘要:https://www.latent.space/p/rwkv#details

為什么替代方案很重要?
隨著2023年的人工智能革命,Transformer架構目前正處于巔峰。然而,由于人們急于采用成功的Transformer架構,所以會容易忽視可以借鑒的替代品。
作為工程師,我們不應該采取一刀切的方法,對每顆釘子都使用相同的錘子。我們應該在每一個解決方案中找到取舍;否則將會被困在特定平臺的限制范圍內,同時因不知道有其他選擇而感到“幸福”,這可能會使發展一夜回到解放前。
這個問題并不是人工智能領域獨有的,而是一種從古到今都在重復的歷史模式。
SQL戰爭歷史的一頁……
最近軟件開發中一個值得注意的例子是,當SQL服務器開始受到物理限制時,便出現了NoSQL的趨勢。世界各地的初創企業都出于“規模”的原因轉向了NoSQL,盡管它們遠未達到這些規模。
然而,隨著時間的推移,當最終一致性和NoSQL管理開銷的出現,以及硬件功能在SSD速度和容量方面的巨大飛躍, SQL服務器最近又出現了回歸的趨勢,因為它們使用簡單性,并且現在90%以上的初創公司都有足夠的可擴展性。
這是否意味著SQL比NoSQL更好,或反之亦然?不,這只是意味著每種技術都有優缺點和學習點的首選用例,這些用例可以在類似技術中交叉傳播。
目前Transformer架構最大的痛點是什么?
通常,這包括計算、上下文大小、數據集和對齊。在本次討論中,我們將重點討論計算和上下文長度:
- 由于使用/生成的每個令牌的O(N^2)增加而導致的二次計算成本。這使得大于10萬的上下文大小非常昂貴,從而影響推理和訓練。
- 當前的GPU短缺加劇了這個問題。
- 上下文大小限制了Attention機制,嚴重限制了“智能代理”用例(如smol-dev),并強制解決問題。較大的上下文需要較少的解決方法。
那么,我們該如何解決這個問題呢?
介紹RWKV:一種線性Transformer/現代大型RNN
RWKV和微軟RetNet是第一個被稱為“線性Transformer”的新類別。
它通過支持以下內容直接解決了上述三個限制:
- 線性計算成本,與上下文大小無關。
- 在CPU(尤其是ARM)中,允許以更低的要求在RNN模式下輸出合理的令牌/秒。
- 沒有作為RNN的硬上下文大小限制。文檔中的任何限制都是指導原則——您可以對其進行微調。
隨著我們不斷將人工智能模型擴大到100k及以上的上下文大小,二次方計算成本開始呈指數級增長。
然而,線性Transformer并沒有放棄遞歸神經網絡架構及解決其瓶頸,這迫使它們被取代。
不過,重新設計的RNN吸取了Transformer可擴展的經驗教訓,使RNN能與Transformer工作方式類似,并消除了這些瓶頸。
在訓練速度方面,用Transformer讓它們重返賽場——允許它們在O(N)成本下高效運行,同時在訓練中擴展到10億個參數以上,同時保持類似的性能水平。

圖表:線性Transformer計算成本按每個令牌線性縮放與變換器的指數增長
當你按平方比線性縮放時,你將在2k令牌計數時達到10倍以上,在100k令牌長度時達到100倍以上。
在14B參數下,RWKV是最大的開源線性Transformer,與GPT NeoX和其他類似數據集(如the Pile)不相上下。

各種基準顯示RWKV模型的性能與類似規模的現有變壓器模型相當
但用更簡單的話來說,這意味著什么?
優點
- 在較大的上下文大小中,推理/訓練比Transformer便宜10倍甚至更多
- 在RNN模式下,可以在非常有限的硬件上緩慢運行
- 與相同數據集上的Transformer性能相似
- RNN沒有技術上下文大小限制(無限上下文!)
缺點
- 滑動窗口問題,有損內存超過某一點
- 尚未證明可擴展到14B參數以上
- 不如變壓器優化和采用
因此,雖然RWKV還沒有達到LLaMA2那樣的60B+參數規模,但有了正確的支持/資源,它有可能以更低的成本和更大的環境實現這一目標,尤其是在模型趨向于更小、更高效的情況下。
如果效率對您的用例很重要,請考慮它。但這并不是最終的解決方案——健康的替代品仍然是關鍵。
我們可能應該學習的其他替代方案及其好處
擴散模型:文本訓練速度較慢,但對多時期訓練具有極高的彈性。找出原因可以幫助緩解令牌危機。
生成對抗性網絡/代理:可以在沒有數據集的情況下,使用技術將所需的訓練集訓練到特定目標,即使是基于文本的模型。
原文標題:Introducing RWKV: The Rise of Linear Transformers and Exploring Alternatives,作者:picocreator
https://hackernoon.com/introducing-rwkv-the-rise-of-linear-transformers-and-exploring-alternatives































