谷歌Titans模型論文解析,Transformer迎來變革拐點——DeepSeek能否“接招”?

一、引入 Titans 模型

我們將深入探討谷歌研究院的一篇新論文《Titans: Learning to Memorize at Test Time》,該論文介紹了一種名為 Titans 的新模型架構。
在這里插入圖片描述

Titans 在緩解 Transformer 二次方成本問題的同時,展現出了令人期待的成果。Titans 模型的設計靈感來源于人類大腦的記憶運作方式。論文中有一句有趣的話提到,記憶是一種基本的心理過程,是人類學習不可或缺的組成部分。如果沒有正常運作的記憶系統,人類和動物將局限于基本的反射和刻板行為

在這里插入圖片描述

二、深度神經長期記憶模塊

Titans 論文的一個關鍵貢獻是深度神經長期記憶模塊(deep neural long-term memory module)。我們先來了解一下它是什么,然后再探討它是如何融入 Titans 模型的。

與循環神經網絡中將記憶編碼為固定向量不同,神經長期記憶模塊本身就是一個模型,是一個多層神經網絡,它將過去的歷史抽象編碼到自身的參數中。要訓練這樣一個模型,一種思路是訓練它記憶訓練數據。然而,眾所周知,記憶會限制模型的泛化能力,可能導致性能不佳。

三、避免過擬合的記憶機制

研究人員設計了一種巧妙的方法,來創建一個能夠記憶,但又不會在訓練數據上過擬合的模型。這種方法的靈感來自人類記憶的一個類比。當我們遇到令人驚訝的事件時,我們更有可能記住它。神經長期記憶模塊的學習過程正是基于這一理念設計的。

3.1 對 “驚訝” 進行建模

在這里插入圖片描述
Updating the neural memory using a surprise element

通過論文中的上述定義,我們可以了解研究人員是如何對 “驚訝” 進行建模的。 Mt代表時刻t的神經長期記憶模塊。它通過上一時刻的參數以及一個被建模為梯度的 “驚訝” 元素進行更新。如果梯度較大,說明模型對輸入更 “驚訝”,這會導致模型權重得到更顯著的更新。

然而,這個定義仍不理想,因為模型可能會錯過 “驚訝” 時刻之后緊接著發生的重要信息。

3.2 對 “過去的驚訝” 進行建模

從人類的角度來看,一個令人驚訝的事件不會在很長一段時間內持續讓我們感到驚訝,盡管它仍然令人難忘。我們通常會適應這個令人驚訝的事件。不過,該事件可能足夠令人驚訝,從而在很長一段時間內吸引我們的注意力,使我們記住整個時間段。

在這里插入圖片描述
Updating the neural memory using both past and momentary surprise

通過論文中的上述定義,我們可以了解到改進后的建模方式,其中包括對 “過去的驚訝” 的建模。現在,我們使用上一時刻的權重狀態以及一個 “驚訝” 分量St來更新神經長期記憶的權重。“驚訝” 分量現在是隨時間測量的,它由帶有衰減因子的上一時刻 “驚訝” 和我們在上一節討論過的當下 “驚訝” 組成。

還有一個尚未建模的因素是遺忘。

3.3 對遺忘進行建模

在這里插入圖片描述
Allowing the model to forget past information

在處理非常長的序列(例如數百萬個標記 tokens)時,管理哪些過去的信息應該被遺忘至關重要。通過論文中的上述定義,我們可以看到最終的建模方式。這些定義與上一節的定義相同,只是我們添加了一個自適應遺忘機制,用 alpha 表示,也稱為門控機制(gating mechanism)。這使得記憶能夠遺忘不再需要的信息。

3.4 損失函數

在這里插入圖片描述
Neural memory loss function

損失函數由上述公式定義。該損失旨在通過將過去的數據存儲為鍵值對來模擬聯想記憶,并訓練模型在鍵和值之間進行映射。與 Transformer 類似,線性層將輸入投影為鍵和值。然后,損失值loss衡量記憶模塊學習鍵值對之間關聯的程度。

需要說明的是,模型不是一次性處理整個序列,而是逐步處理,在其權重中積累記憶信息。

四、Titans 架構

4.1 Titans 架構 1—— 記憶作為上下文(MAC)

