大模型性能優化KV Cache

原理

KV Cache的本質就是避免重復計算,把需要重復計算的結果進行緩存,生成式模型的新的token的產生需要用到之前的所有token的 K , V K,V K,V,在計算注意力的時候是當前的 Q Q Q和所有的 K , V K,V K,V來進行計算,所以是緩存 K , V K,V K,V

由于Causal Mask的存在,前面已經生成的token不需要與后面的token產生attention,也就是用不到前面token的 Q Q Q,用的上前面token的 K , V K,V K,V,具體的公式如下:
a t t 1 ( Q , K , V ) = s o f t m a x ( Q 1 K 1 T D ) V 1 att_1(Q,K,V)=softmax(\frac{Q_1K_1^T}{\sqrt{D}})V_1 att1?(Q,K,V)=softmax(D ?Q1?K1T??)V1?
a t t 2 ( Q , K , V ) = s o f t m a x ( Q 2 K 1 T D ) V 1 + s o f t m a x ( Q 2 K 2 T D ) V 2 att_2(Q,K,V)=softmax(\frac{Q_2K_1^T}{\sqrt{D}})V_1+softmax(\frac{Q_2K_2^T}{\sqrt{D}})V_2 att2?(Q,K,V)=softmax(D ?Q2?K1T??)V1?+softmax(D ?Q2?K2T??)V2?
a t t 3 ( Q , K , V ) = s o f t m a x ( Q 3 K 1 T D ) V 1 + s o f t m a x ( Q 3 K 2 T D ) V 2 + s o f t m a x ( Q 3 K 3 T D ) V 3 att_3(Q,K,V)=softmax(\frac{Q_3K_1^T}{\sqrt{D}})V_1+softmax(\frac{Q_3K_2^T}{\sqrt{D}})V_2+softmax(\frac{Q_3K_3^T}{\sqrt{D}})V_3 att3?(Q,K,V)=softmax(D ?Q3?K1T??)V1?+softmax(D ?Q3?K2T??)V2?+softmax(D ?Q3?K3T??)V3?

可以看出, K , V K,V K,V存在重復計算的情況,因此可以進行Cache。

KV Cache只適用于Decoder架構,因為有Causal Mask的存在,如果是Encoder,處理的是輸入序列,是一次性完成整個序列attention的計算,并不像Decoder一樣有自左向右的重復性的計算,Encoder由于其一次性和并行性,用不上KV-Cache,而解碼器由于其自回歸性,KV Cache是很有用的。

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

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

相關文章

打破數據分析壁壘:SPSS復習必備(九)

有序定性資料統計推斷 1.分類 單向有序行列表 雙向有序屬性相同行列表 雙向有序屬性不同行列表 2.單向有序行列表 秩和檢驗 ① 兩組單向有序分類資料 ②多組單向有序定性資料 步驟: 1.建立檢驗假設和確定檢驗水準 2.編秩 3.求秩和 4.確定檢驗統計量 5…

按位與、或、異或操作符

目錄 & --- 按位與操作符 按位與操作符運用規則 按位與操作符相關代碼 按位與操作符相關代碼驗證 | --- 按位或操作符 按位或操作符運用規則 按位或操作符相關代碼 按位或操作符相關代碼驗證 ^ --- 按位異或操作符 按位異或操作符運用規則 按位異或操作符相關代…

分頁組件 vue/uniapp

失效如上圖 1.父組件調用 <onion-pagination :page.sync="todusGameQuery.pageSize" @update:page="changeTodusLoadMore":pageSize="todusGameQuery.pageNum" :total="todusGameTotal"></onion-pagination> 2.組件封裝…

海納斯 hinas 的hi3798mv100 華為悅盒 6108v9 安裝wifi模塊

hi3798mv100安裝wifi模塊 1.執行腳本 &#xff0c;執行完畢后重啟服務器2. 繼續執行腳本3.檢查網卡驅動安裝是否正確4.查看網卡安裝狀態5.連接wifi結尾 1.執行腳本 &#xff0c;執行完畢后重啟服務器 bash <(curl -sSL https://gitee.com/xjxjin/scripts/raw/main/install_…

【開源項目】自然語言處理領域的明星項目推薦:Hugging Face Transformers

在當今人工智能與大數據飛速發展的時代&#xff0c;自然語言處理&#xff08;NLP&#xff09;已成為推動科技進步的重要力量。而在NLP領域&#xff0c;Hugging Face Transformers無疑是一個備受矚目的開源項目。本文將從項目介紹、代碼解釋以及技術特點等角度&#xff0c;為您深…

Leetcode Hot100之矩陣

1. 矩陣置零 題目描述 給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 解題思路 題目要求進行原地更改&#xff0c;也就是不能使用額外的空間&#xff0c;因此我們可以使用第一行的元素來記錄對應的…

Java SpringBoot 打包后 獲取文件 打包后找不到文件 解決方法

在SpringBoot下 本地運行獲取項目下的文件是沒問題的&#xff0c;在打包后獲取則找不到文件 原因&#xff1a; 在Spring Boot項目中&#xff0c;當嘗試訪問項目下的文件時&#xff0c;本地開發環境和打包后的運行環境可能會有所不同。在本地開發時&#xff0c;通常可以直接通過…

Python自動造波器橢圓曲線波孤子解

