為什么Transformer推理需要做KV緩存

一、我們先來回憶一下在transformer中KV在哪里出現過,都有什么作用?

α的計算過程:

這里引入三個向量:

圖中的q為Query,用來匹配key值

圖中的k為key,用來被Query匹配

圖中的Value,是用來被進行加權平均的

這一步我們知道α就是K與Q的匹配程度,匹配程度越高則權重越大。

Wq、Wk、Wv這三個參數矩陣都需要從訓練數據中學習

二、為什么要使用KV緩存

使用KV緩存是為減少生成token時候的矩陣運算。

? ? ? ? 因為在transformer中文本是逐個token生成的,每次新的預測會基于之前生成的所有token的上下文信息,這種對順序數據的依賴會減慢生成過程,因為每次預測下一個token都需要重新處理序列中所有之前的token。

? ? ? ? 比說我們要預測第100個token,那么模型必須使用前面99個token的信息,這就需要對這些token做矩陣運算,而這個矩陣運算是非常耗時的。所以KV緩存就是為了減少這種耗時的矩陣運算,在推理過程中會把鍵和值放在緩存中,這樣模型就可以在后續生成token的時候,直接訪問緩存,而不需要重新計算

三、KV緩存具體是怎么實現的?

這兩張圖分別是有緩存和沒有緩存的情況

因為是第一個token,所以有沒有緩存計算過程沒有差別

? ? ? 接下來到第二個token時,可以看到紫色標出的就是緩存下來的key和value,在沒有緩存的情況下KV都要重新計算。如果做了緩存就只需要把歷史的KV拿出來,同時只計算最新的那個token的KV再拼接成一個大矩陣就行了。

對比一下,有緩存的計算量明顯減少了一半

那后面的token一樣,每次歷史計算過的鍵和值就不用重新計算了,這樣就極大減少了self attention 的計算量,從序列長度的二次方直接變成了線性

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

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

相關文章

【大模型面試】大模型(LLMs)高頻面題全面整理(★2025年5月最新版★)

【大模型面試】大模型(LLMs)高頻面題全面整理(★2025年5月最新版★) 🌟 嗨,你好,我是 青松 ! 🌈 自小刺頭深草里,而今漸覺出蓬蒿。 本筆記適合大模型初學者和…

JAVA:使用 iTextPDF 處理 PDF 的技術詳解

1、簡述 iTextPDF 是一個功能強大的 Java PDF 庫,可以用來創建、修改和處理 PDF 文檔。通過它,我們可以完成如生成 PDF、讀取 PDF 內容、添加水印、合并 PDF 等多種操作。本篇博客將詳細介紹 iTextPDF 的使用方法,并提供一些實踐樣例,幫助開發者快速上手。 樣例代碼: htt…

模態與非模態窗口及使用時的數據交互

模態窗口使用exec()方法顯示,會阻塞父窗口,直到對話框關閉; 非模態對話框允許同時操作主窗口和設置窗口,使用show()。 模態和非模態的主要區別在于用戶能否與父窗口交互,非模態更適合需要頻繁切換的場景。非模態窗口需…

Docker進入MySQL之后如何用sql文件初始化數據

關閉Docker-compose.yml里面所有容器 docker compose -f docker_compose.yml down后臺形式開啟Docker-compose.yml所有容器 docker compose -f docker_compose.yml up -d羅列出所有啟動過的(包括退出過的)容器 docker ps -a進入指定容器ID內部 docke…

MAC 地址

MAC地址(Media Access Control Address)是指網絡設備在數據鏈路層使用的唯一標識符,也稱為硬件地址或物理地址。它用于標識設備之間的網絡通信,是網絡適配器(如網卡、Wi-Fi適配器等)的唯一標識。每個網絡設…

Redis 7.0中5種新特性及實戰應用

Redis 7.0引入了多項革命性的新特性,不僅在性能和可靠性方面有所提升,更在功能和使用體驗上有了質的飛躍。本文將介紹Redis 7.0的五大關鍵新特性,可以根據實際情況利用Redis 7.0的強大功能,構建更高效、更可靠的應用系統。 特性一…

PHP實現PDF自動簽名

技術要點:在PDF中找到一個固定錨點,在需要放置圖片的地方找到測試出錨點對應的XY位 // 使用了poppler方法,其他PDF庫在獲取坐標方面有各種問題,他的安裝是在Linux底層,比在PHP項目中用Composer安裝的庫看上去更穩定&a…

中達瑞和便攜式高光譜相機:珠寶鑒定領域的“光譜之眼”