論文提出了幾種不同的架構。第一種稱為記憶作為上下文(MAC)。我們可以通過論文中的下圖來了解它。

在這里插入圖片描述
Titans Memory as a Context Architecture

該模型由 3 個組件組成:持久記憶、核心和上下文記憶。給定一個長輸入序列,我們將其劃分為較小的序列。核心組件中顯示的序列實際上是一個分塊后的序列。

持久記憶

我們首先引入持久記憶,在序列開頭添加與數據無關的可學習權重。實際上,這些是可學習的標記,用于存儲不受輸入影響的全局信息。序列還會經過一個注意力塊,在序列開頭添加可學習標記有助于避免注意力分散,因為由于偏差,注意力權重往往會過度關注初始標記。英偉達的 Hymba 模型添加可學習元標記的做法也取得了成功,我后續會介紹。

上下文記憶

上下文記憶(Contextual memory)由深度神經長期記憶模塊構成,因為它依賴于上下文。我們使用神經長期記憶模塊的前向傳遞,以分塊后的輸入序列作為輸入,從長期記憶中檢索記憶標記(memory tokens)。由于即使在測試階段神經記憶也在不斷更新,當我們處理長序列的一個分塊時,神經記憶已經更新了同一序列先前分塊的信息。檢索到的記憶標記會在持久記憶標記之后添加到輸入序列中。

核心組件

核心組件將所有信息整合在一起,使用一個注意力塊,該注意力塊的輸入是擴展后的序列,其中包含來自持久記憶、上下文記憶和輸入本身的信息。通過這種方式,模型可以利用多種類型的記憶。注意力塊的輸出用于更新神經記憶。注意力機制有助于根據給定的輸入確定是否使用長期記憶。此外,注意力機制有助于長期記憶僅存儲當前上下文中有用的信息。最終輸出基于注意力塊的輸出和神經記憶的輸出確定。

4.2 Titans 架構 2—— 記憶作為門控(MAG)

Titans 的下一個架構版本稱為記憶作為門控(MAG: Memory as a Gate),我們可以通過論文中的下圖來了解它。

在這里插入圖片描述
Titans Memory as a Gate Architecture

在這個版本中,我們同樣有代表持久記憶、核心和上下文記憶的 3 個分支。與前一個版本不同的是,這里的序列沒有分塊,輸入序列是完整的輸入序列。這是通過在注意力塊中使用滑動窗口注意力實現的。持久記憶的可學習權重同樣添加到序列開頭。但與之前不同的是,神經記憶不會為注意力塊的上下文提供數據。相反,神經記憶根據輸入序列進行更新,其輸出通過門控機制與核心分支相結合。

4.3 Titans 架構 3—— 記憶作為層(MAL)

Titans 架構的第三個變體稱為記憶作為層(MAL)。我們可以通過論文中的下圖來了解它。

在這里插入圖片描述
Titans Memory as a Layer Architecture

與前一個版本類似,這里的序列也沒有分塊,并且我們使用滑動窗口注意力。

在這個版本中,我們將神經記憶用作模型的一層,輸入序列與可學習權重首先經過神經記憶,然后再經過注意力塊。這種設計允許堆疊多個神經記憶模塊和注意力塊,就像通常堆疊 Transformer 層一樣。然而,這種順序設計使得模型的能力受到每一層能力的限制。這與 Hymba 論文中的觀察結果類似,出于同樣的原因,Hymba 論文中的不同組件采用并行而非順序放置。

4.4 Titans 架構 4——LMM

Titans 的最后一個變體稱為 LMM,它與前一個版本相同,但沒有注意力塊,僅依賴于記憶模塊。

在這里插入圖片描述
Comparison of Titans with baselines on language tasks

在上表中,我們可以看到 Titans 模型與基線模型在語言建模和常識推理任務上的對比。混合模型(同時利用循環和注意力機制)的最佳結果標為藍色,非混合模型的最佳結果標為黃色。

與其他非混合模型相比,Titan LMM 取得了最佳結果,展示了神經長期記憶模塊的強大能力。在混合模型中,MAC Titan 總體表現最佳,MAG Titan 的表現略遜于它。

五、大海撈針任務

在這里插入圖片描述
Needle in a Haystack Comparison