&#x1f3af;要點 &#x1f3af;快速傅立葉變換算法周期域解橢圓曲線波 | &#x1f3af;算法數值解孤波脈沖和結果動畫 | &#x1f3af;三種語言孤子解淺水表面波方程 | &#x1f3af;漸近分解算法孤子波 | &#x1f3af;自適應步長算法孤子波 | &#x1f3af;流體自動造波器…

基于STM32的智能家庭安防系統

目錄 引言環境準備智能家庭安防系統基礎代碼實現&#xff1a;實現智能家庭安防系統 4.1 數據采集模塊4.2 數據處理與分析4.3 控制系統實現4.4 用戶界面與數據可視化應用場景&#xff1a;家庭安防管理與優化問題解決方案與優化收尾與總結 1. 引言 智能家庭安防系統通過使用ST…

終端基本指令使用不了

當你修改了~/.zshrc文件后發現像ls、vim這樣的基本命令無法使用&#xff0c;這通常意味著你的PATH環境變量可能被錯誤地修改或覆蓋了&#xff0c;導致shell無法找到這些命令的可執行文件。以下是幾個可能的原因和解決方法&#xff1a; PATH變量被錯誤修改&#xff1a; 確認你沒…

利用flex來布局頂部菜單欄

安裝vscode插件 css peek&#xff1a;快速定位到css定義的位置 微軟的live preview 替換live server 因為這個好像不支持utf8 前置css知識 span標簽是一個行內容器&#xff0c;用于標記文本的一部分&#xff0c;或文檔的一部分。它與 div 非常相似&#xff0c;但 div 是塊級…

數據結構——帶頭雙向循環鏈表(c語言實現)

目錄 1.單鏈表和雙向鏈表對比 2.雙向鏈表實現 2.1 創建新節點 2.2 鏈表初始化 2.3 尾插 2.4 頭插 2.5 尾刪 2.6 頭刪 2.7 查找 2.8 指定位置后插入數據 2.9 刪除指定節點 2.10 銷毀鏈表 2.11 打印鏈表 前言&#xff1a; 我們在前幾期詳細地講解了不帶頭單…

vue下載本地xls模版靜態文件

需求導入的下載模版不想放在服務器放在前端本地下載靜態資源最簡單的方式直接訪問 public 文件夾下的文件 方法一&#xff1a;使用靜態文件路徑 將文件放在 public 文件夾中&#xff1a; 把你的文件從 src/assets 移動到 public 文件夾。例如&#xff1a;public/template.xls。…

【高考志愿】電氣工程

目錄 一、專業概述 二、專業特點 三、就業前景 四、選擇學校 高考志愿選擇電氣工程是一個極具智慧和遠見的決定&#xff0c;因為電氣工程在當今社會中扮演著至關重要的角色。以下是對電氣工程專業更為詳細的解析&#xff1a; 一、專業概述 電氣工程及其自動化專業&#xf…

一個項目學習Vue3---快速認識JSX

JSX&#xff08;JavaScript XML&#xff09;是一種用于在React框架中編寫UI組件的語法擴展。它允許開發者將HTML標記直接嵌入到JavaScript代碼中&#xff0c;使得在React組件中編寫界面變得更加直觀和高效。在編譯過程中&#xff0c;JSX會被轉換成普通的JavaScript對象&#xf…

工業液晶屏G065VN01 V2規格書簡介

G065VN01 V2 背面實物圖 2. 概述 G065VN01 V2 專為 VGA &#xff08;640 x RGB x 480&#xff09; 分辨率和 16.2M&#xff08;RGB 6 位 FRC&#xff09;或 262k 色&#xff08;RGB 6 位&#xff09;的工業顯示應用而設計。它由TFT-LCD面板、驅動IC、控制和電源電路板以及包括…

css3實現水紋進度條

其實有一個mask-image屬性 挺有意思&#xff0c;在元素上面實現遮罩層的效果&#xff0c;不過這玩意有些兼容性問題 需要處理&#xff0c;所以單純可以通過漸變色的方式來實現 同時加上動畫效果 .jianbian {width: 100%;height: 16px;background-color: #eee;display: flex;bor…

華三中小企業組網

一、組網需求 在中小園區中&#xff0c;S5130系列或S5130S系列以太網交換機通常部署在網絡的接入層&#xff0c;S5560X系列或 S6520X系列以太網交換機通常部署在網絡的核心&#xff0c;出口路由器一般選用MSR系列路由器。 核心交換機配置VRRP保證網絡可靠性。園區網中不同的…

MySQL進階——鎖

目錄 1全局鎖—一致性數據備份 1.1全局鎖介紹 1.2語法 1.3 一致性備份案例 1.4 全局鎖特點 2表級鎖 2.1表鎖 2.1.1共享讀鎖 2.1.2獨占寫鎖 2.2元數據鎖 2.3元數據鎖 MySQL中的鎖&#xff0c;按照鎖的粒度分&#xff0c;分為以下三類&#xff1a; &#xff08;1&…

GitLab配置免密登錄之后仍然需要Git登錄的解決辦法

GitLab配置免密登錄之后仍然需要Git登錄的解決辦法 因為實習工作需要&#xff0c;要在本地拉取gitlab上的代碼&#xff0c;設置了密鑰之后連接的時候還需要登錄的token&#xff0c;摸索之后有了下面的解決辦法。 方法一&#xff1a; 根據報錯的提示&#xff0c;去網站上設置個人…