在珠寶行業中,真偽鑒定始終是核心需求。隨著合成技術與優化處理手段的日益精進,傳統鑒定方法逐漸面臨挑戰。中達瑞和推出的便攜式高光譜相機,憑借其獨特的“圖譜合一”技術,為珠寶真假鑒定提供了科學、高效且無損的解決方案&#…

2025年滲透測試面試題總結-某戰隊紅隊實習面經(附回答)(題目+回答)

網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 某戰隊紅隊實習面經 個人經歷與技術能力 2. HVV/攻防演練成績 3. 上一個工作主要內容 4. 有意思的邏…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】5.1 描述性統計分析(均值/方差/分位數計算)

👉 點擊關注不迷路 👉 點擊關注不迷路 👉 點擊關注不迷路 文章大綱 5.1 描述性統計分析:均值、方差與分位數計算實戰5.1.1 數據準備與分析目標數據集介紹分析目標 5.1.2 均值計算:從整體到分組分析總體均值計算加權均值…

npm下載插件無法更新package.json和package-lock.json文件的解決辦法

經過多番查證,使用npm config ls查看相關配置等方式,最后發現全局的.npmrc文件的配置多寫了globaltrue,去掉就好了 如果參數很多,不知道是哪個參數引起的,先只保留registryhttp://xxx/,試試下載&#xff0…

基于Anaconda的Pycharm環境配置

一、前提條件: 1、默認已安裝完Anaconda,且創建虛擬環境,參見https://blog.csdn.net/XIAOWEI_JIN/article/details/147657029?spm1001.2014.3001.5501 2、已安裝pycharm,下載鏈接見Pycharm官網,以下以PyCharm 2024.…

Word域操作記錄(從1開始的畢業論文格式排版)

傻逼Word。 寫在最前面 如果你的文章不包括:自動目錄、交叉引用、自動題注。請關閉此頁面。繼續閱讀本文是在浪費您用于跟格式如泥潭里纏斗的時間。 本文內容概述 從指導手冊到畢設初稿 基于多級列表的自動目錄生成方法 正片開始 關于文字 拿到畢設手冊&#…

Linux中的web服務

什么是www www是world wide web的縮寫,及萬維網,也就是全球信息廣播的意思 通常說的上網就是使用www來查詢用戶所需要的信息。 www可以結合文字、圖形、影像以及聲音等多媒體,超鏈接的方式將信息以Internet傳遞到世界各 處去。 當你連接w…

linux -c程序開發

目的是在linux中創建可執行的c語言程序的步驟 和gcc,make和git的簡單運用 建立可執行程序的步驟: -1:預處理: --:頭文件展開;--去掉注釋;--宏替換;--條件編譯 -2:編譯 --:將預處理之后的c語言替換為匯編語言帶阿米 --:語法分析,語義分析,代碼生成 --:檢查語法正確性并且優…

Netty 是一個基于 Java NIO 的高性能網絡通信框架

Netty 是一個基于 Java NIO 的高性能網絡通信框架,廣泛應用于構建分布式系統、RPC 框架、即時通信系統等場景。它的核心設計目標是 異步、非阻塞、高可擴展性,其底層原理涉及 事件驅動模型、線程模型、內存管理 等關鍵技術。以下是 Netty 的核心原理和架…

UI 庫 Ant Design 中的 Table 表格和分頁器:快速實現數據展示和分頁功能

🤍 前端開發工程師、技術日更博主、已過CET6 🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 🍚 藍橋云課簽約作者、…

Java實現堆排序算法

1. 堆排序原理圖解 堆排序是一種基于二叉堆(通常使用最大堆)的排序算法。其核心思想是利用堆的性質(父節點的值大于或等于子節點的值)來高效地進行排序。堆排序分為兩個主要階段:建堆和排序。 堆排序步驟: …

【Hive入門】Hive安全管理與權限控制:審計日志全解析,構建完善的操作追蹤體系

目錄 引言 1 Hive審計日志概述 1.1 審計日志的核心價值 1.2 Hive審計日志類型 2 HiveServer2操作日志配置 2.1 基礎配置方案 2.2 日志格式解析 2.3 日志輪轉配置 3 Metastore審計配置 3.1 Metastore審計啟用 3.2 審計事件類型 4 高級審計方案 4.1 與Apache Ranger…

力扣-hot100 (缺失的第一個正數)

41. 缺失的第一個正數 困難 給你一個未排序的整數數組 nums ,請你找出其中沒有出現的最小的正整數。 請你實現時間復雜度為 O(n) 并且只使用常數級別額外空間的解決方案。 示例 1: 輸入:nums [1,2,0] 輸出:3 解釋&#xff…