另一個有趣的對比是 “大海撈針” 任務。我們可以從論文的上表中看到結果。在這個任務中,模型需要從非常長的文本中檢索一條信息,從而衡量模型實際有效的上下文長度。

標題中的數字表示評估序列的長度。在所有三個基準測試中,隨著序列長度的增加,Titans 明顯優于基線模型。

六、BABILong 基準測試

在這里插入圖片描述
Comparison on the BABILong benchmark of Titans MAC with top models

在上面的圖中可以看到另一個有趣的結果,該圖展示了 Titans 與頂尖模型在 BABILong 基準測試上的對比。這是一個針對長序列的更具挑戰性的基準測試,在這個測試中,模型需要對分布在極長文檔中的事實進行推理。

在 x 軸上,我們看到的是序列長度,y 軸衡量的是每個模型的準確率。MAC Titan 的結果用紅線表示,在處理極長序列時,它的表現明顯優于其他模型!

參考

  1. [1706.03762] Attention Is All You Need
  2. [2501.00663] Titans: Learning to Memorize at Test Time
  3. [2411.13676] Hymba: A Hybrid-head Architecture for Small Language Models
  4. AI Papers Academy: Titans by Google: The Era of AI After Transformers?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67880.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67880.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67880.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新春賀歲,共赴AGI之旅

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入! 往期精彩文章推薦 季姮教授獨家文字版干貨 | 面向知識淵博的大語言模型 關于AI TIME AI TIME源起于2019年,旨在發揚科學思辨精神,邀請各界人士對人工智能理論、算法和場景應用的本質問題…

Baklib推動數字化內容管理解決方案助力企業數字化轉型

內容概要 在當今信息爆炸的時代,數字化內容管理成為企業提升效率和競爭力的關鍵。企業在面對大量數據時,如何高效地存儲、分類與檢索信息,直接關系到其經營的成敗。數字化內容管理不僅限于簡單的文檔存儲,更是整合了文檔、圖像、…

【memgpt】letta 課程4:基于latta框架構建MemGpt代理并與之交互

Lab 3: Building Agents with memory 基于latta框架構建MemGpt代理并與之交互理解代理狀態,例如作為系統提示符、工具和agent的內存查看和編輯代理存檔內存MemGPT 代理是有狀態的 agents的設計思路 每個步驟都要定義代理行為 Letta agents persist information over time and…

測試方案和測試計劃相同點和不同點

在軟件測試領域,測試方案與測試計劃皆為舉足輕重的關鍵文檔,盡管它們有著緊密的關聯,但在目的與內容層面存在著顯著的差異。相同點: 1.共同目標:測試方案和測試計劃的核心目標高度一致,均致力于保障軟件的…

詳細介紹:網站背景更換功能

目錄 1. HTML 部分 2. JavaScript 部分 3. 完整流程 4. 總結 5. 適用場景 本文將介紹如何通過文件上傳實現網站背景圖片的更換。通過使用 JavaScript 和 Axios,我們可以允許用戶上傳圖片文件并將其作為網站的背景圖片。上傳的圖片 URL 會保存在瀏覽器的 localSt…

嵌入原則:數據特征如何 融入 模型的 損失地形

嵌入原則:數據特征如何 融入 模型的 損失地形 第一節:嵌入原則的基本概念與公式解釋 機器學習中的嵌入原則,就像 “雕刻師” 將 “石塊的紋理” 逐漸融入到 “雕塑的造型” 中。數據特征不再是獨立的輸入,而是被模型 “吸收” 和…

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中調用的IP核,新建文件PLL_test.v 2、代碼如圖 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…

【C++】P5734 【深基6.例6】文字處理軟件

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯題目描述💯題目描述輸入格式輸出格式示例輸入與輸出輸入:輸出: 💯我的做法操作1:在文檔末尾插入字符串操作2&…

后盾人JS -- 原型

沒有原型的對象 也有沒有原型的對象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

洛谷 P1130 紅牌 C語言

題目描述 某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當復雜&#xff0c;一共包括 N 個步驟。每一步驟都由政府的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快進程&#xff0c;每一步政府都派了 M 個工作人員來檢查材料。不幸的是&…

【線程】基于環形隊列的生產者消費者模型

