熱門話題
#
Bonk 生態迷因幣展現強韌勢頭
#
有消息稱 Pump.fun 計劃 40 億估值發幣,引發市場猜測
#
Solana 新代幣發射平臺 Boop.Fun 風頭正勁
你正在參加 OpenAI 的研究科學家面試。
面試官問:
「你會如何將 LLM 的上下文長度從 2K 擴展到 128K 令牌?」
你:「我會在長文檔上進行微調,使用 128K 的上下文」
面試結束。
這是你錯過的內容:
擴展上下文窗口不僅僅是關於更大的矩陣。
在傳統的變壓器中,將標記擴展8倍會因為注意力的平方複雜性而使內存需求增加64倍。請參考下面的圖片!
那麼,我們該如何管理呢?
繼續...👇

1) 稀疏注意力
它通過以下方式限制注意力計算到一部分標記:
- 使用局部注意力(標記僅關注其鄰近標記)。
- 讓模型學習應該關注哪些標記。
但這在計算複雜性和性能之間存在權衡。

在 ModernBERT 中使用了類似的想法。
→ 每第三層進行全局注意力
→ 否則進行局部注意力(128 個標記)
結果:
- 16 倍更長的序列長度
- 性能大幅提升
- 最具記憶體效率的編碼器
簡單卻強大。👇
這裡有一個來自論文的直觀解釋:
想像一下你在讀一本書。對於你所讀的每一句話,你是否需要完全了解整個情節才能理解大部分內容(全局注意)?
還是說,對當前章節的了解就足夠了(局部注意),只要你偶爾回想一下它對主要情節的重要性(全局注意)?
在絕大多數情況下,答案是後者。
2) 快速注意力
這是一種快速且節省記憶體的方法,保留了傳統注意力機制的精確性,即它使用全局注意力,但效率更高。
整個想法圍繞著優化GPU記憶體內的數據移動。
讓我們來了解一下!

一些背景細節:
- 線程是最小的執行單位。
- 幾個線程形成一個區塊。
另外:
- 區塊中的線程共享一種稱為 SRAM 的快速(但稀缺)記憶體。
- 所有區塊共享一種稱為 HBM 的全局記憶體(豐富但緩慢)。
查看這個 👇

注意將大型矩陣在 SRAM 和 HBM 之間移動:
計算 QK:
- 將矩陣分配給線程
- 計算,然後
- 將產品發送到 HBM
計算 softmax:
- 將產品分配給線程
- 計算,然後
- 將輸出發送到 HBM
對所有層重複此操作。
查看這個 👇

閃電注意力涉及硬體級的優化,利用 SRAM 來快取中間結果。
這樣可以減少冗餘的移動,提供高達 7.6 倍於標準注意力方法的速度提升。
查看這個 👇

98.93K
熱門
排行
收藏