1 環形隊列 環形隊列采用數組來模擬&#xff0c;用取模運算來模擬環狀特性。 1.如何判斷環形隊列為空或者為滿? 當環形隊列為空時&#xff0c;頭和尾都指向同一個位置。當環形隊列為滿時&#xff0c;頭和尾也都指向同一個位置。 因此&#xff0c; 可以通過加計數器或者標記…

二分/雙指針/單調棧隊列專題

1.4924. 矩陣 - AcWing題庫 一開始打表找規律以為是右上角向左下角遞增,但當n很大的時候就不對了,因此我們得去觀察 i * i 100000 * (i - j) j * j i * j 這個式子,我們關心的是這個式子的單調性因此我們可以分別將i和j看作常數來對式子進行求導,可以得到 f(i) 2 * i 10…

Shell $0

個人博客地址&#xff1a;Shell $0 | 一張假鈔的真實世界 我們已經知道在Shell中$0表示Shell腳本的文件名&#xff0c;但在有腳本調用的情形中&#xff0c;子腳本中的$0會是什么值呢&#xff1f;我們通過下面的實例來看。 已測試系統列表&#xff1a; Mac OS X EI Capitan 1…

商品列表及商品詳情展示

前言 本文將展示一段結合 HTML、CSS 和 JavaScript 的代碼&#xff0c;實現了一個簡單的商品展示頁面及商品詳情&#xff0c;涵蓋數據獲取、渲染、搜索及排序等功能。 效果展示 點擊不同的商品會展示對應的商品詳情。 代碼部分 代碼總體實現 <!DOCTYPE html> <htm…

[ VS Code 插件開發 ] 使用 Task ( 任務 ) 代替 createTerminal (終端) 來執行命令

VSCode 官方自己的插件就是這樣執行命令的. 使用體驗 比 默認的終端 好太多了. 重用終端, Shell 集成 , 按任意鍵關閉, 任務是否成功, 左側命令操作 (菜單中功能很多) 等 import * as vscode from vscode; // 執行的命令 let command_str "npm run dev" // 工作目…

大模型綜述一鏡到底(全文八萬字) ——《Large Language Models: A Survey》

論文鏈接&#xff1a;https://arxiv.org/abs/2402.06196 摘要&#xff1a;自2022年11月ChatGPT發布以來&#xff0c;大語言模型&#xff08;LLMs&#xff09;因其在廣泛的自然語言任務上的強大性能而備受關注。正如縮放定律所預測的那樣&#xff0c;大語言模型通過在大量文本數…

Python處理數據庫:MySQL與SQLite詳解

Python處理數據庫&#xff1a;MySQL與SQLite詳解 在數據處理和存儲方面&#xff0c;數據庫扮演著至關重要的角色。Python提供了多種與數據庫交互的方式&#xff0c;其中pymysql庫用于連接和操作MySQL數據庫&#xff0c;而SQLite則是一種輕量級的嵌入式數據庫&#xff0c;Pytho…

【C++】B2124 判斷字符串是否為回文

博客主頁&#xff1a; [小????????] 本文專欄: C 文章目錄 &#x1f4af;前言&#x1f4af;題目描述輸入格式&#xff1a;輸出格式&#xff1a;樣例&#xff1a; &#x1f4af;方法一&#xff1a;我的第一種做法思路代碼實現解析 &#x1f4af;方法二&#xff1a;我…

ubuntuCUDA安裝

系列文章目錄 移動硬盤制作Ubuntu系統盤 前言 根據前篇“移動硬盤制作Ubuntu系統盤”安裝系統后&#xff0c;還不能夠使用顯卡。 如果需要使用顯卡&#xff0c;還需要進行相關驅動的安裝&#xff08;如使用的為Nvidia顯卡&#xff0c;就需要安裝相關的Nvidia顯卡驅動&#xff…

Selenium 使用指南:從入門到精通

Selenium 使用指南&#xff1a;從入門到精通 Selenium 是一個用于自動化 Web 瀏覽器操作的強大工具&#xff0c;廣泛應用于自動化測試和 Web 數據爬取中。本文將帶你從入門到精通地掌握 Selenium&#xff0c;涵蓋其基本操作、常用用法以及一個完整的圖片爬取示例。 1. 環境配…